free_mutant/lib/mutant/ast/sexp.rb

35 lines
579 B
Ruby
Raw Normal View History

module Mutant
module AST
# Mixin for node sexp syntax
module Sexp
private
# Build node
#
# @param [Symbol] type
#
# @return [Parser::AST::Node]
#
# @api private
#
def s(type, *children)
Parser::AST::Node.new(type, children)
end
# Build a negated boolean node
#
# @param [Parser::AST::Node] node
#
# @return [Parser::AST::Node]
#
# @api private
#
def n_not(node)
s(:send, node, :!)
end
end # Sexp
end # AST
end # Mutant