(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'IN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IN='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IN='> name:IN) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OUT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OUT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OUT='> name:OUT) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShFunction name_tok: <dump_array> name: dump_array body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ARRAY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ARRAY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARRAY='> name:ARRAY) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SIZE='> name:SIZE) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PFX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PFX='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PFX='> name:PFX) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'POSTFIX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'POSTFIX='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'POSTFIX='> name:POSTFIX) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PFX_SZ='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PFX_SZ='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PFX_SZ='> name:PFX_SZ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName PFX)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TABS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TABS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TABS='> name:TABS) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(SQ <'\\t\\t\\t\\t\\t'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'const char * const '> ($ Id.VSub_DollarName ARRAY) <'['> ($ Id.VSub_DollarName SIZE) <'] = {'> ) } ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-n>} {<-e>} {(SQ <'s/\\t/ /g'>)} {<-e>} {(DQ <'s/^ *# *define *'> ($ Id.VSub_DollarName PFX) <'//p'>)} {($ Id.VSub_DollarName IN)} ] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<i>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NAME='> name:NAME) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName i))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/ .*//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'VALUE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'VALUE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VALUE='> name:VALUE) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName i))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-n>} {(SQ <'s@.*/\\* *\\("[^"]*"\\).*\\*/@\\1@p'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName VALUE))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'VALUE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'VALUE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VALUE='> name:VALUE) op: assign_op.Equal rhs: { (DQ (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName NAME) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VALUE))} {<Id.Lit_Equals '='>} {(SQ <'""'>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Continue continue> ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'VALUE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'VALUE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VALUE='> name:VALUE) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName VALUE))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<A-Z>} {<a-z>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName POSTFIX))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'T='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'T='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'T='> name:T) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName PFX_SZ)} right: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {($ Id.VSub_DollarName POSTFIX)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) right: {<Id.Lit_Digits 2>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TABS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TABS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TABS='> name:TABS) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(SQ <'\\t\\t\\t\\t\\t\\t'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TABCOUNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TABCOUNT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TABCOUNT='> name: TABCOUNT ) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Star left: {<Id.Lit_Digits 6>} right: {<Id.Lit_Digits 8>} ) right: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName T)} right: {<Id.Lit_Digits 1>} ) ) right: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName NAME))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) right: {<Id.Lit_Digits 8>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'t[%s - %s]%.*s = %s,'> <Id.Lit_BadBackslash '\\'> <n> ) } {(DQ ($ Id.VSub_DollarName PFX) ($ Id.VSub_DollarName NAME))} {(DQ ($ Id.VSub_DollarName POSTFIX))} {(DQ ($ Id.VSub_DollarName TABCOUNT))} {(DQ ($ Id.VSub_DollarName TABS))} {(DQ ($ Id.VSub_DollarName VALUE))} ] redirects: [] do_fork: T ) ] spids: [236 249] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'TABCOUNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TABCOUNT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TABCOUNT='> name: TABCOUNT ) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Star left: {<Id.Lit_Digits 5>} right: {<Id.Lit_Digits 8>} ) right: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName PFX_SZ)} right: {<Id.Lit_Digits 1>} ) ) right: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName NAME))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) right: {<Id.Lit_Digits 8>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'t[%s]%.*s = %s,'> <Id.Lit_BadBackslash '\\'> <n> ) } {(DQ ($ Id.VSub_DollarName PFX) ($ Id.VSub_DollarName NAME))} {(DQ ($ Id.VSub_DollarName TABCOUNT))} {(DQ ($ Id.VSub_DollarName TABS))} {(DQ ($ Id.VSub_DollarName VALUE))} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'};'>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {(SQ <'rm "$OUT"'>)} {<EXIT>}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'#ifndef _ASM_X86_CPUFEATURES_H'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'#include <asm/cpufeatures.h>'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'#endif'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump_array> more_env: [] words: [{<dump_array>} {(DQ <x86_cap_flags>)} {(DQ <'NCAPINTS*32'>)} {(DQ <X86_FEATURE_>)} {(DQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump_array> more_env: [] words: [ {<dump_array>} {(DQ <x86_bug_flags>)} {(DQ <'NBUGINTS*32'>)} {(DQ <X86_BUG_>)} {(DQ <'NCAPINTS*32'>)} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName OUT)} ) ] ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<->} {<EXIT>}] redirects: [] do_fork: T ) ] )