(command.CommandList children: [ (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:13) cond: [ (command.Sentence child: (C {(getopts)} {(DQ ('hw:'))} {(opt)}) terminator: (Token id:Id.Op_Semi val:';' span_id:22) ) ] body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$opt')} arms: [ (case_arm pat_list: [{(h)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hyph) op: assign_op.Equal rhs: {(1)} spids: [37] ) ] ) ] spids: [33 35 40 -1] ) (case_arm pat_list: [{(w)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:width) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$OPTARG'))} spids: [47] ) ] ) ] spids: [43 45 52 -1] ) ] ) ] ) ) (C {(shift)} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$OPTIND')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } ) (command.Simple words: [{(nroff)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:72) fd: -1 here_begin: {(EOF)} here_end_span_id: 101 stdin_parts: [ ('.ll ') (braced_var_sub token: (Token id:Id.VSub_Name val:width span_id:78) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(72)}) ) ('\n') ('.na\n') ('.hy ') (braced_var_sub token: (Token id:Id.VSub_Name val:hyph span_id:86) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(0)}) ) ('\n') ('.pl 1\n') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:92) command_list: (command.CommandList children:[(C {(cat)} {(DQ ($ Id.VSub_At '$@'))})]) ) ('\n') ] ) ] ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:103) arg_word:{(0)}) ] )