Class: PEG::Language
- Inherits:
-
Object
- Object
- PEG::Language
- Defined in:
- lib/peg.rb
Constant Summary collapse
- @@default =
proc {|node, children| children}
- @@rules =
we rely on the fact that 1.9+ Hash maintains order
{}
- @@blocks =
{}
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.default(&block) ⇒ Object
420 421 422 |
# File 'lib/peg.rb', line 420 def self.default(&block) @@default = block end |
.rule(rule, &block) ⇒ Object
414 415 416 417 418 |
# File 'lib/peg.rb', line 414 def self.rule(rule, &block) name = rule.split('<-')[0].strip @@rules[name] = rule @@blocks[name] = block end |
Instance Method Details
#_eval(node) ⇒ Object
430 431 432 433 434 |
# File 'lib/peg.rb', line 430 def _eval(node) block = @@blocks.fetch(node.name, @@default) children = node.children.map {|child| _eval(child)} instance_exec(node, children, &block) end |