class Yadriggy::Exprs

expressions, or progn in Lisp.

Attributes

expressions[R]

@return [Array<ASTnode>] the expressions.

It may be an empty array.

Public Class Methods

make(sexp) click to toggle source

@param [Array] sexp an S-expression. @return [Exprs|ASTnode] an AST.

# File lib/yadriggy/ast.rb, line 373
def self.make(sexp)
  if sexp.length == 1
    if sexp[0][0] == :void_stmt
      Exprs.new([])
    else
      ASTree.to_node(sexp[0])
    end
  else
    Exprs.new(sexp)
  end
end
new(sexp) click to toggle source
# File lib/yadriggy/ast.rb, line 385
def initialize(sexp)
  @expressions = to_nodes(sexp)
  add_children(@expressions)
end

Public Instance Methods

accept(evaluator) click to toggle source

A method for Visitor pattern. @param [Eval] evaluator the visitor of Visitor pattern. @return [void]

# File lib/yadriggy/ast.rb, line 393
def accept(evaluator)
  evaluator.exprs(self)
end