.(C {} {}) ls [$x] $y core/a*.py (C {} { ($ Id.VSub_DollarName x) } {($ Id.VSub_DollarName y)} {<'core/a'> <.py>} ) cmd_value: (cmd_value.Argv argv: [ls '[-' -- '---]' y yy 'core/alloc.py' 'core/alloc_test.py' 'core/ansi.py'] arg_locs: [ (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 0 length: 2 span_id: 0 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: ls ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_LBracket col: 3 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '[' ) (simple_var_sub left: (Token id: Id.VSub_DollarName col: 4 length: 2 span_id: 3 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '$x' ) var_name: x ) (Token id: Id.Lit_RBracket col: 6 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: ']' ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_LBracket col: 3 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '[' ) (simple_var_sub left: (Token id: Id.VSub_DollarName col: 4 length: 2 span_id: 3 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '$x' ) var_name: x ) (Token id: Id.Lit_RBracket col: 6 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: ']' ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_LBracket col: 3 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '[' ) (simple_var_sub left: (Token id: Id.VSub_DollarName col: 4 length: 2 span_id: 3 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '$x' ) var_name: x ) (Token id: Id.Lit_RBracket col: 6 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: ']' ) ] ) ) (loc.Word w: (compound_word parts: [ (simple_var_sub left: (Token id: Id.VSub_DollarName col: 8 length: 2 span_id: 6 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '$y' ) var_name: y ) ] ) ) (loc.Word w: (compound_word parts: [ (simple_var_sub left: (Token id: Id.VSub_DollarName col: 8 length: 2 span_id: 6 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '$y' ) var_name: y ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 11 length: 6 span_id: 8 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: 'core/a' ) (Token id: Id.Lit_Star col: 17 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '*' ) (Token id: Id.Lit_Chars col: 18 length: 3 span_id: 10 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: .py ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 11 length: 6 span_id: 8 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: 'core/a' ) (Token id: Id.Lit_Star col: 17 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '*' ) (Token id: Id.Lit_Chars col: 18 length: 3 span_id: 10 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: .py ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 11 length: 6 span_id: 8 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: 'core/a' ) (Token id: Id.Lit_Star col: 17 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: '*' ) (Token id: Id.Lit_Chars col: 18 length: 3 span_id: 10 line: (SourceLine line_num: 1 content: 'ls [$x] $y core/a*.py' src: (source.MainFile path:'') ) tval: .py ) ] ) ) ] ) local a=1 (C {} {') ) tval: local ) ] ) ) ] pairs: [ (assign_arg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 6 length: 2 span_id: 2 line: (SourceLine line_num: 1 content: 'local a=1' src: (source.MainFile path:'') ) tval: 'a=' ) (Token id: Id.Lit_Chars col: 8 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'local a=1' src: (source.MainFile path:'') ) tval: 1 ) ] ) ) ] ) builtin local a=1 (C {} {} {') ) tval: builtin ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 8 length: 5 span_id: 2 line: (SourceLine line_num: 1 content: 'builtin local a=1' src: (source.MainFile path:'') ) tval: local ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 14 length: 2 span_id: 4 line: (SourceLine line_num: 1 content: 'builtin local a=1' src: (source.MainFile path:'') ) tval: 'a=' ) (Token id: Id.Lit_Chars col: 16 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: 'builtin local a=1' src: (source.MainFile path:'') ) tval: 1 ) ] ) ) ] ) command local a=1 (C {} {} {') ) tval: command ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 8 length: 5 span_id: 2 line: (SourceLine line_num: 1 content: 'command local a=1' src: (source.MainFile path:'') ) tval: local ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 14 length: 2 span_id: 4 line: (SourceLine line_num: 1 content: 'command local a=1' src: (source.MainFile path:'') ) tval: 'a=' ) (Token id: Id.Lit_Chars col: 16 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: 'command local a=1' src: (source.MainFile path:'') ) tval: 1 ) ] ) ) ] ) typeset -"$@" (C {} {<-> (DQ ($ Id.VSub_At '@'))}) cmd_value: (cmd_value.Assign builtin_id: 14 argv: [typeset -x] arg_locs: [ (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 0 length: 7 span_id: 0 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: typeset ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 8 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: - ) (double_quoted left: (Token id: Id.Left_DoubleQuote col: 9 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 10 length: 2 span_id: 4 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 12 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) ] pairs: [ (assign_arg var_name: foo plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_Chars col: 8 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: - ) (double_quoted left: (Token id: Id.Left_DoubleQuote col: 9 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 10 length: 2 span_id: 4 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 12 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) (assign_arg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_Chars col: 8 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: - ) (double_quoted left: (Token id: Id.Left_DoubleQuote col: 9 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 10 length: 2 span_id: 4 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 12 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: 'typeset -"$@"' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) ] ) local a=(1 2) "$@" (C {} {') ) tval: local ) ] ) ) ] pairs: [ (assign_arg var_name: a rval: (value.MaybeStrArray strs:[1 2]) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 6 length: 2 span_id: 2 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: 'a=' ) (sh_array_literal left: (Token id: Id.Op_LParen col: 8 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: _ ) words: [ (compound_word parts: [ (Token id: Id.Lit_Chars col: 9 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: 1 ) ] ) (compound_word parts: [ (Token id: Id.Lit_Chars col: 11 length: 1 span_id: 6 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: 2 ) ] ) ] ) ] ) ) (assign_arg var_name: x plus_eq: F blame_word: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 14 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 15 length: 2 span_id: 10 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 17 length: 1 span_id: 11 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) (assign_arg var_name: foo plus_eq: F blame_word: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 14 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 15 length: 2 span_id: 10 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 17 length: 1 span_id: 11 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) (assign_arg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 14 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 15 length: 2 span_id: 10 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 17 length: 1 span_id: 11 line: (SourceLine line_num: 1 content: 'local a=(1 2) "$@"' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) ] ) readonly "$@" a=(1 2) (C {} {(DQ ($ Id.VSub_At '@'))} {') ) tval: readonly ) ] ) ) ] pairs: [ (assign_arg var_name: x plus_eq: F blame_word: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 9 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 10 length: 2 span_id: 3 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 12 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) (assign_arg var_name: foo plus_eq: F blame_word: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 9 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 10 length: 2 span_id: 3 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 12 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) (assign_arg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 9 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (simple_var_sub left: (Token id: Id.VSub_At col: 10 length: 2 span_id: 3 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '$@' ) var_name: '@' ) ] right: (Token id: Id.Right_DoubleQuote col: 12 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) ) (assign_arg var_name: a rval: (value.MaybeStrArray strs:[1 2]) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 14 length: 2 span_id: 6 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: 'a=' ) (sh_array_literal left: (Token id: Id.Op_LParen col: 16 length: 1 span_id: 7 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: _ ) words: [ (compound_word parts: [ (Token id: Id.Lit_Chars col: 17 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: 1 ) ] ) (compound_word parts: [ (Token id: Id.Lit_Chars col: 19 length: 1 span_id: 10 line: (SourceLine line_num: 1 content: 'readonly "$@" a=(1 2)' src: (source.MainFile path:'') ) tval: 2 ) ] ) ] ) ] ) ) ] ) declare -rx foo=bar spam=eggs a=(1 2) (C {} {<-rx>} {') ) tval: declare ) ] ) ) (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 8 length: 3 span_id: 2 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: -rx ) ] ) ) ] pairs: [ (assign_arg var_name: foo rval: (value.Str s:bar) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 12 length: 4 span_id: 4 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: 'foo=' ) (Token id: Id.Lit_Chars col: 16 length: 3 span_id: 5 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: bar ) ] ) ) (assign_arg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 20 length: 5 span_id: 7 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: 'spam=' ) (Token id: Id.Lit_Chars col: 25 length: 4 span_id: 8 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: eggs ) ] ) ) (assign_arg var_name: a rval: (value.MaybeStrArray strs:[1 2]) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 30 length: 2 span_id: 10 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: 'a=' ) (sh_array_literal left: (Token id: Id.Op_LParen col: 32 length: 1 span_id: 11 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: _ ) words: [ (compound_word parts: [ (Token id: Id.Lit_Chars col: 33 length: 1 span_id: 12 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: 1 ) ] ) (compound_word parts: [ (Token id: Id.Lit_Chars col: 35 length: 1 span_id: 14 line: (SourceLine line_num: 1 content: 'declare -rx foo=bar spam=eggs a=(1 2)' src: (source.MainFile path:'') ) tval: 2 ) ] ) ] ) ] ) ) ] ) declare $binding (C {} {($ Id.VSub_DollarName binding)}) cmd_value: (cmd_value.Assign builtin_id: 13 argv: [declare] arg_locs: [ (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 0 length: 7 span_id: 0 line: (SourceLine line_num: 1 content: 'declare $binding' src: (source.MainFile path:'') ) tval: declare ) ] ) ) ] pairs: [ (assign_arg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (compound_word parts: [ (simple_var_sub left: (Token id: Id.VSub_DollarName col: 8 length: 8 span_id: 2 line: (SourceLine line_num: 1 content: 'declare $binding' src: (source.MainFile path:'') ) tval: '$binding' ) var_name: binding ) ] ) ) ] ) declare $binding_with_spaces (C {} {($ Id.VSub_DollarName binding_with_spaces)}) cmd_value: (cmd_value.Assign builtin_id: 13 argv: [declare] arg_locs: [ (loc.Word w: (compound_word parts: [ (Token id: Id.Lit_Chars col: 0 length: 7 span_id: 0 line: (SourceLine line_num: 1 content: 'declare $binding_with_spaces' src: (source.MainFile path:'') ) tval: declare ) ] ) ) ] pairs: [ (assign_arg var_name: x rval: (value.Str s:'green eggs and ham') plus_eq: F blame_word: (compound_word parts: [ (simple_var_sub left: (Token id: Id.VSub_DollarName col: 8 length: 20 span_id: 2 line: (SourceLine line_num: 1 content: 'declare $binding_with_spaces' src: (source.MainFile path:'') ) tval: '$binding_with_spaces' ) var_name: binding_with_spaces ) ] ) ) ] ) export a=(1 2) (C {} {') ) tval: export ) ] ) ) ] pairs: [ (assign_arg var_name: a rval: (value.MaybeStrArray strs:[1 2]) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 7 length: 2 span_id: 2 line: (SourceLine line_num: 1 content: 'export a=(1 2)' src: (source.MainFile path:'') ) tval: 'a=' ) (sh_array_literal left: (Token id: Id.Op_LParen col: 9 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'export a=(1 2)' src: (source.MainFile path:'') ) tval: _ ) words: [ (compound_word parts: [ (Token id: Id.Lit_Chars col: 10 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: 'export a=(1 2)' src: (source.MainFile path:'') ) tval: 1 ) ] ) (compound_word parts: [ (Token id: Id.Lit_Chars col: 12 length: 1 span_id: 6 line: (SourceLine line_num: 1 content: 'export a=(1 2)' src: (source.MainFile path:'') ) tval: 2 ) ] ) ] ) ] ) ) ] ) export A=(["k"]=v) (C {} {') ) tval: export ) ] ) ) ] pairs: [ (assign_arg var_name: A rval: (value.AssocArray d:[Dict k v]) plus_eq: F blame_word: (compound_word parts: [ (Token id: Id.Lit_VarLike col: 7 length: 2 span_id: 2 line: (SourceLine line_num: 1 content: 'export A=(["k"]=v)' src: (source.MainFile path:'') ) tval: 'A=' ) (word_part.AssocArrayLiteral left: (Token id: Id.Op_LParen col: 9 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: 'export A=(["k"]=v)' src: (source.MainFile path:'') ) tval: _ ) pairs: [ (assoc_pair key: (compound_word parts: [ (double_quoted left: (Token id: Id.Left_DoubleQuote col: 11 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: 'export A=(["k"]=v)' src: (source.MainFile path:'') ) tval: '"' ) parts: [ (Token id: Id.Lit_Chars col: 12 length: 1 span_id: 6 line: (SourceLine line_num: 1 content: 'export A=(["k"]=v)' src: (source.MainFile path:'') ) tval: k ) ] right: (Token id: Id.Right_DoubleQuote col: 13 length: 1 span_id: 7 line: (SourceLine line_num: 1 content: 'export A=(["k"]=v)' src: (source.MainFile path:'') ) tval: '"' ) ) ] ) value: (compound_word parts: [ (Token id: Id.Lit_Chars col: 16 length: 1 .. ---------------------------------------------------------------------- Ran 3 tests in 0.076s OK span_id: 9 line: (SourceLine line_num: 1 content: 'export A=(["k"]=v)' src: (source.MainFile path:'') ) tval: v ) ] ) ) ] spids: [3] ) ] ) ) ] ) readonly a[x]=1 (C {} {