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