Class: MODL::Parser::Parsed::ParsedStructure

Inherits:
MODLParserBaseListener show all
Defined in:
lib/modl/parser/parsed.rb

Overview

Class to represent a parsed grammar object

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from MODLParserBaseListener

#enterModl, #enterModl_array, #enterModl_array_conditional, #enterModl_array_conditional_return, #enterModl_array_item, #enterModl_array_value_item, #enterModl_condition, #enterModl_condition_group, #enterModl_condition_test, #enterModl_map, #enterModl_map_conditional, #enterModl_map_conditional_return, #enterModl_map_item, #enterModl_nb_array, #enterModl_operator, #enterModl_pair, #enterModl_primitive, #enterModl_top_level_conditional, #enterModl_top_level_conditional_return, #enterModl_value, #enterModl_value_conditional, #enterModl_value_conditional_return, #enterModl_value_item, #enter_every_rule, #exitModl, #exitModl_array, #exitModl_array_conditional, #exitModl_array_conditional_return, #exitModl_array_item, #exitModl_array_value_item, #exitModl_condition, #exitModl_condition_group, #exitModl_condition_test, #exitModl_map, #exitModl_map_conditional, #exitModl_map_conditional_return, #exitModl_map_item, #exitModl_nb_array, #exitModl_operator, #exitModl_pair, #exitModl_primitive, #exitModl_structure, #exitModl_top_level_conditional, #exitModl_top_level_conditional_return, #exitModl_value, #exitModl_value_conditional, #exitModl_value_conditional_return, #exitModl_value_item, #exit_every_rule, #visit_error_node, #visit_terminal

Methods inherited from MODLParserListener

#enterModl, #enterModl_array, #enterModl_array_conditional, #enterModl_array_conditional_return, #enterModl_array_item, #enterModl_array_value_item, #enterModl_condition, #enterModl_condition_group, #enterModl_condition_test, #enterModl_map, #enterModl_map_conditional, #enterModl_map_conditional_return, #enterModl_map_item, #enterModl_nb_array, #enterModl_operator, #enterModl_pair, #enterModl_primitive, #enterModl_top_level_conditional, #enterModl_top_level_conditional_return, #enterModl_value, #enterModl_value_conditional, #enterModl_value_conditional_return, #enterModl_value_item, #exitModl, #exitModl_array, #exitModl_array_conditional, #exitModl_array_conditional_return, #exitModl_array_item, #exitModl_array_value_item, #exitModl_condition, #exitModl_condition_group, #exitModl_condition_test, #exitModl_map, #exitModl_map_conditional, #exitModl_map_conditional_return, #exitModl_map_item, #exitModl_nb_array, #exitModl_operator, #exitModl_pair, #exitModl_primitive, #exitModl_structure, #exitModl_top_level_conditional, #exitModl_top_level_conditional_return, #exitModl_value, #exitModl_value_conditional, #exitModl_value_conditional_return, #exitModl_value_item

Constructor Details

#initialize(global) ⇒ ParsedStructure

Returns a new instance of ParsedStructure.



162
163
164
# File 'lib/modl/parser/parsed.rb', line 162

def initialize(global)
  @global = global
end

Instance Attribute Details

#arrayObject

Returns the value of attribute array.



157
158
159
# File 'lib/modl/parser/parsed.rb', line 157

def array
  @array
end

#mapObject

Returns the value of attribute map.



160
161
162
# File 'lib/modl/parser/parsed.rb', line 160

def map
  @map
end

#pairObject

Returns the value of attribute pair.



158
159
160
# File 'lib/modl/parser/parsed.rb', line 158

def pair
  @pair
end

#top_level_conditionalObject

Returns the value of attribute top_level_conditional.



159
160
161
# File 'lib/modl/parser/parsed.rb', line 159

def top_level_conditional
  @top_level_conditional
end

Instance Method Details

#enterModl_structure(ctx) ⇒ Object



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/modl/parser/parsed.rb', line 166

def enterModl_structure(ctx)
  modl_pair = ctx.modl_pair
  modl_top_level_conditional = ctx.modl_top_level_conditional
  modl_map = ctx.modl_map
  modl_array = ctx.modl_array

  if !modl_pair.nil?
    @pair = ParsedPair.new @global
    modl_pair.enter_rule(@pair)
  elsif !modl_top_level_conditional.nil?
    @top_level_conditional = ParsedTopLevelConditional.new @global
    modl_top_level_conditional.enter_rule(@top_level_conditional)
  elsif !modl_map.nil?
    @map = ParsedMap.new @global
    modl_map.enter_rule(@map)
  elsif !modl_array.nil?
    @array = ParsedArray.new @global
    modl_array.enter_rule(@array)
  end
end

#extract_hashObject



187
188
189
190
191
192
# File 'lib/modl/parser/parsed.rb', line 187

def extract_hash
  return @array.extract_hash if @array
  return @pair.extract_hash if @pair
  return @top_level_conditional.extract_hash if @top_level_conditional
  return @map.extract_hash if @map
end