Class: MODL::Parser::Parsed::ParsedConditionGroup
- Inherits:
-
MODLParserBaseListener
- Object
- Antlr4::Runtime::ParseTreeListener
- MODLParserListener
- MODLParserBaseListener
- MODL::Parser::Parsed::ParsedConditionGroup
- Defined in:
- lib/modl/parser/parsed.rb
Overview
Class to represent a parsed grammar object
Instance Attribute Summary collapse
-
#conditionsTestList ⇒ Object
Returns the value of attribute conditionsTestList.
Instance Method Summary collapse
- #enterModl_condition_group(ctx) ⇒ Object
- #evaluate ⇒ Object
-
#initialize(global) ⇒ ParsedConditionGroup
constructor
A new instance of ParsedConditionGroup.
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_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, #enterModl_array_conditional_return, #enterModl_array_item, #enterModl_array_value_item, #enterModl_condition, #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) ⇒ ParsedConditionGroup
Returns a new instance of ParsedConditionGroup.
849 850 851 852 |
# File 'lib/modl/parser/parsed.rb', line 849 def initialize(global) @global = global @conditionsTestList = [] end |
Instance Attribute Details
#conditionsTestList ⇒ Object
Returns the value of attribute conditionsTestList.
847 848 849 |
# File 'lib/modl/parser/parsed.rb', line 847 def conditionsTestList @conditionsTestList end |
Instance Method Details
#enterModl_condition_group(ctx) ⇒ Object
863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 |
# File 'lib/modl/parser/parsed.rb', line 863 def enterModl_condition_group(ctx) ctx_children = ctx.children return if ctx_children.empty? last_operator = nil ctx_children.each do |child| if child.is_a? MODLParser::Modl_condition_testContext condition_test = ParsedConditionTest.new @global child.enter_rule(condition_test) p = OpenStruct.new p.a = condition_test p.b = last_operator @conditionsTestList << p last_operator = nil else last_operator = child.text if (child.text != '') && (child.text != '}') end end end |
#evaluate ⇒ Object
854 855 856 857 858 859 860 861 |
# File 'lib/modl/parser/parsed.rb', line 854 def evaluate result = false @conditionsTestList.each do |s| partial = s.a.evaluate result |= partial end result end |