(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n_args) op: assign_op.Equal rhs: {(10000)} spids: [59] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:65) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:67))} here_end_span_id: 82 stdin_parts: [ ('#include <stdio.h>\n') ('#include <mcheck.h>\n') ('\n') ('/*\n') (' Compile do_test without optimization: GCC 4.9/5.0/6.0 takes a long time\n') (' to build this source. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67396 */\n') ('\n') ('__attribute__ ((optimize ("-O0")))\n') ('int do_test (void)\n') ('{\n') (' mtrace ();\n') (' printf (\n') ] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:j) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:j span_id:94)) right: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n_args')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:j)) body: (command.DoGroup children: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:k) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:k span_id:124)) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:k)) body: (command.DoGroup children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'"%%%d$s" ' span_id:143))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$j')}) ) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$k')}) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } ) ] ) ) (C {(printf)} {(DQ (Id.Lit_Other '\\') (n))}) ] ) ) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'"%%%d$s",\\n' span_id:180))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n_args')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:j) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:j span_id:203)) right: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n_args')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:j)) body: (command.DoGroup children: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:k) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:k span_id:233)) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:k)) body: (command.DoGroup children: [(C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'"a", ' span_id:252))})] ) ) (C {(printf)} {(DQ (' /* %4d */') (Id.Lit_Other '\\') (n))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$j')}) ) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$k')}) ) ) } ) ] ) ) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'"\\\\n");' span_id:286))}) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:293) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:295))} here_end_span_id: 305 stdin_parts: [ ('\n') (' return 0;\n') ('}\n') ('\n') ('#define TEST_FUNCTION do_test ()\n') ('#include "../test-skeleton.c"\n') ('\n') ] ) ] ) ] )