Class: MODL::Parser::Parsed::ParsedPrimitive
- Inherits:
-
MODLParserBaseListener
- Object
- Antlr4::Runtime::ParseTreeListener
- MODLParserListener
- MODLParserBaseListener
- MODL::Parser::Parsed::ParsedPrimitive
- Defined in:
- lib/modl/parser/parsed.rb
Overview
Class to represent a parsed grammar object
Instance Attribute Summary collapse
-
#constant ⇒ Object
Returns the value of attribute constant.
-
#falseVal ⇒ Object
Returns the value of attribute falseVal.
-
#nilVal ⇒ Object
Returns the value of attribute nilVal.
-
#number ⇒ Object
Returns the value of attribute number.
-
#quoted ⇒ Object
Returns the value of attribute quoted.
-
#string ⇒ Object
Returns the value of attribute string.
-
#text ⇒ Object
The simple text value rather than the object.
-
#trueVal ⇒ Object
Returns the value of attribute trueVal.
Instance Method Summary collapse
- #enterModl_primitive(ctx) ⇒ Object
- #evaluate ⇒ Object
- #extract_hash ⇒ Object
- #find_property(key) ⇒ Object
-
#initialize(global) ⇒ ParsedPrimitive
constructor
A new instance of ParsedPrimitive.
- #value_obj ⇒ Object
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_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, #enterModl_map_conditional, #enterModl_map_conditional_return, #enterModl_map_item, #enterModl_nb_array, #enterModl_operator, #enterModl_pair, #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) ⇒ ParsedPrimitive
Returns a new instance of ParsedPrimitive.
659 660 661 662 |
# File 'lib/modl/parser/parsed.rb', line 659 def initialize(global) @global = global @constant = false end |
Instance Attribute Details
#constant ⇒ Object
Returns the value of attribute constant.
656 657 658 |
# File 'lib/modl/parser/parsed.rb', line 656 def constant @constant end |
#falseVal ⇒ Object
Returns the value of attribute falseVal.
653 654 655 |
# File 'lib/modl/parser/parsed.rb', line 653 def falseVal @falseVal end |
#nilVal ⇒ Object
Returns the value of attribute nilVal.
654 655 656 |
# File 'lib/modl/parser/parsed.rb', line 654 def nilVal @nilVal end |
#number ⇒ Object
Returns the value of attribute number.
651 652 653 |
# File 'lib/modl/parser/parsed.rb', line 651 def number @number end |
#quoted ⇒ Object
Returns the value of attribute quoted.
650 651 652 |
# File 'lib/modl/parser/parsed.rb', line 650 def quoted @quoted end |
#string ⇒ Object
Returns the value of attribute string.
655 656 657 |
# File 'lib/modl/parser/parsed.rb', line 655 def string @string end |
#text ⇒ Object
The simple text value rather than the object
657 658 659 |
# File 'lib/modl/parser/parsed.rb', line 657 def text @text end |
#trueVal ⇒ Object
Returns the value of attribute trueVal.
652 653 654 |
# File 'lib/modl/parser/parsed.rb', line 652 def trueVal @trueVal end |
Instance Method Details
#enterModl_primitive(ctx) ⇒ Object
698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 |
# File 'lib/modl/parser/parsed.rb', line 698 def enterModl_primitive(ctx) ctx_number = ctx.NUMBER ctx_string = ctx.STRING ctx_quoted = ctx.QUOTED ctx_null = ctx.NULL ctx_true = ctx.TRUE ctx_false = ctx.FALSE if !ctx_number.nil? @number = ParsedNumber.new(ctx_number.text) @text = @number.num elsif !ctx_string.nil? @text = ctx_string.text @constant = @text.start_with?('`') && !@text.include?('%') && !@text.include?('`.') @string = ParsedString.new(@text) @text = @string.string elsif !ctx_quoted.nil? @constant = true @text = ctx_quoted.text @quoted = ParsedQuoted.new(@text) elsif !ctx_null.nil? @nilVal = ParsedNull.instance @text = nil elsif !ctx_true.nil? @trueVal = ParsedTrue.instance @text = true elsif !ctx_false.nil? @falseVal = ParsedFalse.instance @text = false end # ignoring comments! end |
#evaluate ⇒ Object
680 681 682 683 684 685 |
# File 'lib/modl/parser/parsed.rb', line 680 def evaluate return false if @nilVal return false if @falseVal true end |
#extract_hash ⇒ Object
674 675 676 677 678 |
# File 'lib/modl/parser/parsed.rb', line 674 def extract_hash result, _ignore = RefProcessor.deref(@text, @global) unless @constant result = @text if @constant Substitutions.process result end |
#find_property(key) ⇒ Object
664 665 666 667 668 669 670 671 672 |
# File 'lib/modl/parser/parsed.rb', line 664 def find_property(key) if @string user_method = @global.user_method(key) if user_method return user_method.run(@string.string) end return StandardMethods.run_method(key, Substitutions.process(@string.string)) end end |
#value_obj ⇒ Object
687 688 689 690 691 692 693 694 695 696 |
# File 'lib/modl/parser/parsed.rb', line 687 def value_obj return @quoted if @quoted return @number if @number return @trueVal if @trueVal return @falseVal if @falseVal return @nilVal if @nilVal return @string if @string @text end |