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 =

All unary operators of the ruby language

symbol_set %w(
  ! ~ -@ +@
)
BINARY_OPERATORS =

All binary operators of the ruby language

symbol_set %w(
  + - * / & | && || << >> ==
  === != <= < <=> > >= =~ !~ ^
  ** %
)
COMMENT =
'#'
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 =
')'
SNGL_QUOTE =
"'"
DBL_QUOTE =
'"'
K_DO =

Keywords

'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 =

Nodes that can be emitted in tokens that terminate their expression.

These nodes dont require parentheses to be exactly reproduced in context of a more complex expression.

symbol_set %w(
  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 match_current_line
)
DEFAULT_DELIMITER =
', '.freeze
CURLY_BRACKETS =
IceNine.deep_freeze(%w({ }))
KEYWORDS =
constants.each_with_object([]) do |name, keywords|
  value = const_get(name).freeze
  next unless name.to_s.start_with?('K_')
  keywords << value.to_sym
end.to_set.freeze