Module: Yadriggy::AstHelper

Overview

Helper module

Instance Method Summary collapse

Instance Method Details

#has_tag?(s, *tags) ⇒ Array

Returns the S-expression if it starts with the tag. Otherwise, raise an error.

Parameters:

  • s (Array)

    an S-expression.

  • tags (Array<Symbol>)

Returns:

  • (Array)

    the S-expression if it starts with the tag. Otherwise, raise an error.



310
311
312
313
# File 'lib/yadriggy/ast.rb', line 310

def has_tag?(s, *tags)
  raise "s-exp is not :#{tags.join(", ")}. #{s}" if !s.nil? && !tags.include?(s[0])
  s
end

#to_node(s) ⇒ ASTnode

Returns an AST.

Parameters:

  • s (Array)

    an S-expression.

Returns:



297
# File 'lib/yadriggy/ast.rb', line 297

def to_node(s) ASTree.to_node(s) end

#to_nodes(s) ⇒ Array<ASTnode>

Returns ASTs.

Parameters:

  • s (Array)

    an array of S-expression.

Returns:



301
302
303
304
# File 'lib/yadriggy/ast.rb', line 301

def to_nodes(s)
  raise "not an array: #{s}" unless s.class == Array
  s.map {|e| ASTree.to_node(e) }
end