Module: Unparser::Constants

Included in:
Emitter
Defined in:
lib/unparser/constants.rb

Overview

All unparser constants maybe included in other libraries.

Constant Summary collapse

UNARY_OPERATORS =
%w(
  ! ~ -@ +@
).map(&:to_sym).to_set
BINARY_OPERATORS =
%w(
  + - * / & | && || << >> ==
  === != <= < <=> > >= =~ !~ ^
  ** %
).map(&:to_sym).to_set
COMMENT =
'#'.freeze
WS =
' '
NL =
"\n"
T_DOT =
'.'
T_LT =
'<'
T_DLT =
'<<'
T_AMP =
'&'
T_ASN =
'='
T_SPLAT =
'*'
T_DSPLAT =
'**'
T_ASR =
'=>'
T_PIPE =
'|'
T_DCL =
'::'
T_NEG =
'!'
T_OR =
'||'
T_AND =
'&&'
T_COLON =
':'
M_PO =
'('
M_PC =
')'
K_DO =
'do'
K_DEF =
'def'
K_END =
'end'
K_BEGIN =
'begin'
K_CASE =
'case'
K_CLASS =
'class'
K_SELF =
'self'
K_ENSURE =
'ensure'
K_DEFINE =
'define'
K_MODULE =
'module'
K_RESCUE =
'rescue'
K_RETURN =
'return'
K_UNDEF =
'undef'
K_DEFINED =
'defined?'
K_PREEXE =
'BEGIN'
K_POSTEXE =
'END'
K_SUPER =
'super'
K_BREAK =
'break'
K_RETRY =
'retry'
K_REDO =
'redo'
K_NEXT =
'next'
K_FALSE =
'false'
K_TRUE =
'true'
K_IF =
'if'
K_AND =
'and'
K_ALIAS =
'alias'
K_ELSE =
'else'
K_ELSIF =
'elsif'
K_FOR =
'for'
K_NIL =
'nil'
K_NOT =
'not'
K_IN =
'in'
K_OR =
'or'
K_UNLESS =
'unless'
K_WHEN =
'when'
K_WHILE =
'while'
K_UNTIL =
'until'
K_YIELD =
'yield'
K_ENCODING =
'__ENCODING__'
K_EEND =
'__END__'
K_FILE =
'__FILE__'
K_THEN =
'then'
TERMINATED =
[
  :int, :float, :self, :kwbegin, :const, :regexp, :args, :lvar,
  :ivar, :gvar, :cvar, :if, :case, :module, :class, :sclass, :super,
  :yield, :zsuper, :break, :next, :defined?, :str, :block, :while, :loop, :until,
  :def, :defs, :true, :false, :nil, :array, :hash, :sym, :return
].to_set
KEYWORDS =
constants.each_with_object([]) do |name, keywords|
  value = const_get(name).freeze
  if name.to_s.start_with?('K_')
    keywords << value.to_sym
  end
end.to_set.freeze