# File lib/puppet/parser/lexer.rb, line 60
60:         def add_token(name, regex, options = {}, &block)
61:             token = Token.new(regex, name)
62:             raise(ArgumentError, "Token %s already exists" % name) if @tokens.include?(name)
63:             @tokens[token.name] = token
64:             if token.string
65:                 @string_tokens << token
66:                 @tokens_by_string[token.string] = token
67:             else
68:                 @regex_tokens << token
69:             end
70: 
71:             options.each do |name, option|
72:                 token.send(name.to_s + "=", option)
73:             end
74: 
75:             token.meta_def(:convert, &block) if block_given?
76: 
77:             token
78:         end