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:31
  public func registerTag(name: String, parser: TagParser) {
= (TokenParser, Token) throws -> NodeType 0003 0004 var tags
Namespace.swift:32
    tags[name] = parser
Parser.swift:54
          if let parser = namespace.tags[tag] {
= [String: TagParser]() 0005 var filters
Namespace.swift:44
    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 #if !os(Linux) 0017 registerTag("now", parser: NowNode.parse) 0018 #endif 0019 registerTag("include", parser: IncludeNode.parse) 0020 registerTag("extends", parser: ExtendsNode.parse) 0021 registerTag("block", parser: BlockNode.parse) 0022 } 0023 0024 private func registerDefaultFilters
Namespace.swift:9
    registerDefaultFilters()
() { 0025 registerFilter("capitalize", filter: capitalise) 0026 registerFilter("uppercase", filter: uppercase) 0027 registerFilter("lowercase", filter: lowercase) 0028 } 0029 0030 /// Registers a new template tag 0031 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:17
    registerTag("now", parser: NowNode.parse)
Namespace.swift:19
    registerTag("include", parser: IncludeNode.parse)
Namespace.swift:20
    registerTag("extends", parser: ExtendsNode.parse)
Namespace.swift:21
    registerTag("block", parser: BlockNode.parse)
Namespace.swift:37
    registerTag(name, parser: { parser, token in
(name: String, parser: TagParser) { 0032 tags[name] = parser 0033 } 0034 0035 /// Registers a simple template tag with a name and a handler 0036 public func registerSimpleTag(name: String, handler: Context throws -> String) { 0037 registerTag(name, parser: { parser, token in 0038 return SimpleNode(handler: handler) 0039 }) 0040 } 0041 0042 /// Registers a template filter with the given name 0043 public func registerFilter
Namespace.swift:25
    registerFilter("capitalize", filter: capitalise)
Namespace.swift:26
    registerFilter("uppercase", filter: uppercase)
Namespace.swift:27
    registerFilter("lowercase", filter: lowercase)
(name: String, filter: Filter) { 0044 filters[name] = filter 0045 } 0046 } 0047