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.
621 622 623 624 |
# File 'lib/modl/parser/parsed.rb', line 621 def initialize(global) @global = global @constant = false end |
Instance Attribute Details
#constant ⇒ Object
Returns the value of attribute constant.
618 619 620 |
# File 'lib/modl/parser/parsed.rb', line 618 def constant @constant end |
#falseVal ⇒ Object
Returns the value of attribute falseVal.
615 616 617 |
# File 'lib/modl/parser/parsed.rb', line 615 def falseVal @falseVal end |
#nilVal ⇒ Object
Returns the value of attribute nilVal.
616 617 618 |
# File 'lib/modl/parser/parsed.rb', line 616 def nilVal @nilVal end |
#number ⇒ Object
Returns the value of attribute number.
613 614 615 |
# File 'lib/modl/parser/parsed.rb', line 613 def number @number end |
#quoted ⇒ Object
Returns the value of attribute quoted.
612 613 614 |
# File 'lib/modl/parser/parsed.rb', line 612 def quoted @quoted end |
#string ⇒ Object
Returns the value of attribute string.
617 618 619 |
# File 'lib/modl/parser/parsed.rb', line 617 def string @string end |
#text ⇒ Object
The simple text value rather than the object
619 620 621 |
# File 'lib/modl/parser/parsed.rb', line 619 def text @text end |
#trueVal ⇒ Object
Returns the value of attribute trueVal.
614 615 616 |
# File 'lib/modl/parser/parsed.rb', line 614 def trueVal @trueVal end |
Instance Method Details
#enterModl_primitive(ctx) ⇒ Object
660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 |
# File 'lib/modl/parser/parsed.rb', line 660 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?('`.') @text = Parsed.additional_string_processing(@text) @string = ParsedString.new(@text) @text = @string.string elsif !ctx_quoted.nil? @constant = true @text = Sutil.toptail(ctx_quoted.text) # remove the quotes @text = Parsed.additional_string_processing(@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
642 643 644 645 646 647 |
# File 'lib/modl/parser/parsed.rb', line 642 def evaluate return false if @nilVal return false if @falseVal true end |
#extract_hash ⇒ Object
636 637 638 639 640 |
# File 'lib/modl/parser/parsed.rb', line 636 def extract_hash result, _ignore = RefProcessor.deref(@text, @global) unless @constant result = @text if @constant result end |
#find_property(key) ⇒ Object
626 627 628 629 630 631 632 633 634 |
# File 'lib/modl/parser/parsed.rb', line 626 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, @string.string) end end |
#value_obj ⇒ Object
649 650 651 652 653 654 655 656 657 658 |
# File 'lib/modl/parser/parsed.rb', line 649 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 |