class Lexr::Dsl

Attributes

available_tokens[R]

Public Class Methods

new() click to toggle source
# File libs/lexer.rb, line 275
          def initialize
                  @rules = []
@default=nil
@available_tokens=[]
          end

Public Instance Methods

default(rule_hash) click to toggle source
# File libs/lexer.rb, line 289
def default(rule_hash)
  pattern = rule_hash.keys.reject { |k| k.class == Symbol }.first
  symbol = rule_hash[pattern]
  opts = rule_hash.delete_if { |k, v| k.class != Symbol }
  @default = Rule.new(pattern, symbol, opts)
end
ignores(rule_hash) click to toggle source
# File libs/lexer.rb, line 296
            def ignores(rule_hash)
                    matches rule_hash.merge(:ignore => true)
end
matches(rule_hash) click to toggle source
# File libs/lexer.rb, line 281
            def matches(rule_hash)
                    pattern = rule_hash.keys.reject { |k| k.class == Symbol }.first
                    symbol = rule_hash[pattern]
                    opts = rule_hash.delete_if { |k, v| k.class != Symbol }
                    @rules << Rule.new(pattern, symbol, opts)
  @available_tokens = @available_tokens | [symbol]
end
new(str) click to toggle source
# File libs/lexer.rb, line 300
            def new(str)
  @counter={}
  @rules.each { |r| r.set_counter(@counter) }
                    Lexr.new(str, @rules, @default, @counter)
end