class Seaquel::AST::Expression
Base class for all expression-type AST
nodes.
Public Class Methods
binop(op, *aliases)
click to toggle source
# File lib/seaquel/ast/expression.rb, line 6 def self.binop op, *aliases define_method(op) do |exp| BinOp.new(op, self, exp) end aliases.each do |op_alias| alias_method(op_alias, op) end end
joinop(op, *aliases)
click to toggle source
# File lib/seaquel/ast/expression.rb, line 15 def self.joinop op, *aliases define_method(op) do |exp| JoinOp.new(op, [self, exp]) end aliases.each do |op_alias| alias_method(op_alias, op) end end
unaryop(op, *aliases)
click to toggle source
# File lib/seaquel/ast/expression.rb, line 24 def self.unaryop op, *aliases define_method(op) do Unary.new(op, self) end aliases.each do |op_alias| alias_method(op_alias, op) end end
Public Instance Methods
as(name)
click to toggle source
# File lib/seaquel/ast/expression.rb, line 79 def as name Alias.new(name, self) end
asc()
click to toggle source
# File lib/seaquel/ast/expression.rb, line 83 def asc Order.new(:asc, self) end
desc()
click to toggle source
# File lib/seaquel/ast/expression.rb, line 86 def desc Order.new(:desc, self) end
lisp_inspect(type, *args)
click to toggle source
# File lib/seaquel/ast/expression.rb, line 90 def lisp_inspect type, *args "(" + [type.to_s, args.map(&:inspect)].join(' ') + ")" end