Sha256: 889c2f93235a51f8153ff954b990d07bd5d05d899dd1b9c731f4f11cd5c53897
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
module Melbourne module AST # The +and+ operator as in: # # a and b # class And < Node # The left-side expression of the +and+ operator # attr_accessor :left # The right-side expression of the +and+ operator # attr_accessor :right def initialize(line, left, right) @line = line @left = left @right = right end end # The +or+ operator as in: # # a or b # class Or < And end # The +not+ operator as in: # # (not true) # class Not < Node # The value that is negated # attr_accessor :value def initialize(line, value) @line = line @value = value end end # TODO: document! class OpAssign1 < Node attr_accessor :receiver attr_accessor :op attr_accessor :index attr_accessor :value def initialize(line, receiver, index, op, value) @line = line @receiver = receiver @op = op @index = index.body @value = value end end # TODO: document! class OpAssign2 < Node attr_accessor :receiver attr_accessor :op attr_accessor :name attr_accessor :assign attr_accessor :value def initialize(line, receiver, name, op, value) @line = line @receiver = receiver @name = name @op = op @value = value @assign = name.to_s[-1] == ?= ? name : :"#{name}=" end end # TODO: document! class OpAssignAnd < Node attr_accessor :left, :right def initialize(line, left, right) @line = line @left = left @right = right end end # TODO: document! class OpAssignOr < OpAssignAnd end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
melbourne-1.0.1 | lib/melbourne/ast/operators.rb |