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
623 624 625 626 |
# File 'lib/modl/parser/parsed.rb', line 623 def initialize(global) @global = global @constant = false end |
Instance Attribute Details
#constant ⇒ Object
Returns the value of attribute constant.
620 621 622 |
# File 'lib/modl/parser/parsed.rb', line 620 def constant @constant end |
#falseVal ⇒ Object
Returns the value of attribute falseVal.
617 618 619 |
# File 'lib/modl/parser/parsed.rb', line 617 def falseVal @falseVal end |
#nilVal ⇒ Object
Returns the value of attribute nilVal.
618 619 620 |
# File 'lib/modl/parser/parsed.rb', line 618 def nilVal @nilVal end |
#number ⇒ Object
Returns the value of attribute number.
615 616 617 |
# File 'lib/modl/parser/parsed.rb', line 615 def number @number end |
#quoted ⇒ Object
Returns the value of attribute quoted.
614 615 616 |
# File 'lib/modl/parser/parsed.rb', line 614 def quoted @quoted end |
#string ⇒ Object
Returns the value of attribute string.
619 620 621 |
# File 'lib/modl/parser/parsed.rb', line 619 def string @string end |
#text ⇒ Object
The simple text value rather than the object
621 622 623 |
# File 'lib/modl/parser/parsed.rb', line 621 def text @text end |
#trueVal ⇒ Object
Returns the value of attribute trueVal.
616 617 618 |
# File 'lib/modl/parser/parsed.rb', line 616 def trueVal @trueVal end |
Instance Method Details
#enterModl_primitive(ctx) ⇒ Object
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 694 695 |
# File 'lib/modl/parser/parsed.rb', line 662 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
644 645 646 647 648 649 |
# File 'lib/modl/parser/parsed.rb', line 644 def evaluate return false if @nilVal return false if @falseVal true end |
#extract_hash ⇒ Object
638 639 640 641 642 |
# File 'lib/modl/parser/parsed.rb', line 638 def extract_hash result, _ignore = RefProcessor.deref(@text, @global) unless @constant result = @text if @constant result end |
#find_property(key) ⇒ Object
628 629 630 631 632 633 634 635 636 |
# File 'lib/modl/parser/parsed.rb', line 628 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
651 652 653 654 655 656 657 658 659 660 |
# File 'lib/modl/parser/parsed.rb', line 651 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 |