Skip to content

Instantly share code, notes, and snippets.

@masak
Created July 10, 2010 13:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save masak/470719 to your computer and use it in GitHub Desktop.
Save masak/470719 to your computer and use it in GitHub Desktop.
$ ./viv -e 'say (my $a) = 1, 2, 3'
VAST::comp_unit, BEG: 0, END: 22
│ └─LEX: !!perl/hash:Stash
│ '!file': &1
│ name: (eval)
│ '!id': &2
│ - MY:file<(eval)>
│ '!line': 0
│ $!: !!perl/hash:NAME
│ file: *1
│ line: 1
│ name: $!
│ $/: !!perl/hash:NAME
│ file: *1
│ line: 1
│ name: $/
│ $_: !!perl/hash:NAME
│ file: *1
│ line: 1
│ name: $_
│ $a: !!perl/hash:NAME
│ file: *1
│ inlex: *2
│ line: 1
│ mult: only
│ name: $a
│ xlex: *2
│ '&say': !!perl/hash:NAME
│ file:
│ name: CORE.setting
│ line: 274
│ mult: only
│ name: OUTER::<&say>
│ olex: *2
│ rebind: 1
│ varbind:
│ truename: OUTER::<&say>
│ xlex: *2
│ 'OUTER::':
│ - MY:file<CORE.setting>
└─VAST::statementlist, BEG: 0, END: 22
├─VAST::statement, BEG: 0, END: 22
│ └─VAST::term__S_identifier, BEG: 0, END: 22, SYM: identifier, _from: 22,
│ │ _pos: 22, _specific: 1, dba: term, prec: z=
│ ├─VAST::identifier, BEG: 0, END: 3, TEXT: say
│ └─VAST::args, BEG: 3, END: 22, invocant: undef
│ └─VAST::arglist, BEG: 4, END: 22, WS: 1
│ └─VAST::infix__S_Equal, BEG: 4, END: 21, _from: 13, _pos: 13,
│ │ assoc: right, dba: list assignment, fiddly: 1, prec: e=,
│ │ pure: 0, sub: e=
│ ├─VAST::term__S_circumfix, BEG: 4, END: 11, SYM: circumfix, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::circumfix__S_Paren_Thesis, BEG: 4, END: 11, SYM: ( ),
│ │ │ WS: 1, _from: 11, _pos: 11, _specific: 1, dba: term,
│ │ │ prec: z=
│ │ └─VAST::semilist, BEG: 5, END: 10
│ │ ├─VAST::statement, BEG: 5, END: 10
│ │ │ └─VAST::term__S_scope_declarator, BEG: 5, END: 10,
│ │ │ │ SYM: scope_declarator, _specific: 1
│ │ │ └─VAST::scope_declarator__S_my, BEG: 5, END: 10, SYM: my,
│ │ │ │ _specific: 1
│ │ │ └─VAST::scoped, BEG: 7, END: 10
│ │ │ └─VAST::declarator, BEG: 8, END: 10, WS: 1
│ │ │ └─VAST::variable_declarator, BEG: 8, END: 10,
│ │ │ │ │ WS: 1
│ │ │ │ └─decl: !!perl/hash:NAME
│ │ │ │ file:
│ │ │ │ name: (eval)
│ │ │ │ inlex: &1
│ │ │ │ - MY:file<(eval)>
│ │ │ │ line: 1
│ │ │ │ mult: only
│ │ │ │ name: $a
│ │ │ │ xlex: *1
│ │ │ └─VAST::variable, BEG: 8, END: 10, WS: 1
│ │ │ ├─VAST::sigil__S_Dollar, BEG: 8, END: 9,
│ │ │ │ SYM: $, TEXT: $, WS: 1, _specific: 1
│ │ │ └─VAST::desigilname, BEG: 9, END: 10
│ │ │ └─VAST::longname, BEG: 9, END: 10
│ │ │ └─VAST::name, BEG: 9, END: 10
│ │ │ └─VAST::identifier, BEG: 9, END: 10,
│ │ │ TEXT: a
│ │ └─VAST::eat_terminator, BEG: 10, END: 10, TEXT:
│ ├─VAST::infixish, BEG: 12, END: 13, SYM: =, WS: 1, _from: 13,
│ │ │ _pos: 13, assoc: right, dba: list assignment, fiddly: 1,
│ │ │ prec: i=, pure: 0, sub: e=
│ │ └─VAST::SYM_infix__S_Equal, BEG: 12, END: 13, SYM: =, TEXT: =,
│ │ WS: 1, _from: 13, _op: VAST::infix__S_Equal, _pos: 13,
│ │ _specific: 1, assoc: right, dba: list assignment,
│ │ fiddly: 1, prec: i=, pure: 0, sub: e=
│ └─VAST::infix__S_Comma, BEG: 14, END: 21, _from: 19, _pos: 19,
│ │ assoc: list, dba: comma, fiddly: 0, nextterm: nulltermish,
│ │ prec: g=, pure: 1
│ ├─VAST::term__S_value, BEG: 14, END: 15, SYM: value, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::value__S_number, BEG: 14, END: 15, SYM: number, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::number, BEG: 14, END: 15, WS: 1
│ │ └─VAST::integer, BEG: 14, END: 15, WS: 1
│ │ └─VAST::decint, BEG: 14, END: 15, TEXT: 1, WS: 1
│ ├─VAST::infixish, BEG: 15, END: 16, SYM: ,, _from: 16, _pos: 16,
│ │ │ assoc: list, dba: comma, fiddly: 0, nextterm: nulltermish,
│ │ │ prec: g=, pure: 1
│ │ └─VAST::SYM_infix__S_Comma, BEG: 15, END: 16, SYM: ,, TEXT: ,,
│ │ _from: 16, _op: VAST::infix__S_Comma, _pos: 16,
│ │ _specific: 1, assoc: list, dba: comma, fiddly: 0,
│ │ nextterm: nulltermish, prec: g=, pure: 1
│ ├─VAST::term__S_value, BEG: 17, END: 18, SYM: value, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::value__S_number, BEG: 17, END: 18, SYM: number, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::number, BEG: 17, END: 18, WS: 1
│ │ └─VAST::integer, BEG: 17, END: 18, WS: 1
│ │ └─VAST::decint, BEG: 17, END: 18, TEXT: 2, WS: 1
│ ├─VAST::infixish, BEG: 18, END: 19, SYM: ,, _from: 19, _pos: 19,
│ │ │ assoc: list, dba: comma, fiddly: 0, nextterm: nulltermish,
│ │ │ prec: g=, pure: 1
│ │ └─VAST::SYM_infix__S_Comma, BEG: 18, END: 19, SYM: ,, TEXT: ,,
│ │ _from: 19, _op: VAST::infix__S_Comma, _pos: 19,
│ │ _specific: 1, assoc: list, dba: comma, fiddly: 0,
│ │ nextterm: nulltermish, prec: g=, pure: 1
│ └─VAST::term__S_value, BEG: 20, END: 21, SYM: value, WS: 1,
│ │ _specific: 1
│ └─VAST::value__S_number, BEG: 20, END: 21, SYM: number, WS: 1,
│ │ _specific: 1
│ └─VAST::number, BEG: 20, END: 21, WS: 1
│ └─VAST::integer, BEG: 20, END: 21, WS: 1
│ └─VAST::decint, BEG: 20, END: 21, TEXT: 3, WS: 1
└─VAST::eat_terminator, BEG: 22, END: 22, TEXT: , WS: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment