..['mystr', 'mystr', '', ''] ['myarray[1]', 'myarray', '[1]', '1'] ['assoc[name]', 'assoc', '[name]', 'name'] (C (w ) (w )) ls [$x] $y core/a*.py (C (w ) (w ($ x) ) (w ($ y)) (w ) ) cmd_value: (cmd_value.Argv argv:[ls "[-" -- "---]" y yy core/alloc.py core/alloc_test.py] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ls [$x] $y core/a*.py" src:(source.MainFile path:"") ) tval:ls ) ] ) (CompoundWord parts:[ (Token id:Lit_LBracket length:1 col:3 line:...0x7fdad1c12c58 tval:"[") (SimpleVarSub tok:(Token id:VSub_DollarName length:2 col:4 line:...0x7fdad1c12c58 tval:x ) ) (Token id:Lit_RBracket length:1 col:6 line:...0x7fdad1c12c58 tval:"]") ] ) ...0x7fdad1cb95f0 ...0x7fdad1cb95f0 (CompoundWord parts:[ (SimpleVarSub tok:(Token id:VSub_DollarName length:2 col:8 line:...0x7fdad1c12c58 tval:y ) ) ] ) ...0x7fdad1cb97e8 (CompoundWord parts:[ (Token id:Lit_Chars length:4 col:11 line:...0x7fdad1c12c58 tval:core) (Token id:Lit_Slash length:1 col:15 line:...0x7fdad1c12c58 tval:/) (Token id:Lit_Chars length:1 col:16 line:...0x7fdad1c12c58 tval:a) (Token id:Lit_Star length:1 col:17 line:...0x7fdad1c12c58 tval:"*") (Token id:Lit_Chars length:3 col:18 line:...0x7fdad1c12c58 tval:.py) ] ) ...0x7fdad1cb92d8 ] is_last_cmd:F ) local a=1 (C (w ) (w ") ) tval:local ) ] ) ] pairs:[ (AssignArg var_name:a rval:(value.Str s:1) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:6 line:...0x7fdad1c12e68) (Token id:Lit_Chars length:1 col:8 line:...0x7fdad1c12e68 tval:1) ] ) ) ] ) builtin local a=1 (C (w ) (w ) (w ") ) tval:builtin ) ] ) ] pairs:[ (AssignArg var_name:a rval:(value.Str s:1) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:14 line:...0x7fdad1c12c58) (Token id:Lit_Chars length:1 col:16 line:...0x7fdad1c12c58 tval:1) ] ) ) ] ) command local a=1 (C (w ) (w ) (w ") ) tval:command ) ] ) ] pairs:[ (AssignArg var_name:a rval:(value.Str s:1) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:14 line:...0x7fdad1c12db8) (Token id:Lit_Chars length:1 col:16 line:...0x7fdad1c12db8 tval:1) ] ) ) ] ) typeset -"$@" (C (w ) (w (DQ ($ VSub_At)))) cmd_value: (cmd_value.Assign builtin_id:13 argv:[typeset -x] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:7 col:0 line:(SourceLine line_num:1 content:"typeset -\"$@\"" src:(source.MainFile path:"") ) tval:typeset ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:8 line:...0x7fdad1c12aa0 tval:-) (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:9 line:...0x7fdad1c12aa0) parts:[ (SimpleVarSub tok:(Token id:VSub_At length:2 col:10 line:...0x7fdad1c12aa0) ) ] right:(Token id:Right_DoubleQuote length:1 col:12 line:...0x7fdad1c12aa0 ) ) ] ) ] pairs:[ (AssignArg var_name:foo plus_eq:F blame_word:...0x7fdad1db8098) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7fdad1db8098 ) ] ) local a=(1 2) "$@" (C (w ) (w words:[(w ) (w )] right: ) ) (w (DQ ($ VSub_At))) ) cmd_value: (cmd_value.Assign builtin_id:11 argv:[local] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:5 col:0 line:(SourceLine line_num:1 content:"local a=(1 2) \"$@\"" src:(source.MainFile path:"") ) tval:local ) ] ) ] pairs:[ (AssignArg var_name:a rval:(value.BashArray strs:[1 2]) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:6 line:...0x7fdad1c12f70) (ShArrayLiteral left:(Token id:Op_LParen length:1 col:8 line:...0x7fdad1c12f70) words:[ (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:9 line:...0x7fdad1c12f70 tval:1 ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:11 line:...0x7fdad1c12f70 tval:2 ) ] ) ] right:(Token id:Right_ShArrayLiteral length:1 col:12 line:...0x7fdad1c12f70 ) ) ] ) ) (AssignArg var_name:x plus_eq:F blame_word:(CompoundWord parts:[ (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:14 line:...0x7fdad1c12f70 ) parts:[ (SimpleVarSub tok:(Token id:VSub_At length:2 col:15 line:...0x7fdad1c12f70) ) ] right:(Token id:Right_DoubleQuote length:1 col:17 line:...0x7fdad1c12f70 ) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7fdad1de5f80) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7fdad1de5f80 ) ] ) readonly "$@" a=(1 2) (C (w ) (w (DQ ($ VSub_At))) (w words:[(w ) (w )] right: ) ) ) cmd_value: (cmd_value.Assign builtin_id:10 argv:[readonly] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:8 col:0 line:(SourceLine line_num:1 content:"readonly \"$@\" a=(1 2)" src:(source.MainFile path:"") ) tval:readonly ) ] ) ] pairs:[ (AssignArg var_name:x plus_eq:F blame_word:(CompoundWord parts:[ (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:9 line:...0x7fdad1c12af8 ) parts:[ (SimpleVarSub tok:(Token id:VSub_At length:2 col:10 line:...0x7fdad1c12af8) ) ] right:(Token id:Right_DoubleQuote length:1 col:12 line:...0x7fdad1c12af8 ) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7fdad1dddc68) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7fdad1dddc68 ) (AssignArg var_name:a rval:(value.BashArray strs:[1 2]) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:14 line:...0x7fdad1c12af8) (ShArrayLiteral left:(Token id:Op_LParen length:1 col:16 line:...0x7fdad1c12af8) words:[ (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:17 line:...0x7fdad1c12af8 tval:1 ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:19 line:...0x7fdad1c12af8 tval:2 ) ] ) ] right:(Token id:Right_ShArrayLiteral length:1 col:20 line:...0x7fdad1c12af8 ) ) ] ) ) ] ) declare -rx foo=bar spam=eggs a=(1 2) (C (w ) (w ) (w words:[(w ) (w )] right: ) ) ) cmd_value: (cmd_value.Assign builtin_id:12 argv:[declare -rx] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:7 col:0 line:(SourceLine line_num:1 content:"declare -rx foo=bar spam=eggs a=(1 2)" src:(source.MainFile path:"") ) tval:declare ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:3 col:8 line:...0x7fdad1c12c58 tval:-rx) ] ) ] pairs:[ (AssignArg var_name:foo rval:(value.Str s:bar) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:4 col:12 line:...0x7fdad1c12c58) (Token id:Lit_Chars length:3 col:16 line:...0x7fdad1c12c58 tval:bar) ] ) ) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:5 col:20 line:...0x7fdad1c12c58) (Token id:Lit_Chars length:4 col:25 line:...0x7fdad1c12c58 tval:eggs) ] ) ) (AssignArg var_name:a rval:(value.BashArray strs:[1 2]) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:30 line:...0x7fdad1c12c58) (ShArrayLiteral left:(Token id:Op_LParen length:1 col:32 line:...0x7fdad1c12c58) words:[ (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:33 line:...0x7fdad1c12c58 tval:1 ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:35 line:...0x7fdad1c12c58 tval:2 ) ] ) ] right:(Token id:Right_ShArrayLiteral length:1 col:36 line:...0x7fdad1c12c58 ) ) ] ) ) ] ) declare $binding (C (w ) (w ($ binding))) cmd_value: (cmd_value.Assign builtin_id:12 argv:[declare] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:7 col:0 line:(SourceLine line_num:1 content:"declare $binding" src:(source.MainFile path:"") ) tval:declare ) ] ) ] pairs:[ (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:(CompoundWord parts:[ (SimpleVarSub tok:(Token id:VSub_DollarName length:8 col:8 line:...0x7fdad1c12ba8 tval:binding ) ) ] ) ) ] ) declare $binding_with_spaces (C (w ) (w ($ binding_with_spaces))) cmd_value: (cmd_value.Assign builtin_id:12 argv:[declare] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:7 col:0 line:(SourceLine line_num:1 content:"declare $binding_with_spaces" src:(source.MainFile path:"") ) tval:declare ) ] ) ] pairs:[ (AssignArg var_name:x rval:(value.Str s:"green eggs and ham") plus_eq:F blame_word:(CompoundWord parts:[ (SimpleVarSub tok:(Token id:VSub_DollarName length:20 col:8 line:...0x7fdad1c12c58 tval:binding_with_spaces ) ) ] ) ) ] ) export a=(1 2) (C (w ) (w words:[(w ) (w )] right: ) ) ) cmd_value: (cmd_value.Assign builtin_id:14 argv:[export] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:6 col:0 line:(SourceLine line_num:1 content:"export a=(1 2)" src:(source.MainFile path:"") ) tval:export ) ] ) ] pairs:[ (AssignArg var_name:a rval:(value.BashArray strs:[1 2]) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:7 line:...0x7fdad1c12890) (ShArrayLiteral left:(Token id:Op_LParen length:1 col:9 line:...0x7fdad1c12890) words:[ (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:10 line:...0x7fdad1c12890 tval:1 ) ] ) (CompoundWord .. ---------------------------------------------------------------------- Ran 4 tests in 0.058s OK parts:[ (Token id:Lit_Chars length:1 col:12 line:...0x7fdad1c12890 tval:2 ) ] ) ] right:(Token id:Right_ShArrayLiteral length:1 col:13 line:...0x7fdad1c12890 ) ) ] ) ) ] ) export A=(["k"]=v) (C (w ) (w pairs:[(AssocPair key:(w (DQ )) value:(w ))] right: ) ) ) cmd_value: (cmd_value.Assign builtin_id:14 argv:[export] arg_locs:[ (CompoundWord parts:[ (Token id:Lit_Chars length:6 col:0 line:(SourceLine line_num:1 content:"export A=([\"k\"]=v)" src:(source.MainFile path:"") ) tval:export ) ] ) ] pairs:[ (AssignArg var_name:A rval:(value.BashAssoc d:{k v}) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:7 line:...0x7fdad1c12f18) (word_part.BashAssocLiteral left:(Token id:Op_LParen length:1 col:9 line:...0x7fdad1c12f18) pairs:[ (AssocPair key:(CompoundWord parts:[ (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:11 line:...0x7fdad1c12f18 ) parts:[ (Token id:Lit_Chars length:1 col:12 line:...0x7fdad1c12f18 tval:k ) ] right:(Token id:Right_DoubleQuote length:1 col:13 line:...0x7fdad1c12f18 ) ) ] ) value:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:...0x7fdad1c12f18 tval:v ) ] ) ) ] right:(Token id:Right_ShArrayLiteral length:1 col:17 line:...0x7fdad1c12f18 ) ) ] ) ) ] ) readonly a[x]=1 (C (w ) (w