Class: MODL::Parser::Parsed::ParsedTopLevelConditionalReturn

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_structure, #enterModl_top_level_conditional, #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_structure, #enterModl_top_level_conditional, #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) ⇒ ParsedTopLevelConditionalReturn

Returns a new instance of ParsedTopLevelConditionalReturn.



989
990
991
992
# File 'lib/modl/parser/parsed.rb', line 989

def initialize(global)
  @global = global
  @structures = []
end

Instance Attribute Details

#structuresObject

Returns the value of attribute structures.



987
988
989
# File 'lib/modl/parser/parsed.rb', line 987

def structures
  @structures
end

Instance Method Details

#enterModl_top_level_conditional_return(ctx) ⇒ Object



1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
# File 'lib/modl/parser/parsed.rb', line 1006

def enterModl_top_level_conditional_return(ctx)
  modl_structure = ctx.modl_structure
  return if modl_structure.empty?

  modl_structure.each do |str|
    structure = ParsedStructure.new @global
    str.enter_rule(structure)
    @structures << structure
  end
end

#extract_hashObject



994
995
996
997
998
999
1000
1001
1002
1003
1004
# File 'lib/modl/parser/parsed.rb', line 994

def extract_hash
  return @structures[0].extract_hash if @structures.length == 1

  result = []
  @structures.each do |s|
    hash = s.extract_hash
    result << hash unless hash.nil?
  end
  return result unless result.length == 1
  return result[0] if result.length == 1
end