Class: Yadriggy::Assign
- Defined in:
- lib/yadriggy/ast.rb,
lib/yadriggy/ast_value.rb
Overview
Assignment such as = and +=.
Assign#left and Assign#right return an ASTnode,
or an array of ASTnode if the node represents multiple
assignment.
Instance Attribute Summary
Attributes inherited from Binary
Attributes inherited from ASTnode
Class Method Summary collapse
Instance Method Summary collapse
-
#accept(evaluator) ⇒ void
A method for Visitor pattern.
- #const_value ⇒ Object
- #const_value_in_class(klass) ⇒ Object
-
#initialize(sexp) ⇒ Assign
constructor
A new instance of Assign.
- #value ⇒ Object
- #value_in_class(klass) ⇒ Object
Methods inherited from Binary
Methods included from AstHelper
#has_tag?, #to_node, #to_nodes
Methods inherited from ASTnode
#add_child, #add_children, #get_context_class, #get_receiver_object, #is_proc?, #pretty_print, #root, #source_location, #source_location_string
Constructor Details
#initialize(sexp) ⇒ Assign
Returns a new instance of Assign.
704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 |
# File 'lib/yadriggy/ast.rb', line 704 def initialize(sexp) case sexp[0] when :assign @left = to_node(sexp[1]) add_child(@left) @op = :'=' init_right(sexp[2]) when :opassign @left = to_node(sexp[1]) add_child(@left) @op = has_tag?(sexp[2], :@op)[1].to_sym init_right(sexp[3]) when :massign @left = to_nodes(sexp[1]) add_children(@left) @op = :'=' init_right(sexp[2]) else raise "unknown assignment " + sexp[0].to_s end end |
Class Method Details
.tags ⇒ Object
702 |
# File 'lib/yadriggy/ast.rb', line 702 def self.() [:assign, :opassign, :massign] end |
Instance Method Details
#accept(evaluator) ⇒ void
This method returns an undefined value.
A method for Visitor pattern.
729 730 731 |
# File 'lib/yadriggy/ast.rb', line 729 def accept(evaluator) evaluator.assign(self) end |
#const_value ⇒ Object
389 |
# File 'lib/yadriggy/ast_value.rb', line 389 def const_value() Undef end |
#const_value_in_class(klass) ⇒ Object
391 |
# File 'lib/yadriggy/ast_value.rb', line 391 def const_value_in_class(klass) Undef end |
#value ⇒ Object
385 |
# File 'lib/yadriggy/ast_value.rb', line 385 def value() Undef end |
#value_in_class(klass) ⇒ Object
387 |
# File 'lib/yadriggy/ast_value.rb', line 387 def value_in_class(klass) Undef end |