Sha256: e3d216011ed488de2c29176df2753fb2c8d1464d5d24199f86b4c43f9522415f

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

# encoding: utf-8

module Mutant

  # Set of nodes that cannot be on the LHS of an assignment
  NOT_ASSIGNABLE = symbolset %w(
    int float str dstr class module self
  )

  # Set of op-assign types
  OP_ASSIGN              = symbolset %w(or_asgn and_asgn op_asgn)
  # Set of node types that are not valid when emitted standalone
  NOT_STANDALONE         = symbolset %w( splat restarg block_pass)
  INDEX_OPERATORS        = symbolset %w([] []=)
  UNARY_METHOD_OPERATORS = symbolset %w(~@ +@ -@ !)

  # Operators ruby implementeds as methods
  METHOD_OPERATORS = symbolset %w(
    <=> === []= [] <= >= == !~ != =~ <<
    >> ** * % / | ^ & < > + - ~@ +@ -@ !
  )

  BINARY_METHOD_OPERATORS = (
    METHOD_OPERATORS - (INDEX_OPERATORS + UNARY_METHOD_OPERATORS)
  ).to_set.freeze

  OPERATOR_METHODS = (
    METHOD_OPERATORS + INDEX_OPERATORS + UNARY_METHOD_OPERATORS
  ).to_set.freeze

  # Nodes that are NOT handled by mutant.
  #
  # not - 1.8 only, mutant does not support 1.8
  #
  NODE_BLACKLIST = symbolset %w(not)

  # Nodes that are NOT generated by parser but used by mutant / unparser.
  NODE_EXTRA = symbolset %w(empty)

  NODE_TYPES = ((Parser::Meta::NODE_TYPES + NODE_EXTRA) - NODE_BLACKLIST).to_set.freeze

end # Mutant

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mutant-0.5.12 lib/mutant/constants.rb
mutant-0.5.11 lib/mutant/constants.rb