..['mystr', 'mystr', '', ''] ['myarray[1]', 'myarray', '[1]', '1'] ['assoc[name]', 'assoc', '[name]', 'name'] (command.Simple blame_tok: more_env: [] words: [{} {}] is_last_cmd: F ) ls [$x] $y core/a*.py (command.Simple blame_tok: more_env: [] words: [ {} { ($ x) } {($ y)} { } ] is_last_cmd: F ) cmd_value: (cmd_value.Argv argv: [ls "[-" -- "---]" y yy core/alloc.py core/alloc_test.py] arg_locs: [ (CompoundWord parts: [ (Token id: 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:Id.Lit_LBracket length:1 col:3 line:...0x7f5dec782680 tval:"[") (SimpleVarSub tok: (Token id:Id.VSub_DollarName length:2 col:4 line:...0x7f5dec782680 tval:x) ) (Token id:Id.Lit_RBracket length:1 col:6 line:...0x7f5dec782680 tval:"]") ] ) ...0x7f5dec79a050 ...0x7f5dec79a050 (CompoundWord parts: [ (SimpleVarSub tok: (Token id:Id.VSub_DollarName length:2 col:8 line:...0x7f5dec782680 tval:y) ) ] ) ...0x7f5dec79a248 (CompoundWord parts: [ (Token id:Id.Lit_Chars length:4 col:11 line:...0x7f5dec782680 tval:core) (Token id:Id.Lit_Slash length:1 col:15 line:...0x7f5dec782680 tval:/) (Token id:Id.Lit_Chars length:1 col:16 line:...0x7f5dec782680 tval:a) (Token id:Id.Lit_Star length:1 col:17 line:...0x7f5dec782680 tval:"*") (Token id:Id.Lit_Chars length:3 col:18 line:...0x7f5dec782680 tval:.py) ] ) ...0x7f5dec79a3b0 ] is_last_cmd: F ) local a=1 (command.Simple blame_tok: more_env: [] words: [{} {") ) tval: local ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:6 line:...0x7f5dec782628) (Token id:Id.Lit_Chars length:1 col:8 line:...0x7f5dec782628 tval:1) ] ) ) ] ) builtin local a=1 (command.Simple blame_tok: more_env: [] words: [{} {} {") ) tval: builtin ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:14 line:...0x7f5dec782680) (Token id:Id.Lit_Chars length:1 col:16 line:...0x7f5dec782680 tval:1) ] ) ) ] ) command local a=1 (command.Simple blame_tok: more_env: [] words: [{} {} {") ) tval: command ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:14 line:...0x7f5dec782628) (Token id:Id.Lit_Chars length:1 col:16 line:...0x7f5dec782628 tval:1) ] ) ) ] ) typeset -"$@" (command.Simple blame_tok: more_env: [] words: [{} { (DQ ($ Id.VSub_At))}] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 13 argv: [typeset -x] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 0 line: (SourceLine line_num: 1 content: "typeset -\"$@\"" src: (source.MainFile path:"") ) tval: typeset ) ] ) (CompoundWord parts: [ (Token id:Id.Lit_Chars length:1 col:8 line:...0x7f5dec782680 tval:-) (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:9 line:...0x7f5dec782680) parts: [(SimpleVarSub tok:(Token id:Id.VSub_At length:2 col:10 line:...0x7f5dec782680))] right: (Token id:Id.Right_DoubleQuote length:1 col:12 line:...0x7f5dec782680) ) ] ) ] pairs: [ (AssignArg var_name:foo plus_eq:F blame_word:...0x7f5dec79eea8) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f5dec79eea8) ] ) local a=(1 2) "$@" (command.Simple blame_tok: more_env: [] words: [ {} { words: [{} {}] right: ) } {(DQ ($ Id.VSub_At))} ] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 11 argv: [local] arg_locs: [ (CompoundWord parts: [ (Token id: 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:Id.Lit_VarLike length:2 col:6 line:...0x7f5dec782628) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:8 line:...0x7f5dec782628) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:9 line:...0x7f5dec782628 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:11 line:...0x7f5dec782628 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:12 line:...0x7f5dec782628) ) ] ) ) (AssignArg var_name: x plus_eq: F blame_word: (CompoundWord parts: [ (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:14 line:...0x7f5dec782628) parts: [(SimpleVarSub tok:(Token id:Id.VSub_At length:2 col:15 line:...0x7f5dec782628))] right: (Token id:Id.Right_DoubleQuote length:1 col:17 line:...0x7f5dec782628) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7f5dec7a48c0) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f5dec7a48c0) ] ) readonly "$@" a=(1 2) (command.Simple blame_tok: more_env: [] words: [ {} {(DQ ($ Id.VSub_At))} { words: [{} {}] right: ) } ] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 10 argv: [readonly] arg_locs: [ (CompoundWord parts: [ (Token id: 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:Id.Left_DoubleQuote length:1 col:9 line:...0x7f5dec782680) parts: [(SimpleVarSub tok:(Token id:Id.VSub_At length:2 col:10 line:...0x7f5dec782680))] right: (Token id:Id.Right_DoubleQuote length:1 col:12 line:...0x7f5dec782680) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7f5dec94cb00) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f5dec94cb00) (AssignArg var_name: a rval: (value.BashArray strs:[1 2]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:14 line:...0x7f5dec782680) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:16 line:...0x7f5dec782680) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:17 line:...0x7f5dec782680 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:19 line:...0x7f5dec782680 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:20 line:...0x7f5dec782680) ) ] ) ) ] ) declare -rx foo=bar spam=eggs a=(1 2) (command.Simple blame_tok: more_env: [] words: [ {} {} { words: [{} {}] right: ) } ] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 12 argv: [declare -rx] arg_locs: [ (CompoundWord parts: [ (Token id: 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:Id.Lit_Chars length:3 col:8 line:...0x7f5dec782628 tval:-rx)]) ] pairs: [ (AssignArg var_name: foo rval: (value.Str s:bar) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:4 col:12 line:...0x7f5dec782628) (Token id:Id.Lit_Chars length:3 col:16 line:...0x7f5dec782628 tval:bar) ] ) ) (AssignArg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:5 col:20 line:...0x7f5dec782628) (Token id:Id.Lit_Chars length:4 col:25 line:...0x7f5dec782628 tval:eggs) ] ) ) (AssignArg var_name: a rval: (value.BashArray strs:[1 2]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:30 line:...0x7f5dec782628) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:32 line:...0x7f5dec782628) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:33 line:...0x7f5dec782628 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:35 line:...0x7f5dec782628 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:36 line:...0x7f5dec782628) ) ] ) ) ] ) declare $binding (command.Simple blame_tok: more_env: [] words: [{} {($ binding)}] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 12 argv: [declare] arg_locs: [ (CompoundWord parts: [ (Token id: 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:Id.VSub_DollarName length:8 col:8 line:...0x7f5dec782730 tval:binding) ) ] ) ) ] ) declare $binding_with_spaces (command.Simple blame_tok: more_env: [] words: [{} {($ binding_with_spaces)}] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 12 argv: [declare] arg_locs: [ (CompoundWord parts: [ (Token id: 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: Id.VSub_DollarName length: 20 col: 8 line: ...0x7f5dec782628 tval: binding_with_spaces ) ) ] ) ) ] ) export a=(1 2) (command.Simple blame_tok: more_env: [] words: [ {} { words: [{} {}] right: ) } ] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 14 argv: [export] arg_locs: [ (CompoundWord parts: [ (Token id: 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:Id.Lit_VarLike length:2 col:7 line:...0x7f5dec782730) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:9 line:...0x7f5dec782730) words: [ (CompoundWord pa.. ---------------------------------------------------------------------- Ran 4 tests in 0.024s OK rts: [(Token id:Id.Lit_Chars length:1 col:10 line:...0x7f5dec782730 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:12 line:...0x7f5dec782730 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:13 line:...0x7f5dec782730) ) ] ) ) ] ) export A=(["k"]=v) (command.Simple blame_tok: more_env: [] words: [ {} { pairs: [(AssocPair key:{(DQ )} value:{})] right: ) } ] is_last_cmd: F ) cmd_value: (cmd_value.Assign builtin_id: 14 argv: [export] arg_locs: [ (CompoundWord parts: [ (Token id: 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:[Dict k v]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:7 line:...0x7f5dec782628) (word_part.BashAssocLiteral left: (Token id:Id.Op_LParen length:1 col:9 line:...0x7f5dec782628) pairs: [ (AssocPair key: (CompoundWord parts: [ (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:11 line:...0x7f5dec782628) parts: [ (Token id: Id.Lit_Chars length: 1 col: 12 line: ...0x7f5dec782628 tval: k ) ] right: (Token id: Id.Right_DoubleQuote length: 1 col: 13 line: ...0x7f5dec782628 ) ) ] ) value: (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:16 line:...0x7f5dec782628 tval:v)] ) ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:17 line:...0x7f5dec782628) ) ] ) ) ] ) readonly a[x]=1 (command.Simple blame_tok: more_env: [] words: [ {} {