Sha256: d36acaa207ad835d9e1c1e98d71a79750dde66e9d3b08e8c4ace785b6e722300
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
module Mutant # Mixin for node helpers module NodeHelpers # Build node # # @param [Symbol] type # # @return [Parser::AST::Node] # # @api private # def s(type, *children) Parser::AST::Node.new(type, children) end module_function :s NAN = s(:send, s(:float, 0.0), :/, s(:float, 0.0)) INFINITY = s(:send, s(:float, 1.0), :/, s(:float, 0.0)) NEGATIVE_INFINITY = s(:send, s(:float, -1.0), :/, s(:float, 0.0)) RAISE = s(:send, nil, :raise) N_TRUE = s(:true) N_FALSE = s(:false) N_NIL = s(:nil) N_EMPTY = s(:empty) N_SELF = s(:self) # Build a negated boolean node # # @param [Parser::AST::Node] node # # @return [Parser::AST::Node] # # @api private # def n_not(node) s(:send, node, :!) end NODE_TYPES.each do |type| fail "method: #{type} is already defined" if instance_methods(true).include?(type) name = "n_#{type.to_s.sub(/\??\z/, '?')}" define_method(name) do |node| node.type.equal?(type) end private name end end # NodeHelpers end # Mutant
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.5.22 | lib/mutant/node_helpers.rb |
mutant-0.5.21 | lib/mutant/node_helpers.rb |
mutant-0.5.20 | lib/mutant/node_helpers.rb |