(command.CommandList children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'--- fghack insists on an argument' span_id:3))}) (command.CommandList children: [ (command.Sentence child: (C {(fghack)}) terminator: (Token id:Id.Op_Semi val:';' span_id:7) ) (C {(echo)} {($ Id.VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'--- fghack complains if it cannot run program' span_id:17))} ) (command.CommandList children: [ (command.Sentence child: (C {(fghack)} {(./nonexistent)}) terminator: (Token id:Id.Op_Semi val:';' span_id:23) ) (C {(echo)} {($ Id.VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'--- fghack runs a program' span_id:33))}) (command.CommandList children: [ (command.Sentence child: (C {(fghack)} {(sh)} {(-c)} {(SQ (Token id:Id.Lit_Chars val:'echo hi &' span_id:43))}) terminator: (Token id:Id.Op_Semi val:';' span_id:45) ) (C {(echo)} {($ Id.VSub_QMark '$?')}) ] ) ] )