Class: Rattler::BackEnd::ParserGenerator::List1Generator

Inherits:
ExprGenerator
  • Object
show all
Includes:
ListGenerating, NestedSubGenerating, PredicatePropogating
Defined in:
lib/rattler/back_end/parser_generator/list1_generator.rb

Direct Known Subclasses

NestedList1Generator, TopLevelList1Generator

Class Method Summary collapse

Instance Method Summary collapse

Methods included from PredicatePropogating

#gen_assert, #gen_disallow, #gen_intermediate_assert, #gen_intermediate_disallow

Methods included from Parsers

define

Methods included from ListGenerating

#gen_basic, #gen_direct_action, #gen_dispatch_action

Methods inherited from ExprGenerator

#gen_direct_action, #gen_dispatch_action, #gen_intermediate, #gen_intermediate_assert, #gen_intermediate_disallow, #gen_intermediate_skip, #gen_token, #initialize

Constructor Details

This class inherits a constructor from Rattler::BackEnd::ParserGenerator::ExprGenerator

Class Method Details

.nested(*args) ⇒ Object



32
33
34
# File 'lib/rattler/back_end/parser_generator/list1_generator.rb', line 32

def List1Generator.nested(*args)
  NestedList1Generator.new(*args)
end

.top_level(*args) ⇒ Object



50
51
52
# File 'lib/rattler/back_end/parser_generator/list1_generator.rb', line 50

def List1Generator.top_level(*args)
  TopLevelList1Generator.new(*args)
end

Instance Method Details

#gen_skip(list, scope = {}) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/rattler/back_end/parser_generator/list1_generator.rb', line 11

def gen_skip(list, scope={})
  expr :block do
    (@g << "#{result_name} = false").newline
    gen_skipping(list, scope) { (@g << "#{result_name} = true").newline }
    @g.newline << result_name
  end
end