(command.CommandList children: [ (C {(Lit_Other ':')} { (word_part.BracedVarSub token: <VSub_Name test> suffix_op: (suffix_op.StringUnary op_id:VTest_Equals arg_word:{(test)}) spids: [95 99] ) } ) (command.FuncDef name: t body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[119]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike count>) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [120 125] ) } spids: [119] ) ] spids: [119] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:syntax spids:[132]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(eval)} {($ VSub_DollarName '$test')} {($ VSub_Number '$2')}] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [134 143] ) ) } spids: [132] ) ] spids: [132] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ret spids:[147]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [147] ) ] spids: [147] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$syntax'))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(printf)} {(DQ ('not ok %s - (syntax error)') (Lit_Other '\\') (n))} {(DQ ($ VSub_DollarName '$count') (' ') ($ VSub_Number '$2'))} ) ] spids: [16777215 162] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$ret'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(printf)} { (DQ ('not ok %s - (got ') ($ VSub_DollarName '$ret') (', expected ') ($ VSub_Number '$1') (')') (Lit_Other '\\') (n) ) } {(DQ ($ VSub_DollarName '$count') (' ') ($ VSub_Number '$2'))} ) ] spids: [180 198] ) ] else_action: [ (C {(printf)} {(DQ ('ok %s') (Lit_Other '\\') (n))} {(DQ ($ VSub_DollarName '$count') (' ') ($ VSub_Number '$2'))} ) ] spids: [220 238] ) ] spids: [107] ) spids: [102 106] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count spids:[243]) op: Equal rhs: {(0)} spids: [243] ) ] spids: [243] ) (C {(echo)} {(DQ (1..130))}) (C {(t)} {(0)} {(SQ <'b = b'>)}) (C {(t)} {(0)} {(SQ <'b == b'>)}) (C {(t)} {(1)} {(SQ <'b != b'>)}) (C {(t)} {(0)} {(SQ <'\\( b = b \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( b == b \\)'>)}) (C {(t)} {(1)} {(SQ <'! \\( b = b \\)'>)}) (C {(t)} {(1)} {(SQ <'! \\( b == b \\)'>)}) (C {(t)} {(1)} {(SQ <'! -f /etc/passwd'>)}) (C {(t)} {(0)} {(SQ <'-h = -h'>)}) (C {(t)} {(0)} {(SQ <'-o = -o'>)}) (C {(t)} {(1)} {(SQ <'-f = h'>)}) (C {(t)} {(1)} {(SQ <'-h = f'>)}) (C {(t)} {(1)} {(SQ <'-o = f'>)}) (C {(t)} {(1)} {(SQ <'f = -o'>)}) (C {(t)} {(0)} {(SQ <'\\( -h = -h \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( a = -h \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( -f = h \\)'>)}) (C {(t)} {(0)} {(SQ <'-h = -h -o a'>)}) (C {(t)} {(0)} {(SQ <'\\( -h = -h \\) -o 1'>)}) (C {(t)} {(0)} {(SQ <'-h = -h -o -h = -h'>)}) (C {(t)} {(0)} {(SQ <'\\( -h = -h \\) -o \\( -h = -h \\)'>)}) (C {(t)} {(0)} {(SQ <'roedelheim = roedelheim'>)}) (C {(t)} {(1)} {(SQ <'potsdam = berlin-dahlem'>)}) (C {(t)} {(0)} {(SQ <'-d /'>)}) (C {(t)} {(0)} {(SQ <'-d / -a a != b'>)}) (C {(t)} {(1)} {(SQ <'-z "-z"'>)}) (C {(t)} {(0)} {(SQ <'-n -n'>)}) (C {(t)} {(0)} {(SQ <0>)}) (C {(t)} {(0)} {(SQ <'\\( 0 \\)'>)}) (C {(t)} {(0)} {(SQ <-E>)}) (C {(t)} {(0)} {(SQ <'-X -a -X'>)}) (C {(t)} {(0)} {(SQ <-XXX>)}) (C {(t)} {(0)} {(SQ <'\\( -E \\)'>)}) (C {(t)} {(0)} {(SQ <'true -o X'>)}) (C {(t)} {(0)} {(SQ <'true -o -X'>)}) (C {(t)} {(0)} {(SQ <'\\( \\( \\( a = a \\) -o 1 \\) -a 1 \\) -a true'>)}) (C {(t)} {(1)} {(SQ <'-h /'>)}) (C {(t)} {(0)} {(SQ <'-r /'>)}) (C {(t)} {(1)} {(SQ <'-w /'>)}) (C {(t)} {(0)} {(SQ <'-x /bin/sh'>)}) (C {(t)} {(0)} {(SQ <'-c /dev/null'>)}) (C {(t)} {(0)} {(SQ <'-f /etc/passwd'>)}) (C {(t)} {(0)} {(SQ <'-s /etc/passwd'>)}) (C {(t)} {(1)} {(SQ <'! \\( 700 -le 1000 -a -n "1" -a "20" = "20" \\)'>)}) (C {(t)} {(0)} {(SQ <'100 -eq 100'>)}) (C {(t)} {(0)} {(SQ <'100 -lt 200'>)}) (C {(t)} {(1)} {(SQ <'1000 -lt 200'>)}) (C {(t)} {(0)} {(SQ <'1000 -gt 200'>)}) (C {(t)} {(0)} {(SQ <'1000 -ge 200'>)}) (C {(t)} {(0)} {(SQ <'1000 -ge 1000'>)}) (C {(t)} {(1)} {(SQ <'2 -ne 2'>)}) (C {(t)} {(0)} {(SQ <'0 -eq 0'>)}) (C {(t)} {(1)} {(SQ <'-5 -eq 5'>)}) (C {(t)} {(0)} {(SQ <'\\( 0 -eq 0 \\)'>)}) (C {(t)} {(1)} {(SQ <'1 -eq 0 -o a = a -a 1 -eq 0 -o a = aa'>)}) (C {(t)} {(1)} {(SQ <'"" -o ""'>)}) (C {(t)} {(1)} {(SQ <'"" -a ""'>)}) (C {(t)} {(1)} {(SQ <'"a" -a ""'>)}) (C {(t)} {(0)} {(SQ <'"a" -a ! ""'>)}) (C {(t)} {(1)} {(SQ <'""'>)}) (C {(t)} {(0)} {(SQ <'! ""'>)}) (C {(t)} {(0)} {(SQ <'!'>)}) (C {(t)} {(0)} {(SQ <'\\('>)}) (C {(t)} {(0)} {(SQ <'\\)'>)}) (C {(t)} {(1)} {(SQ <'\\( = \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( != \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( ! \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( \\( \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( \\) \\)'>)}) (C {(t)} {(0)} {(SQ <'! = !'>)}) (C {(t)} {(1)} {(SQ <'! != !'>)}) (C {(t)} {(1)} {(SQ <'-n = \\)'>)}) (C {(t)} {(0)} {(SQ <'! != \\)'>)}) (C {(t)} {(1)} {(SQ <'! = a'>)}) (C {(t)} {(0)} {(SQ <'! != -n'>)}) (C {(t)} {(0)} {(SQ <'! -c /etc/passwd'>)}) (C {(t)} {(1)} {(SQ <'! = = ='>)}) (C {(t)} {(0)} {(SQ <'! = = \\)'>)}) (C {(t)} {(0)} {(SQ <'! "" -o ""'>)}) (C {(t)} {(1)} {(SQ <'! "x" -o ""'>)}) (C {(t)} {(1)} {(SQ <'! "" -o "x"'>)}) (C {(t)} {(1)} {(SQ <'! "x" -o "x"'>)}) (C {(t)} {(0)} {(SQ <'\\( -f /etc/passwd \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( ! "" \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( ! -e \\)'>)}) (C {(t)} {(0)} {(SQ <'0 -eq 0 -a -d /'>)}) (C {(t)} {(0)} {(SQ <'-s = "" -o "" = ""'>)}) (C {(t)} {(0)} {(SQ <'"" = "" -o -s = ""'>)}) (C {(t)} {(1)} {(SQ <'-s = "" -o -s = ""'>)}) (C {(t)} {(0)} {(SQ <'-z x -o x = "#" -o x = x'>)}) (C {(t)} {(1)} {(SQ <'-z y -o y = "#" -o y = x'>)}) (C {(t)} {(0)} {(SQ <'0 -ne 0 -o ! -f /'>)}) (C {(t)} {(0)} {(SQ <'1 -ne 0 -o ! -f /etc/passwd'>)}) (C {(t)} {(1)} {(SQ <'0 -ne 0 -o ! -f /etc/passwd'>)}) (C {(t)} {(0)} {(SQ <'-n ='>)}) (C {(t)} {(1)} {(SQ <'-z ='>)}) (C {(t)} {(1)} {(SQ <'! ='>)}) (C {(t)} {(0)} {(SQ <'-n -eq'>)}) (C {(t)} {(1)} {(SQ <'-z -eq'>)}) (C {(t)} {(1)} {(SQ <'! -eq'>)}) (C {(t)} {(0)} {(SQ <'-n -a'>)}) (C {(t)} {(1)} {(SQ <'-z -a'>)}) (C {(t)} {(1)} {(SQ <'! -a'>)}) (C {(t)} {(0)} {(SQ <'-n -o'>)}) (C {(t)} {(1)} {(SQ <'-z -o'>)}) (C {(t)} {(1)} {(SQ <'! -o'>)}) (C {(t)} {(1)} {(SQ <'! -n ='>)}) (C {(t)} {(0)} {(SQ <'! -z ='>)}) (C {(t)} {(0)} {(SQ <'! ! ='>)}) (C {(t)} {(1)} {(SQ <'! -n -eq'>)}) (C {(t)} {(0)} {(SQ <'! -z -eq'>)}) (C {(t)} {(0)} {(SQ <'! ! -eq'>)}) (C {(t)} {(1)} {(SQ <'! -n -a'>)}) (C {(t)} {(0)} {(SQ <'! -z -a'>)}) (C {(t)} {(0)} {(SQ <'! ! -a'>)}) (C {(t)} {(1)} {(SQ <'! -n -o'>)}) (C {(t)} {(0)} {(SQ <'! -z -o'>)}) (C {(t)} {(0)} {(SQ <'! ! -o'>)}) (C {(t)} {(0)} {(SQ <'\\( -n = \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( -z = \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( ! = \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( -n -eq \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( -z -eq \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( ! -eq \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( -n -a \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( -z -a \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( ! -a \\)'>)}) (C {(t)} {(0)} {(SQ <'\\( -n -o \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( -z -o \\)'>)}) (C {(t)} {(1)} {(SQ <'\\( ! -o \\)'>)}) ] )