| Class | Puppet::Parser::Lexer::TokenList |
| In: |
lib/puppet/parser/lexer.rb
|
| Parent: | Object |
Maintain a list of tokens.
| regex_tokens | [R] | |
| string_tokens | [R] |
# File lib/puppet/parser/lexer.rb, line 75
75: def initialize
76: @tokens = {}
77: @regex_tokens = []
78: @string_tokens = []
79: @tokens_by_string = {}
80: end
Create a new token.
# File lib/puppet/parser/lexer.rb, line 55
55: def add_token(name, regex, options = {}, &block)
56: token = Token.new(regex, name)
57: raise(ArgumentError, "Token %s already exists" % name) if @tokens.include?(name)
58: @tokens[token.name] = token
59: if token.string
60: @string_tokens << token
61: @tokens_by_string[token.string] = token
62: else
63: @regex_tokens << token
64: end
65:
66: options.each do |name, option|
67: token.send(name.to_s + "=", option)
68: end
69:
70: token.meta_def(:convert, &block) if block_given?
71:
72: token
73: end
Define more tokens.
# File lib/puppet/parser/lexer.rb, line 88
88: def add_tokens(hash)
89: hash.each do |regex, name|
90: add_token(name, regex)
91: end
92: end
Look up a token by its value, rather than name.
# File lib/puppet/parser/lexer.rb, line 83
83: def lookup(string)
84: @tokens_by_string[string]
85: end