.(C {(ls)} {(foo)}) ls [$x] $y core/a*.py (C {(ls)} {(Lit_LBracket '[') ($ VSub_DollarName '$x') (Lit_RBracket ']')} {($ VSub_DollarName '$y')} {(core/a) (Lit_Star '*') (.py)} ) cmd_value: (cmd_value.Argv argv: [ls '[-' -- '---]' y yy core/alloc.py core/alloc_test.py core/asdl_gen.py] arg_spids: [0 2 2 2 6 6 8 8 8] ) local a=1 (C {(local)} {(Lit_VarLike 'a=') (1)}) cmd_value: (cmd_value.Assign builtin_id: LOCAL argv: [local] arg_spids: [0] pairs: [(assign_arg lval:(lvalue.Named name:a) rval:(value.Str s:1) spid:2)] ) builtin local a=1 (C {(builtin)} {(local)} {(Lit_VarLike 'a=') (1)}) cmd_value: (cmd_value.Argv argv:[builtin local 'a=1'] arg_spids:[0 2 4]) command local a=1 (C {(command)} {(local)} {(Lit_VarLike 'a=') (1)}) cmd_value: (cmd_value.Argv argv:[command local 'a=1'] arg_spids:[0 2 4]) typeset -"$@" (C {(typeset)} {(-) (DQ ($ VSub_At '$@'))}) cmd_value: (cmd_value.Assign builtin_id: TYPESET argv: [typeset -x] arg_spids: [0 2] pairs: [ (assign_arg lval:(lvalue.Named name:foo) spid:2) (assign_arg lval:(lvalue.Named name:spam) rval:(value.Str s:eggs) spid:2) ] ) local a=(1 2) "$@" (C {(local)} {(Lit_VarLike 'a=') (word_part.ArrayLiteral words:[{(1)} {(2)}])} {(DQ ($ VSub_At '$@'))}) cmd_value: (cmd_value.Assign builtin_id: LOCAL argv: [local] arg_spids: [0] pairs: [ (assign_arg lval:(lvalue.Named name:a) rval:(value.MaybeStrArray strs:[1 2]) spid:2) (assign_arg lval:(lvalue.Named name:x) spid:9) (assign_arg lval:(lvalue.Named name:foo) spid:9) (assign_arg lval:(lvalue.Named name:spam) rval:(value.Str s:eggs) spid:9) ] ) readonly "$@" a=(1 2) (C {(readonly)} {(DQ ($ VSub_At '$@'))} {(Lit_VarLike 'a=') (word_part.ArrayLiteral words:[{(1)} {(2)}])} ) cmd_value: (cmd_value.Assign builtin_id: READONLY argv: [readonly] arg_spids: [0] pairs: [ (assign_arg lval:(lvalue.Named name:x) spid:2) (assign_arg lval:(lvalue.Named name:foo) spid:2) (assign_arg lval:(lvalue.Named name:spam) rval:(value.Str s:eggs) spid:2) (assign_arg lval:(lvalue.Named name:a) rval:(value.MaybeStrArray strs:[1 2]) spid:6) ] ) declare -rx foo=bar spam=eggs a=(1 2) (C {(declare)} {(-rx)} {(Lit_VarLike 'foo=') (bar)} {(Lit_VarLike 'spam=') (eggs)} {(Lit_VarLike 'a=') (word_part.ArrayLiteral words:[{(1)} {(2)}])} ) cmd_value: (cmd_value.Assign builtin_id: DECLARE argv: [declare -rx] arg_spids: [0 2] pairs: [ (assign_arg lval:(lvalue.Named name:foo) rval:(value.Str s:bar) spid:4) (assign_arg lval:(lvalue.Named name:spam) rval:(value.Str s:eggs) spid:7) (assign_arg lval:(lvalue.Named name:a) rval:(value.MaybeStrArray strs:[1 2]) spid:10) ] ) declare $binding (C {(declare)} {($ VSub_DollarName '$binding')}) cmd_value: (cmd_value.Assign builtin_id: DECLARE argv: [declare] arg_spids: [0] pairs: [(assign_arg lval:(lvalue.Named name:spam) rval:(value.Str s:eggs) spid:2)] ) declare $binding_with_spaces (C {(declare)} {($ VSub_DollarName '$binding_with_spaces')}) cmd_value: (cmd_value.Assign builtin_id: DECLARE argv: [declare] arg_spids: [0] pairs: [(assign_arg lval:(lvalue.Named name:x) rval:(value.Str s:'green eggs and ham') spid:2)] ) export a=(1 2) (C {(export)} {(Lit_VarLike 'a=') (word_part.ArrayLiteral words:[{(1)} {(2)}])}) cmd_value: (cmd_value.Assign builtin_id: EXPORT argv: [export] arg_spids: [0] pairs: [(assign_arg lval:(lvalue.Named name:a) rval:(value.MaybeStrArray strs:[1 2]) spid:2)] ) export A=(["k"]=v) (C {(export)} {(Lit_VarLike 'A=') (word_part.AssocArrayLiteral pairs:[{(DQ (k))} {(v)}])}) cmd_value: (cmd_value.Assign builtin_id: EXPORT argv: [export] arg_spids: [0] pairs: [(assign_arg lval:(lvalue.Named name:A) rval:(value.AssocArray d:"{'k': 'v'}") spid:2)] ) readonly a+=1 (C {(readonly)} {(Lit_VarLike 'a+=') (1)}) readonly a[x]=1 (C {(readonly)} {(Lit_ArrayLhsOpen 'a[') (x) (Lit_ArrayLhsClose ']=') (1)}) readonly $binding a[x]=1 (C {(readonly)} {($ VSub_DollarName '$binding')} {(Lit_ArrayLhsOpen 'a[') (x) (Lit_ArrayLhsClose ']=') (1)} ) decl. ---------------------------------------------------------------------- Ran 2 tests in 0.008s OK are $empty (C {(declare)} {($ VSub_DollarName '$empty')})