Skip to content

Instantly share code, notes, and snippets.

@usev6
Created June 19, 2015 21:12
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 usev6/3697d60ce7fe77f0d680 to your computer and use it in GitHub Desktop.
Save usev6/3697d60ce7fe77f0d680 to your computer and use it in GitHub Desktop.
STD output for 'my @foo; my $exists = @foo[0]:exists;'
$ viv -e 'my @foo; my $exists = @foo[0]:exists;'
VAST::comp_unit, BEG: 0, END: 38
│ └─LEX: !!perl/hash:Stash
│ '!file': &1
│ name: (eval)
│ '!id': &2
│ - MY:file<(eval)>
│ '!line': 0
│ $!: !!perl/hash:NAME
│ dynamic: 1
│ file: *1
│ line: 1
│ name: $!
│ scope: my
│ $/: !!perl/hash:NAME
│ dynamic: 1
│ file: *1
│ line: 1
│ name: $/
│ scope: my
│ $_: !!perl/hash:NAME
│ dynamic: 1
│ file: *1
│ line: 1
│ name: $_
│ scope: my
│ $exists: !!perl/hash:NAME
│ declaredat: 19
│ file: *1
│ inlex: *2
│ line: 1
│ mult: only
│ name: $exists
│ of: ~
│ scope: my
│ '@foo': !!perl/hash:NAME
│ declaredat: 7
│ file: *1
│ inlex: *2
│ line: 1
│ mult: only
│ name: '@foo'
│ of: ~
│ scope: my
│ used: 2
│ 'OUTER::':
│ - MY:file<CORE.setting>:line(690):pos(20031)
└─VAST::statementlist, BEG: 0, END: 38
├─VAST::statement, BEG: 0, END: 7
│ └─VAST::term__S_scope_declarator, BEG: 0, END: 7, SYM: scope_declarator,
│ │ _specific: 1
│ └─VAST::scope_declarator__S_my, BEG: 0, END: 7, SYM: my, _specific: 1
│ └─VAST::scoped, BEG: 2, END: 7
│ └─VAST::declarator, BEG: 3, END: 7, WS: 1
│ └─VAST::variable_declarator, BEG: 3, END: 7, WS: 1
│ │ └─decl: !!perl/hash:NAME
│ │ declaredat: 7
│ │ file:
│ │ name: (eval)
│ │ inlex:
│ │ - MY:file<(eval)>
│ │ line: 1
│ │ mult: only
│ │ name: '@foo'
│ │ of: ~
│ │ scope: my
│ │ used: 2
│ └─VAST::variable, BEG: 3, END: 7, WS: 1
│ ├─VAST::sigil__S_At, BEG: 3, END: 4, SYM: @, TEXT: @, WS: 1,
│ │ _specific: 1
│ └─VAST::desigilname, BEG: 4, END: 7
│ └─VAST::longname, BEG: 4, END: 7
│ └─VAST::name, BEG: 4, END: 7
│ └─VAST::identifier, BEG: 4, END: 7, TEXT: foo
├─VAST::statement, BEG: 9, END: 36, WS: 1
│ └─VAST::Adverb, BEG: 9, END: 36, assoc: unary, dba: adverb, prec: i=
│ ├─VAST::term__S_scope_declarator, BEG: 9, END: 29, SYM: scope_declarator,
│ │ │ WS: 1, _specific: 1
│ │ └─VAST::scope_declarator__S_my, BEG: 9, END: 29, SYM: my, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::scoped, BEG: 11, END: 29
│ │ └─VAST::declarator, BEG: 12, END: 29, WS: 1
│ │ ├─VAST::variable_declarator, BEG: 12, END: 20, WS: 1
│ │ │ │ └─decl: !!perl/hash:NAME
│ │ │ │ declaredat: 19
│ │ │ │ file:
│ │ │ │ name: (eval)
│ │ │ │ inlex:
│ │ │ │ - MY:file<(eval)>
│ │ │ │ line: 1
│ │ │ │ mult: only
│ │ │ │ name: $exists
│ │ │ │ of: ~
│ │ │ │ scope: my
│ │ │ └─VAST::variable, BEG: 12, END: 19, WS: 1
│ │ │ ├─VAST::sigil__S_Dollar, BEG: 12, END: 13, SYM: $, TEXT: $,
│ │ │ │ WS: 1, _specific: 1
│ │ │ └─VAST::desigilname, BEG: 13, END: 19
│ │ │ └─VAST::longname, BEG: 13, END: 19
│ │ │ └─VAST::name, BEG: 13, END: 19
│ │ │ └─VAST::identifier, BEG: 13, END: 19, TEXT: exists
│ │ └─VAST::initializer__S_Equal, BEG: 20, END: 29, SYM: =, WS: 1,
│ │ │ _specific: 1
│ │ └─VAST::postcircumfix__S_Bra_Ket, BEG: 22, END: 29, _from: 29,
│ │ │ │ _pos: 29, assoc: unary, dba: methodcall, fiddly: 1,
│ │ │ │ prec: y=, pure: 0, uassoc: left
│ │ │ └─postop: VAST::postop, BEG: 26, END: 29, SYM: [ ], _from: 29,
│ │ │ │ _pos: 29, assoc: unary, dba: methodcall, fiddly: 1,
│ │ │ │ postfix: {}, prec: y=, pure: 0, uassoc: left
│ │ │ └─VAST::SYM_postcircumfix__S_Bra_Ket, BEG: 26, END: 29,
│ │ │ │ │ SYM: [ ], _from: 29, _pos: 29, _specific: 1,
│ │ │ │ │ assoc: unary, dba: methodcall, fiddly: 1, prec: y=,
│ │ │ │ │ pure: 0, uassoc: left
│ │ │ │ └─_op: VAST::postcircumfix__S_Bra_Ket
│ │ │ └─VAST::semilist, BEG: 27, END: 28
│ │ │ ├─VAST::statement, BEG: 27, END: 28
│ │ │ │ └─VAST::term__S_value, BEG: 27, END: 28,
│ │ │ │ │ SYM: value, _specific: 1
│ │ │ │ └─VAST::value__S_number, BEG: 27, END: 28,
│ │ │ │ │ SYM: number, _specific: 1
│ │ │ │ └─VAST::number, BEG: 27, END: 28
│ │ │ │ └─VAST::integer, BEG: 27, END: 28
│ │ │ │ └─VAST::decint, BEG: 27, END: 28, TEXT: 0
│ │ │ └─VAST::eat_terminator, BEG: 28, END: 28, TEXT:
│ │ ├─VAST::term__S_variable, BEG: 22, END: 26, SYM: variable,
│ │ │ │ WS: 1, _specific: 1
│ │ │ └─VAST::variable, BEG: 22, END: 26, WS: 1
│ │ │ ├─VAST::sigil__S_At, BEG: 22, END: 23, SYM: @, TEXT: @,
│ │ │ │ WS: 1, _specific: 1
│ │ │ └─VAST::desigilname, BEG: 23, END: 26
│ │ │ └─VAST::longname, BEG: 23, END: 26
│ │ │ └─VAST::name, BEG: 23, END: 26
│ │ │ └─VAST::identifier, BEG: 23, END: 26, TEXT: foo
│ │ └─VAST::POST, BEG: 26, END: 29, SYM: [ ], _from: 29,
│ │ │ │ _pos: 29, assoc: unary, dba: methodcall, fiddly: 1,
│ │ │ │ prec: y=, pure: 0, uassoc: left
│ │ │ └─postop: VAST::postop, BEG: 26, END: 29, SYM: [ ], _from: 29,
│ │ │ │ _pos: 29, assoc: unary, dba: methodcall, fiddly: 1,
│ │ │ │ postfix: {}, prec: y=, pure: 0, uassoc: left
│ │ │ └─VAST::SYM_postcircumfix__S_Bra_Ket, BEG: 26, END: 29,
│ │ │ │ │ SYM: [ ], _from: 29, _pos: 29, _specific: 1,
│ │ │ │ │ assoc: unary, dba: methodcall, fiddly: 1,
│ │ │ │ │ prec: y=, pure: 0, uassoc: left
│ │ │ │ └─_op: VAST::postcircumfix__S_Bra_Ket
│ │ │ └─VAST::semilist, BEG: 27, END: 28
│ │ │ ├─VAST::statement, BEG: 27, END: 28
│ │ │ │ └─VAST::term__S_value, BEG: 27, END: 28,
│ │ │ │ │ SYM: value, _specific: 1
│ │ │ │ └─VAST::value__S_number, BEG: 27, END: 28,
│ │ │ │ │ SYM: number, _specific: 1
│ │ │ │ └─VAST::number, BEG: 27, END: 28
│ │ │ │ └─VAST::integer, BEG: 27, END: 28
│ │ │ │ └─VAST::decint, BEG: 27, END: 28,
│ │ │ │ TEXT: 0
│ │ │ └─VAST::eat_terminator, BEG: 28, END: 28, TEXT:
│ │ └─VAST::SYM_postcircumfix__S_Bra_Ket, BEG: 26, END: 29,
│ │ │ │ SYM: [ ], _from: 29, _pos: 29, _specific: 1,
│ │ │ │ assoc: unary, dba: methodcall, fiddly: 1, prec: y=,
│ │ │ │ pure: 0, uassoc: left
│ │ │ └─_op: VAST::postcircumfix__S_Bra_Ket
│ │ └─VAST::semilist, BEG: 27, END: 28
│ │ ├─VAST::statement, BEG: 27, END: 28
│ │ │ └─VAST::term__S_value, BEG: 27, END: 28, SYM: value,
│ │ │ │ _specific: 1
│ │ │ └─VAST::value__S_number, BEG: 27, END: 28,
│ │ │ │ SYM: number, _specific: 1
│ │ │ └─VAST::number, BEG: 27, END: 28
│ │ │ └─VAST::integer, BEG: 27, END: 28
│ │ │ └─VAST::decint, BEG: 27, END: 28, TEXT: 0
│ │ └─VAST::eat_terminator, BEG: 28, END: 28, TEXT:
│ └─VAST::infixish, BEG: 29, END: 36, SYM: :, assoc: unary, dba: adverb,
│ │ fake: 1, prec: i=
│ └─VAST::colonpair, BEG: 29, END: 36, k: exists, v: 1
│ └─VAST::identifier, BEG: 30, END: 36, TEXT: exists
├─VAST::eat_terminator, BEG: 7, END: 8, TEXT: ;
└─VAST::eat_terminator, BEG: 36, END: 37, TEXT: ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment