0001    public class Namespace
Parser.swift:22
  private let namespace: Namespace
Parser.swift:24
  public init(tokens: [Token], namespace: Namespace) {
Template.swift:39
  public func render(context: Context? = nil, namespace: Namespace? = nil) throws -> String {
Template.swift:40
    let parser = TokenParser(tokens: tokens, namespace: namespace ?? Namespace())
{ 0002 public typealias TagParser
Namespace.swift:4
  var tags = [String: TagParser]()
Namespace.swift:29
  public func registerTag(name: String, parser: TagParser) {
= (TokenParser, Token) throws -> NodeType 0003 0004 var tags
Namespace.swift:30
    tags[name] = parser
Parser.swift:54
          if let parser = namespace.tags[tag] {
= [String: TagParser]() 0005 var filters
Namespace.swift:42
    filters[name] = filter
Parser.swift:81
    if let filter = namespace.filters[name] {
= [String: Filter]() 0006 0007 public init
Template.swift:40
    let parser = TokenParser(tokens: tokens, namespace: namespace ?? Namespace())
() { 0008 registerDefaultTags() 0009 registerDefaultFilters() 0010 } 0011 0012 private func registerDefaultTags
Namespace.swift:8
    registerDefaultTags()
() { 0013 registerTag("for", parser: ForNode.parse) 0014 registerTag("if", parser: IfNode.parse) 0015 registerTag("ifnot", parser: IfNode.parse_ifnot) 0016 registerTag("now", parser: NowNode.parse) 0017 registerTag("include", parser: IncludeNode.parse) 0018 registerTag("extends", parser: ExtendsNode.parse) 0019 registerTag("block", parser: BlockNode.parse) 0020 } 0021 0022 private func registerDefaultFilters
Namespace.swift:9
    registerDefaultFilters()
() { 0023 registerFilter("capitalize", filter: capitalise) 0024 registerFilter("uppercase", filter: uppercase) 0025 registerFilter("lowercase", filter: lowercase) 0026 } 0027 0028 /// Registers a new template tag 0029 public func registerTag
Namespace.swift:13
    registerTag("for", parser: ForNode.parse)
Namespace.swift:14
    registerTag("if", parser: IfNode.parse)
Namespace.swift:15
    registerTag("ifnot", parser: IfNode.parse_ifnot)
Namespace.swift:16
    registerTag("now", parser: NowNode.parse)
Namespace.swift:17
    registerTag("include", parser: IncludeNode.parse)
Namespace.swift:18
    registerTag("extends", parser: ExtendsNode.parse)
Namespace.swift:19
    registerTag("block", parser: BlockNode.parse)
Namespace.swift:35
    registerTag(name, parser: { parser, token in
(name: String, parser: TagParser) { 0030 tags[name] = parser 0031 } 0032 0033 /// Registers a simple template tag with a name and a handler 0034 public func registerSimpleTag(name: String, handler: Context throws -> String) { 0035 registerTag(name, parser: { parser, token in 0036 return SimpleNode(handler: handler) 0037 }) 0038 } 0039 0040 /// Registers a template filter with the given name 0041 public func registerFilter
Namespace.swift:23
    registerFilter("capitalize", filter: capitalise)
Namespace.swift:24
    registerFilter("uppercase", filter: uppercase)
Namespace.swift:25
    registerFilter("lowercase", filter: lowercase)
(name: String, filter: Filter) { 0042 filters[name] = filter 0043 } 0044 } 0045