Class: Pegex::Grammar
- Inherits:
-
Object
- Object
- Pegex::Grammar
- Defined in:
- lib/pegex/grammar.rb
Defined Under Namespace
Classes: Atoms
Instance Attribute Summary collapse
-
#text ⇒ Object
Returns the value of attribute text.
Instance Method Summary collapse
-
#initialize {|_self| ... } ⇒ Grammar
constructor
A new instance of Grammar.
- #make_tree ⇒ Object
- #tree ⇒ Object
Constructor Details
#initialize {|_self| ... } ⇒ Grammar
Returns a new instance of Grammar.
5 6 7 8 |
# File 'lib/pegex/grammar.rb', line 5 def initialize yield self if block_given? @tree ||= make_tree end |
Instance Attribute Details
#text ⇒ Object
Returns the value of attribute text.
3 4 5 |
# File 'lib/pegex/grammar.rb', line 3 def text @text end |
Instance Method Details
#make_tree ⇒ Object
16 17 18 19 |
# File 'lib/pegex/grammar.rb', line 16 def make_tree require 'pegex/compiler' return @tree = Pegex::Compiler.new.compile(@text).tree end |
#tree ⇒ Object
10 11 12 13 14 |
# File 'lib/pegex/grammar.rb', line 10 def tree return @tree if @tree fail "Can't create a #{self.class} grammar. No grammar text" unless @text return @tree = make_tree end |