Class: Pegex::Grammar

Inherits:
Object
  • Object
show all
Defined in:
lib/pegex/grammar.rb

Defined Under Namespace

Classes: Atoms

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Grammar

Returns a new instance of Grammar.

Yields:

  • (_self)

Yield Parameters:



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

#textObject

Returns the value of attribute text.



3
4
5
# File 'lib/pegex/grammar.rb', line 3

def text
  @text
end

Instance Method Details

#make_treeObject



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

#treeObject



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