Class: MODL::Parser::Parsed::ParsedTopLevelConditionalReturn
- Inherits:
-
MODLParserBaseListener
- Object
- Antlr4::Runtime::ParseTreeListener
- MODLParserListener
- MODLParserBaseListener
- MODL::Parser::Parsed::ParsedTopLevelConditionalReturn
- Defined in:
- lib/modl/parser/parsed.rb
Overview
Class to represent a parsed grammar object
Instance Attribute Summary collapse
-
#structures ⇒ Object
Returns the value of attribute structures.
Instance Method Summary collapse
- #enterModl_top_level_conditional_return(ctx) ⇒ Object
- #extract_hash ⇒ Object
-
#initialize(global) ⇒ ParsedTopLevelConditionalReturn
constructor
A new instance of ParsedTopLevelConditionalReturn.
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
#structures ⇒ Object
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_hash ⇒ Object
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 |