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.
1145 1146 1147 1148 1149 |
# File 'lib/modl/parser/parsed.rb', line 1145 def initialize(global) @global = global @conditionTests = [] @valueConditionalReturns = [] end |
Instance Attribute Details
#conditionTests ⇒ Object
Returns the value of attribute conditionTests.
1142 1143 1144 |
# File 'lib/modl/parser/parsed.rb', line 1142 def conditionTests @conditionTests end |
#valueConditionalReturns ⇒ Object
Returns the value of attribute valueConditionalReturns.
1143 1144 1145 |
# File 'lib/modl/parser/parsed.rb', line 1143 def valueConditionalReturns @valueConditionalReturns end |
Instance Method Details
#enterModl_value_conditional(ctx) ⇒ Object
1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 |
# File 'lib/modl/parser/parsed.rb', line 1159 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 return 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 end |
#extract_hash ⇒ Object
1151 1152 1153 1154 1155 1156 1157 |
# File 'lib/modl/parser/parsed.rb', line 1151 def extract_hash result = @conditionTests[0].evaluate return result if @valueConditionalReturns.length == 0 return @valueConditionalReturns[0].extract_hash if result return @valueConditionalReturns[1].extract_hash end |