Class: MODL::Parser::Parsed::ParsedValueConditional
- Inherits:
-
MODLParserBaseListener
- Object
- Antlr4::Runtime::ParseTreeListener
- MODLParserListener
- MODLParserBaseListener
- MODL::Parser::Parsed::ParsedValueConditional
- Defined in:
- lib/modl/parser/parsed.rb
Overview
Class to represent a parsed grammar object
Instance Attribute Summary collapse
-
#conditionTests ⇒ Object
Returns the value of attribute conditionTests.
-
#valueConditionalReturns ⇒ Object
Returns the value of attribute valueConditionalReturns.
Instance Method Summary collapse
- #enterModl_value_conditional(ctx) ⇒ Object
- #extract_hash ⇒ Object
-
#initialize(global) ⇒ ParsedValueConditional
constructor
A new instance of ParsedValueConditional.
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_top_level_conditional_return, #enterModl_value, #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_top_level_conditional_return, #enterModl_value, #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) ⇒ ParsedValueConditional
Returns a new instance of ParsedValueConditional.
1203 1204 1205 1206 1207 |
# File 'lib/modl/parser/parsed.rb', line 1203 def initialize(global) @global = global @conditionTests = [] @valueConditionalReturns = [] end |
Instance Attribute Details
#conditionTests ⇒ Object
Returns the value of attribute conditionTests.
1200 1201 1202 |
# File 'lib/modl/parser/parsed.rb', line 1200 def conditionTests @conditionTests end |
#valueConditionalReturns ⇒ Object
Returns the value of attribute valueConditionalReturns.
1201 1202 1203 |
# File 'lib/modl/parser/parsed.rb', line 1201 def valueConditionalReturns @valueConditionalReturns end |
Instance Method Details
#enterModl_value_conditional(ctx) ⇒ Object
1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 |
# File 'lib/modl/parser/parsed.rb', line 1215 def enterModl_value_conditional(ctx) i = 0 ctx_modl_condition_test = ctx.modl_condition_test ctx_modl_value_conditional_return = ctx.modl_value_conditional_return while i < ctx_modl_condition_test.size condition_test = ParsedConditionTest.new @global ctx.modl_condition_test_i(i).enter_rule(condition_test) @conditionTests[i] = condition_test break if ctx.modl_value_conditional_return_i(i).nil? conditional_return = ParsedValueConditionalReturn.new @global ctx.modl_value_conditional_return_i(i).enter_rule(conditional_return) @valueConditionalReturns[i] = conditional_return if ctx_modl_value_conditional_return.size > ctx_modl_condition_test.size condition_test = ParsedConditionTest.new @global conditional_return = ParsedValueConditionalReturn.new @global ctx.modl_value_conditional_return_i(ctx_modl_value_conditional_return.size - 1).enter_rule(conditional_return) @conditionTests[i + 1] = condition_test @valueConditionalReturns[i + 1] = conditional_return end i += 1 end @result = @conditionTests[0].evaluate end |
#extract_hash ⇒ Object
1209 1210 1211 1212 1213 |
# File 'lib/modl/parser/parsed.rb', line 1209 def extract_hash return @result if @valueConditionalReturns.length == 0 return @valueConditionalReturns[0].extract_hash if @result return @valueConditionalReturns[1].extract_hash end |