(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opts='> name:opts) op: assign_op.Equal rhs: {(DQ )} spids: [82] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<getopts>} {<guplmsLv>} {<arg>})]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName arg))} {<Id.Lit_Equals '='>} {(DQ <'?'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] spids: [97 114] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opts='> name:opts) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName opts) <' -'> ($ Id.VSub_DollarName arg))} spids: [125] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName OPTIND)} right: {<Id.Lit_Digits 1>} ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-le>} {<3>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_Number 0) <': at least 3 arguments required.'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [147 160] ) ] else_action: [] redirects: [] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} spids: [181] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} spids: [189] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'differ='> name:differ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} spids: [197] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'errlog='> name:errlog) op: assign_op.Equal rhs: {<'/tmp/protocmp.err.'> ($ Id.VSub_Dollar '$')} spids: [206] ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple words: [{<protocmp>} {($ Id.VSub_DollarName opts)} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {($ Id.VSub_DollarName errlog)} ) ] more_env: [] do_fork: T ) (C {<nawk>} {<-v>} {<Id.Lit_VarLike 'old='> (DQ ($ Id.VSub_DollarName old))} {<-v>} {<Id.Lit_VarLike 'new='> (DQ ($ Id.VSub_DollarName new))} {<-v>} {<Id.Lit_VarLike 'differ='> (DQ ($ Id.VSub_DollarName differ))} { (SQ <'\n'> <'\t/^\\**$/ {\n'> <'\t\tnext;\n'> <'\t}\n'> <'\t/^\\* Entries/ {\n'> <'\t\tcategory++;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\t/^\\* filea ==/ {\n'> <'\t\tfilea = $NF;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\t/^\\* fileb ==/ {\n'> <'\t\tfileb = $NF;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\t{\n'> <'\t\tbuf[category, ++line[category]] = $0\n'> <'\t}\n'> <'\tEND {\n'> <'\t\tif (line[1] > 2) {\n'> <'\t\t\tprintf("\\n%s\\n\\n", old);\n'> <'\t\t\tfor (i = 1; i <= line[1]; i++) {\n'> <'\t\t\t\tprint buf[1, i];\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tif (line[2] > 2) {\n'> <'\t\t\tprintf("\\n%s\\n\\n", new);\n'> <'\t\t\tfor (i = 1; i <= line[2]; i++) {\n'> <'\t\t\t\tprint buf[2, i];\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tif (line[3] > 2) {\n'> <'\t\t\tprintf("\\n%s\\n\\n", differ);\n'> <'\t\t\tfor (i = 1; i <= line[3]; i++) {\n'> <'\t\t\t\tprint buf[3, i];\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t}'> ) } ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-s>} {($ Id.VSub_DollarName errlog)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'n====== protocmp ERRORS ====='> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<cat>} {($ Id.VSub_DollarName errlog)}) ] spids: [291 302] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName errlog)}) ] )