(List (Com {[LIT_OTHER ":"]}) (Case to_match={[ComSub (Subshell (List (Com {[LIT_CHARS typeset]} {[LIT_CHARS -u]} {[LIT_VAR_LIKE "s="] [LIT_CHARS a] =} {[LIT_VAR_LIKE "n="] [LIT_CHARS 0] =}) (DParen {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub n]}} {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub n]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}}) (Com {[LIT_CHARS print]} {[VarSub s] [VarSub n]}) ) )]}, pat_word_list=[[{[LIT_CHARS A1]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('shell', {[LIT_CHARS ksh]})]) (Com {[LIT_CHARS typeset]} {[LIT_CHARS -u]} {[LIT_CHARS ID]}) (Com {[LIT_CHARS typeset]} {[LIT_CHARS -i]} {[LIT_CHARS counter]} {[LIT_CHARS err_line]}) ) (= scope= flags=0 words=[] bindings=[('shell', {[LIT_CHARS bsh]})]) ) (= scope= flags=0 words=[] bindings=[('command', {[VarSub 0]})]) (= scope= flags=0 words=[] bindings=[('counter', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('define', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('err_line', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('type', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('index', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('first', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('last', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('table', {[LIT_CHARS 1]})]) (While (Com {[LIT_OTHER ":"]}) (List (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS -d]}], [{[LIT_CHARS -t]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('table', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('define', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS shift]}) ) ) (Case to_match={[VarSub 1]}, pat_word_list=[[{[DQ ]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('err_file', {[DQ ]})]) (List (Com {[LIT_CHARS exec]} < (FilenameRedirectNode filename={[VarSub 1]} 0), > ) (= scope= flags=0 words=[] bindings=[('err_file', {[DQ [\ LIT_ESCAPED_CHAR "\\\""][VarSub 1][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "]]})]) ) ) (While (Com {[LIT_CHARS read]} {[LIT_CHARS line]}) (List (Case to_match={[VarSub shell]}, pat_word_list=[[{[LIT_CHARS ksh]}], [{[LIT_OTHER "*"]}]] (DParen {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub err_line]}} {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub err_line]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}}) (= scope= flags=0 words=[] bindings=[('err_line', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub err_line]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (Com {[LIT_CHARS set]} {[SQ ]} {[VarSub line]}) (Com {[LIT_CHARS shift]}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_OTHER "["] [LIT_POUND "#"] [LIT_OTHER "]"] [LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "/*"]]}) (While (Com {[LIT_OTHER ":"]}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_OTHER "["] [LIT_POUND "#"] [LIT_OTHER "]"] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " * "][VarSub *]]}) (Com {[LIT_CHARS read]} {[LIT_CHARS line]}) (Com {[LIT_CHARS set]} {[SQ ]} {[VarSub line]}) (Com {[LIT_CHARS shift]}) ) (Com {[LIT_CHARS break]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " */"]]}) (Com {[LIT_CHARS echo]}) ) ) (Com {[LIT_CHARS eval]} {[LIT_CHARS set]} {[SQ ]} {[VarSub line]}) (Com {[LIT_CHARS shift]}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[DQ ]}], [{[LIT_OTHER "%"] [LIT_CHARS flags]}, {[LIT_OTHER "%"] [LIT_CHARS keywords]}, {[LIT_OTHER "%"] [LIT_CHARS sequence]}], [{[LIT_OTHER "%"] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (List (Case to_match={[VarSub define] [LIT_OTHER ":"] [VarSub last]}, pat_word_list=[[{[LIT_CHARS 1] [LIT_OTHER ":"] [LIT_OTHER "?"] [LIT_OTHER "*"]}]] (List (Case to_match={[VarSub shell]}, pat_word_list=[[{[LIT_CHARS ksh]}], [{[LIT_OTHER "*"]}]] (DParen {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub n]}} {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub counter]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}}) (= scope= flags=0 words=[] bindings=[('n', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub counter]} {[LIT_CHARS -]} {[LIT_CHARS 1]})]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#define "][VarSub prefix][VarSub last][LIT_CHARS "\t"][VarSub n]]}) ) ) (Case to_match={[VarSub type]}, pat_word_list=[[{[LIT_OTHER "%"] [LIT_CHARS flags]}, {[LIT_OTHER "%"] [LIT_CHARS sequence]}], [{[LIT_OTHER "%"] [LIT_CHARS keywords]}]] (If (Com {[LIT_CHARS test]} {[VarSub define]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS echo]}) ) (If (Com {[LIT_CHARS test]} {[VarSub table]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "\t0,\t0"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "};"]]}) (Com {[LIT_CHARS echo]}) ) (Com {[LIT_CHARS test]} {[VarSub define]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS echo]}) ) ) (Case to_match={[VarSub index]}, pat_word_list=[[{[LIT_OTHER "?"] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS eval]} {[VarSub index] [LIT_OTHER "="] [VarSub counter]}) ) (= scope= flags=0 words=[] bindings=[('type', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('name', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('index', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('init', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('first', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('last', {[DQ ]})]) (Case to_match={[VarSub type]}, pat_word_list=[[{[LIT_OTHER "%"] [LIT_CHARS keywords]}]] (List (Case to_match={[VarSub 1]}, pat_word_list=[[{[DQ ]}]] (List (Com {[LIT_CHARS echo]} {[DQ [VarSub command][LIT_CHARS ": "][VarSub err_file][LIT_CHARS "line "][VarSub err_line][LIT_CHARS ": "][VarSub type][LIT_CHARS " table name omitted"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (If (Com {[LIT_CHARS test]} {[VarSub table]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub name]] [SQ flags=0 words=[] bindings=[('init', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('init', {[LIT_CHARS 1]})]) ) ) (Case to_match={[VarSub index]}, pat_word_list=[[{[DQ ]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('counter', {[VarSub init]})]) (List (Com {[LIT_CHARS eval]} {[LIT_VAR_LIKE "value="] [\ LIT_ESCAPED_CHAR "\\$"] [VarSub index] =}) (Case to_match={[VarSub value]}, pat_word_list=[[{[DQ ]}], [{[LIT_OTHER "["] [LIT_CHARS 0123456789] [LIT_OTHER "]"] [LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('counter', {[VarSub init]})]) (= scope= flags=0 words=[] bindings=[('counter', {[VarSub value]})]) ) ) ) (Case to_match={[VarSub define] [LIT_OTHER ":"] [VarSub first]}, pat_word_list=[[{[LIT_CHARS 1] [LIT_OTHER ":"] [LIT_OTHER "?"] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#define "][VarSub prefix][VarSub first][LIT_CHARS "\t"][VarSub counter]]}) ) ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub command][LIT_CHARS ": "][VarSub err_file][LIT_CHARS "line "][VarSub err_line][LIT_CHARS ": "][VarSub 1][LIT_CHARS ": unknown keyword"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (While (Com {[LIT_OTHER ":"]}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[DQ ]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS break]}) (List (Case to_match={[VarSub shell]}, pat_word_list=[[{[LIT_CHARS ksh]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('ID', {[VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "[!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]"]}]]})]) (= scope= flags=0 words=[] bindings=[('ID', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS abcdefghijklmnopqrstuvwxyz]} {[LIT_CHARS ABCDEFGHIJKLMNOPQRSTUVWXYZ]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) ) (Case to_match={[VarSub type]}, pat_word_list=[[{[LIT_OTHER "%"] [LIT_CHARS flags]}], [{[LIT_OTHER "%"] [LIT_CHARS keywords]}], [{[LIT_OTHER "%"] [LIT_CHARS sequence]}]] (If (Com {[LIT_CHARS test]} {[VarSub define]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (List (Case to_match={[VarSub counter]}, pat_word_list=[[{[LIT_CHARS 32]}], [{[LIT_CHARS 1] [LIT_OTHER "["] [LIT_CHARS 56789] [LIT_OTHER "]"]}, {[LIT_OTHER "["] [LIT_CHARS 23] [LIT_OTHER "]"] [LIT_OTHER "["] [LIT_CHARS 0123456789] [LIT_OTHER "]"]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS echo]} {[DQ [VarSub command][LIT_CHARS ": "][VarSub err_file][LIT_CHARS "line "][VarSub err_line][LIT_CHARS ": warning: "][VarSub 1][LIT_CHARS ": too many flag bits"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('long', {[LIT_CHARS L]})]) (= scope= flags=0 words=[] bindings=[('long', {[SQ ]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#define "][VarSub prefix][VarSub ID][LIT_CHARS "\t(1"][VarSub long][LIT_CHARS "<<"][VarSub counter][LIT_CHARS ")"]]}) ) ) (List (If (Com {[LIT_CHARS test]} {[VarSub define]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#define "][VarSub prefix][VarSub ID][LIT_CHARS "\t"][VarSub counter]]}) ) (If (Com {[LIT_CHARS test]} {[VarSub table]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "\t"][\ LIT_ESCAPED_CHAR "\\\""][VarSub 1][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ",\t"][VarSub prefix][VarSub ID][LIT_CHARS ","]]}) ) ) (If (Com {[LIT_CHARS test]} {[VarSub define]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#define "][VarSub prefix][VarSub ID][LIT_CHARS "\t"][VarSub counter]]}) ) ) (Case to_match={[VarSub shell]}, pat_word_list=[[{[LIT_CHARS ksh]}], [{[LIT_OTHER "*"]}]] (DParen {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub counter]}} {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub counter]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}}) (= scope= flags=0 words=[] bindings=[('counter', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub counter]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (Com {[LIT_CHARS shift]}) ) ) ) ) ) ) (Case to_match={[VarSub define] [LIT_OTHER ":"] [VarSub last]}, pat_word_list=[[{[LIT_CHARS 1] [LIT_OTHER ":"] [LIT_OTHER "?"] [LIT_OTHER "*"]}]] (List (Case to_match={[VarSub shell]}, pat_word_list=[[{[LIT_CHARS ksh]}], [{[LIT_OTHER "*"]}]] (DParen {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub n]}} {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub counter]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}}) (= scope= flags=0 words=[] bindings=[('n', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub counter]} {[LIT_CHARS -]} {[LIT_CHARS 1]})]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#define "][VarSub prefix][VarSub last][LIT_CHARS "\t"][VarSub n]]}) ) ) (Case to_match={[VarSub type]}, pat_word_list=[[{[LIT_OTHER "%"] [LIT_CHARS keywords]}]] (If (Com {[LIT_CHARS test]} {[VarSub table]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "\t0,\t0"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "};"]]}) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) )