..['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:...0x7f6b5b9e7d10 tval:"[") (SimpleVarSub tok:(Token id:VSub_DollarName length:2 col:4 line:...0x7f6b5b9e7d10 tval:x ) ) (Token id:Lit_RBracket length:1 col:6 line:...0x7f6b5b9e7d10 tval:"]") ] ) ...0x7f6b5b98ab90 ...0x7f6b5b98ab90 (CompoundWord parts:[ (SimpleVarSub tok:(Token id:VSub_DollarName length:2 col:8 line:...0x7f6b5b9e7d10 tval:y ) ) ] ) ...0x7f6b5b98ad20 (CompoundWord parts:[ (Token id:Lit_Chars length:4 col:11 line:...0x7f6b5b9e7d10 tval:core) (Token id:Lit_Slash length:1 col:15 line:...0x7f6b5b9e7d10 tval:/) (Token id:Lit_Chars length:1 col:16 line:...0x7f6b5b9e7d10 tval:a) (Token id:Lit_Star length:1 col:17 line:...0x7f6b5b9e7d10 tval:"*") (Token id:Lit_Chars length:3 col:18 line:...0x7f6b5b9e7d10 tval:.py) ] ) ...0x7f6b5b98af50 ] 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:...0x7f6b5b9e7cb0) (Token id:Lit_Chars length:1 col:8 line:...0x7f6b5b9e7cb0 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:...0x7f6b5b9e7bf0) (Token id:Lit_Chars length:1 col:16 line:...0x7f6b5b9e7bf0 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:...0x7f6b5b984cb0) (Token id:Lit_Chars length:1 col:16 line:...0x7f6b5b984cb0 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:...0x7f6b5b984590 tval:-) (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:9 line:...0x7f6b5b984590) parts:[ (SimpleVarSub tok:(Token id:VSub_At length:2 col:10 line:...0x7f6b5b984590) ) ] right:(Token id:Right_DoubleQuote length:1 col:12 line:...0x7f6b5b984590 ) ) ] ) ] pairs:[ (AssignArg var_name:foo plus_eq:F blame_word:...0x7f6b5b964e10) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f6b5b964e10 ) ] ) local a=(1 2) "$@" (C (w ) (w pairs:[ (InitializerWord.ArrayWord w:(w )) (InitializerWord.ArrayWord 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.InitializerList assigns:[ (InitializerValue rval:1 plus_eq:F) (InitializerValue rval:2 plus_eq:F) ] ) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:6 line:...0x7f6b5b9c2cb0) (word_part.InitializerLiteral left:(Token id:Op_LParen length:1 col:8 line:...0x7f6b5b9c2cb0) pairs:[ (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:9 line:...0x7f6b5b9c2cb0 tval:1 ) ] ) ) (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:11 line:...0x7f6b5b9c2cb0 tval:2 ) ] ) ) ] right:(Token id:Right_Initializer length:1 col:12 line:...0x7f6b5b9c2cb0 ) ) ] ) ) (AssignArg var_name:x plus_eq:F blame_word:(CompoundWord parts:[ (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:14 line:...0x7f6b5b9c2cb0 ) parts:[ (SimpleVarSub tok:(Token id:VSub_At length:2 col:15 line:...0x7f6b5b9c2cb0) ) ] right:(Token id:Right_DoubleQuote length:1 col:17 line:...0x7f6b5b9c2cb0 ) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7f6b5ba040f0) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f6b5ba040f0 ) ] ) readonly "$@" a=(1 2) (C (w ) (w (DQ ($ VSub_At))) (w pairs:[ (InitializerWord.ArrayWord w:(w )) (InitializerWord.ArrayWord 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:...0x7f6b5b9e7bf0 ) parts:[ (SimpleVarSub tok:(Token id:VSub_At length:2 col:10 line:...0x7f6b5b9e7bf0) ) ] right:(Token id:Right_DoubleQuote length:1 col:12 line:...0x7f6b5b9e7bf0 ) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7f6b5b9857d0) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f6b5b9857d0 ) (AssignArg var_name:a rval:(value.InitializerList assigns:[ (InitializerValue rval:1 plus_eq:F) (InitializerValue rval:2 plus_eq:F) ] ) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:14 line:...0x7f6b5b9e7bf0) (word_part.InitializerLiteral left:(Token id:Op_LParen length:1 col:16 line:...0x7f6b5b9e7bf0) pairs:[ (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:17 line:...0x7f6b5b9e7bf0 tval:1 ) ] ) ) (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:19 line:...0x7f6b5b9e7bf0 tval:2 ) ] ) ) ] right:(Token id:Right_Initializer length:1 col:20 line:...0x7f6b5b9e7bf0 ) ) ] ) ) ] ) declare -rx foo=bar spam=eggs a=(1 2) (C (w ) (w ) (w pairs:[ (InitializerWord.ArrayWord w:(w )) (InitializerWord.ArrayWord 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:...0x7f6b5b9e79b0 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:...0x7f6b5b9e79b0) (Token id:Lit_Chars length:3 col:16 line:...0x7f6b5b9e79b0 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:...0x7f6b5b9e79b0) (Token id:Lit_Chars length:4 col:25 line:...0x7f6b5b9e79b0 tval:eggs) ] ) ) (AssignArg var_name:a rval:(value.InitializerList assigns:[ (InitializerValue rval:1 plus_eq:F) (InitializerValue rval:2 plus_eq:F) ] ) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:30 line:...0x7f6b5b9e79b0) (word_part.InitializerLiteral left:(Token id:Op_LParen length:1 col:32 line:...0x7f6b5b9e79b0) pairs:[ (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:33 line:...0x7f6b5b9e79b0 tval:1 ) ] ) ) (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:35 line:...0x7f6b5b9e79b0 tval:2 ) ] ) ) ] right:(Token id:Right_Initializer length:1 col:36 line:...0x7f6b5b9e79b0 ) ) ] ) ) ] ) 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:...0x7f6b5b9c29b0 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:...0x7f6b5b9c2e30 tval:binding_with_spaces ) ) ] ) ) ] ) export a=(1 2) (C (w ) (w pairs:[ (InitializerWord.ArrayWord w:(w )) (InitializerWord.ArrayWord 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.InitializerList assigns:[ (InitializerValue rval:1 plus_eq:F) (InitializerValue rval:2 plus_eq:F) ] ) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:7 line:...0x7f6b5b9c29b0) (word_part.InitializerLiteral left:(Token id:Op_LParen length:1 col:9 line:...0x7f6b5b9c29b0) pairs:[ (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:10 line:...0x7f6b5b9c29b0 tval:1 ) ] ) ) (InitializerWord.ArrayWord w:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:12 line:...0x7f6b5b9c29b0 tval:2 ) ] ) ) ] right:(Token id:Right_Initializer length:1 col:13 line:...0x7f6b5b9c29b0 ) ) ] ) ) ] ) export A=(["k"]=v) (C (w ) (w pairs:[ (AssocPair key:(w (DQ )) value:(w ) has_plus:F ) ] 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.InitializerList assigns:[(InitializerValue key:k rval:v plus_eq:F)] ) plus_eq:F blame_word:(CompoundWord parts:[ (Token id:Lit_VarLike length:2 col:7 line:...0x7f6b5b9e7950) (word_part.InitializerLiteral left:(Token id:Op_LParen length:1 col:9 line:...0x7f6b5b9e7950) pairs:[ (AssocPair key:(CompoundWord parts:[ (DoubleQuoted left:(Token id:Left_DoubleQuote length:1 col:11 line:...0x7f6b5b9e7950 ) parts:[ (Token id:Lit_Chars length:1 col:12 line:...0x7f6b5b9e7950 tval:k ) ] right:(Token id:Right_DoubleQuote length:1 col:13 line:...0x7f6b5b9e7950 ) ) ] ) valu.. ---------------------------------------------------------------------- Ran 4 tests in 0.069s OK e:(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:...0x7f6b5b9e7950 tval:v ) ] ) has_plus:F ) ] right:(Token id:Right_Initializer length:1 col:17 line:...0x7f6b5b9e7950 ) ) ] ) ) ] ) readonly a[x]=1 (C (w ) (w