Class: MODL::Parser::Parsed::ParsedMap
- Inherits:
-
MODLParserBaseListener
- Object
- Antlr4::Runtime::ParseTreeListener
- MODLParserListener
- MODLParserBaseListener
- MODL::Parser::Parsed::ParsedMap
- Defined in:
- lib/modl/parser/parsed.rb
Overview
Class to represent a parsed grammar object
Instance Attribute Summary collapse
-
#mapItems ⇒ Object
Returns the value of attribute mapItems.
Instance Method Summary collapse
- #enterModl_map(ctx) ⇒ Object
- #extract_hash ⇒ Object
- #find_property(key) ⇒ Object
-
#initialize(global) ⇒ ParsedMap
constructor
A new instance of ParsedMap.
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_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_group, #enterModl_condition_test, #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) ⇒ ParsedMap
60 61 62 63 |
# File 'lib/modl/parser/parsed.rb', line 60 def initialize(global) @global = global @mapItems = [] end |
Instance Attribute Details
#mapItems ⇒ Object
Returns the value of attribute mapItems.
58 59 60 |
# File 'lib/modl/parser/parsed.rb', line 58 def mapItems @mapItems end |
Instance Method Details
#enterModl_map(ctx) ⇒ Object
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/modl/parser/parsed.rb', line 75 def enterModl_map(ctx) modl_map_item = ctx.modl_map_item return if modl_map_item.nil? modl_map_item.each do |mi| map_item = ParsedMapItem.new @global mi.enter_rule(map_item) @mapItems << map_item end end |
#extract_hash ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/modl/parser/parsed.rb', line 86 def extract_hash result = {} @mapItems.each do |i| i_hash = i.extract_hash next unless i_hash.is_a? Hash i_hash.keys.each do |k| result[k] = i_hash[k] end end result.is_a?(Array) && result.length == 1 ? result[0] : result end |
#find_property(key) ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/modl/parser/parsed.rb', line 65 def find_property(key) if key.is_a? Integer return @mapItems[key] else @mapItems.each do |mi| return mi.pair if mi.pair.key == key end end end |