# frozen_string_literal# encoding__END__
- Singleton literals
niltruefalse
- Numeric literals
123123.0123r123i
- String-likes
/re/(w/ or w/o interpolation)"str"(w/ or w/o interpolation):"sym"(w/ or w/o interpolation):sym#{expr}#@var%w[...]and its family<<EOFand its family
- Constructor syntaxes
[elems]{ entries }../...
- Variable-likes
my_varMyConst::(prefix)::(infix)@var@@var$foo$foo$"etc.$-aetc.$&$1
self__ENCODING____FILE____LINE__it_1
- Calls
methobj.meth(also&.and::)obj.(args)(also&.and::)obj[idx]`cmd`(w/ or w/o interpolation)-> { body }for lhs in arrsuper(which issuper(...))super(args)
- Operators
&&/and&&=||/or||=!/not(has special semantics in old Rubies)- Ordinary operator expressions (which is method call)
!/~/+(unary) /-(unary)***///%+/-<</>>&|/^>,>=,<,<=<=>,==,!=,===,=~,!~not(alias of!)
- Operator assignments (for binary non-predicate operators)
**=*=//=/%=+=/-=<<=/>>=&=|=/^=
- Declarations
def meth(also endless variants)def (recv).meth(also endless variants)classclass <<exprmodulealiasundef
- Controls
beginif/unless(either prefix or infix)else/elsifwhile/until(either prefix or infix)case/when/else(for classic switching)case/in/else(for pattern-based switching)ensurerescuerescue(infix operator)returnbreaknextyieldredoretryENDBEGIN
- Arguments (also in Arrays and Hashes)
arg_expras in arguments*arrkey => valuekey: value**kwargs&my_blockdo |params| end/{ |params| }...as in arguments
- Predicates
defined?expr in patexpr => pat
- Implicit syntaxes
- Implicit array in assignment RHS
if a..b(i.e. flip-flop)if /re/(a.k.a. match last)/(?<my_var>...)/ =~ val(note the capture)
- Variable-likes
my_varmy_param = default_valuemy_kwparam:my_kwparam: default_valueMyConst(also note::)# shareable_const_value: literal@var@@var$var(except$1and$&variants)
- Calls
obj.attrobj[idx]
- Splats
*args**kwargs**nil...
- Multi
lhs1, lhs2
- Decl
do |x, y; z|
- Implicit syntaxes
- implicit
itcapture (when the variable is used in the block body) - implicit
_1capture (when the variable is used in the block body) - implicit
*(when the multi LHS ends with,)
- implicit
|[elems][*left, elems, *right]my_var{ entries }^(expr)/^my_var