Class: Rattler::BackEnd::ParserGenerator::ListGenerator

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

Direct Known Subclasses

NestedListGenerator, TopLevelListGenerator

Class Method Summary collapse

Instance Method Summary collapse

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



38
39
40
# File 'lib/rattler/back_end/parser_generator/list_generator.rb', line 38

def ListGenerator.nested(*args)
  NestedListGenerator.new(*args)
end

.top_level(*args) ⇒ Object



47
48
49
# File 'lib/rattler/back_end/parser_generator/list_generator.rb', line 47

def ListGenerator.top_level(*args)
  TopLevelListGenerator.new(*args)
end

Instance Method Details

#gen_assert(optional, scope = {}) ⇒ Object



10
11
12
# File 'lib/rattler/back_end/parser_generator/list_generator.rb', line 10

def gen_assert(optional, scope={})
  @g << 'true'
end

#gen_disallow(optional, scope = {}) ⇒ Object



14
15
16
# File 'lib/rattler/back_end/parser_generator/list_generator.rb', line 14

def gen_disallow(optional, scope={})
  @g << 'false'
end

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



18
19
20
21
22
23
# File 'lib/rattler/back_end/parser_generator/list_generator.rb', line 18

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