Skip to content

Instantly share code, notes, and snippets.

@lmarburger
Last active August 29, 2015 14:05
Show Gist options
  • Save lmarburger/6e9bbb47b8ec5e066eb7 to your computer and use it in GitHub Desktop.
Save lmarburger/6e9bbb47b8ec5e066eb7 to your computer and use it in GitHub Desktop.
$ ruby-parse -E -e 'def a(*) end
a = 1
a(:a)
a :a'
def a(*) end
^~~ kDEF "def" expr_fname [0 <= cond] [0 <= cmdarg]
def a(*) end
^ tIDENTIFIER "a" expr_endfn [0 <= cond] [0 <= cmdarg]
def a(*) end
^ tLPAREN2 "(" expr_beg [0 <= cond] [0 <= cmdarg]
def a(*) end
^ tSTAR "*" expr_beg [0 <= cond] [0 <= cmdarg]
def a(*) end
^ tRPAREN ")" expr_end [0 <= cond] [0 <= cmdarg]
>>> STATE SET <<< expr_value [0 <= cond] [0 <= cmdarg]
def a(*) end
^~~ kEND "end" expr_end [0 <= cond] [0 <= cmdarg]
def a(*) end
^ tNL nil line_begin [0 <= cond] [0 <= cmdarg]
a = 1
^ tIDENTIFIER "a" expr_cmdarg [0 <= cond] [0 <= cmdarg]
a = 1
^ tEQL "=" expr_beg [0 <= cond] [0 <= cmdarg]
a = 1
^ tINTEGER 1 expr_end [0 <= cond] [0 <= cmdarg]
a = 1
^ tNL nil line_begin [0 <= cond] [0 <= cmdarg]
a(:a)
^ tIDENTIFIER "a" expr_end [0 <= cond] [0 <= cmdarg]
a(:a)
^ tLPAREN2 "(" expr_beg [0 <= cond] [0 <= cmdarg]
a(:a)
^~ tSYMBOL "a" expr_end [0 <= cond] [0 <= cmdarg]
a(:a)
^ tRPAREN ")" expr_end [0 <= cond] [0 <= cmdarg]
a(:a)
^ tNL nil line_begin [0 <= cond] [0 <= cmdarg]
a :a
^ tIDENTIFIER "a" expr_end [0 <= cond] [0 <= cmdarg]
a :a
^ tCOLON ":" expr_beg [0 <= cond] [0 <= cmdarg]
(fragment:0):4:3: error: unexpected token tCOLON
a :a
^
RUBY_VERSION #=> "2.1.1"
RUBY_PATCHLEVEL #=> 76
def a(*) end
a :a #=> nil
a = 1
a :a
SyntaxError: (irb):4: syntax error, unexpected ':', expecting end-of-input
from /Users/Larry/.rbenv/versions/2.1.1/bin/irb:11:in `<main>'
a(:a) #=> nil
a 'a' #=> nil
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment