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.
1143 1144 1145 1146 1147 |
# File 'lib/modl/parser/parsed.rb', line 1143 def initialize(global) @global = global @conditionTests = [] @valueConditionalReturns = [] end |
Instance Attribute Details
#conditionTests ⇒ Object
Returns the value of attribute conditionTests.
1140 1141 1142 |
# File 'lib/modl/parser/parsed.rb', line 1140 def conditionTests @conditionTests end |
#valueConditionalReturns ⇒ Object
Returns the value of attribute valueConditionalReturns.
1141 1142 1143 |
# File 'lib/modl/parser/parsed.rb', line 1141 def valueConditionalReturns @valueConditionalReturns end |
Instance Method Details
#enterModl_value_conditional(ctx) ⇒ Object
1157 1158 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 |
# File 'lib/modl/parser/parsed.rb', line 1157 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
1149 1150 1151 1152 1153 1154 1155 |
# File 'lib/modl/parser/parsed.rb', line 1149 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 |