Class: MODL::Parser::Parsed::ParsedArrayConditional
- Inherits:
-
MODLParserBaseListener
- Object
- Antlr4::Runtime::ParseTreeListener
- MODLParserListener
- MODLParserBaseListener
- MODL::Parser::Parsed::ParsedArrayConditional
- Defined in:
- lib/modl/parser/parsed.rb
Overview
Class to represent a parsed grammar object
Instance Attribute Summary collapse
-
#arrayConditionalReturns ⇒ Object
Returns the value of attribute arrayConditionalReturns.
-
#conditionTest ⇒ Object
Returns the value of attribute conditionTest.
Instance Method Summary collapse
- #enterModl_array_conditional(ctx) ⇒ Object
- #extract_hash ⇒ Object
-
#initialize(global) ⇒ ParsedArrayConditional
constructor
A new instance of ParsedArrayConditional.
Methods inherited from MODLParserBaseListener
#enterModl, #enterModl_array, #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_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_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_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) ⇒ ParsedArrayConditional
Returns a new instance of ParsedArrayConditional.
1124 1125 1126 1127 1128 |
# File 'lib/modl/parser/parsed.rb', line 1124 def initialize(global) @global = global @conditionTests = [] @arrayConditionalReturns = [] end |
Instance Attribute Details
#arrayConditionalReturns ⇒ Object
Returns the value of attribute arrayConditionalReturns.
1122 1123 1124 |
# File 'lib/modl/parser/parsed.rb', line 1122 def arrayConditionalReturns @arrayConditionalReturns end |
#conditionTest ⇒ Object
Returns the value of attribute conditionTest.
1121 1122 1123 |
# File 'lib/modl/parser/parsed.rb', line 1121 def conditionTest @conditionTest end |
Instance Method Details
#enterModl_array_conditional(ctx) ⇒ Object
1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 |
# File 'lib/modl/parser/parsed.rb', line 1136 def enterModl_array_conditional(ctx) i = 0 ctx_modl_condition_test = ctx.modl_condition_test ctx_modl_array_conditional_return = ctx.modl_array_conditional_return while i < ctx_modl_condition_test.size condition_test = ParsedConditionTest.new @global ctx.modl_condition_test_i(i).enter_rule(condition_test) conditional_return = ParsedArrayConditionalReturn.new @global ctx.modl_array_conditional_return_i(i).enter_rule(conditional_return) @conditionTests[i] = condition_test @arrayConditionalReturns[i] = conditional_return if ctx_modl_array_conditional_return.size > ctx_modl_condition_test.size i += 1 condition_test = ParsedConditionTest.new @global conditional_return = ParsedArrayConditionalReturn.new @global ctx.modl_array_conditional_return_i(ctx_modl_array_conditional_return.size - 1).enter_rule(conditional_return) @conditionTests[i] = condition_test @arrayConditionalReturns[i] = conditional_return end i += 1 end end |
#extract_hash ⇒ Object
1130 1131 1132 1133 1134 |
# File 'lib/modl/parser/parsed.rb', line 1130 def extract_hash result = @conditionTests[0].evaluate return @arrayConditionalReturns[0].extract_hash if result @arrayConditionalReturns[1].extract_hash end |