(command.CommandList children: [ (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-e>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'action='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'action='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'srcdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'srcdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cgen='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cgen='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cgen='> name:cgen) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 3))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cgendir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cgendir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cgendir='> name:cgendir) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cgenflags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cgenflags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cgenflags='> name:cgenflags) op: assign_op.Equal rhs: {($ Id.VSub_Number 5)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch) op: assign_op.Equal rhs: {($ Id.VSub_Number 6)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prefix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prefix='> name:prefix) op: assign_op.Equal rhs: {($ Id.VSub_Number 7)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'archfile='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'archfile='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'archfile='> name:archfile) op: assign_op.Equal rhs: {($ Id.VSub_Number 8)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'opcfile='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'opcfile='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opcfile='> name:opcfile) op: assign_op.Equal rhs: {($ Id.VSub_Number 9)} ) ] redirects: [] ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'options='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'options='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {($ Id.VSub_Number 9)} ) ] redirects: [] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'extrafiles='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extrafiles='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extrafiles='> name:extrafiles) op: assign_op.Equal rhs: {($ Id.VSub_Number 9)} ) ] redirects: [] ) ] ) (command.ShAssignment left: <Id.Lit_VarLike 'rootdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'rootdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rootdir='> name:rootdir) op: assign_op.Equal rhs: {(${ Id.VSub_Name srcdir) <'/..'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'lowercase='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lowercase='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lowercase='> name:lowercase) op: assign_op.Equal rhs: {(SQ <abcdefghijklmnopqrstuvwxyz>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'uppercase='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'uppercase='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uppercase='> name:uppercase) op: assign_op.Equal rhs: {(SQ <ABCDEFGHIJKLMNOPQRSTUVWXYZ>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ARCH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ARCH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH='> name:ARCH) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name arch)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [ {<tr>} {(DQ (${ Id.VSub_Name lowercase))} {(DQ (${ Id.VSub_Name uppercase))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'tmp='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tmp='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp) op: assign_op.Equal rhs: {<tmp-> ($ Id.VSub_Dollar '$')} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'extrafile_args='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extrafile_args='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extrafile_args='> name:extrafile_args) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [ef] iterable: (for_iter.Words words:[{<..>} {($ Id.VSub_DollarName extrafiles)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName ef)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <..> pattern: (pat.Words words:[{<..>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <opinst> pattern: (pat.Words words:[{<opinst>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'extrafile_args='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extrafile_args='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'extrafile_args='> name: extrafile_args ) op: assign_op.Equal rhs: { (DQ <'-Q '> (${ Id.VSub_Name tmp) <'-opinst.c1 '> ($ Id.VSub_DollarName extrafile_args) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <opcodes> pattern: (pat.Words words:[{<opcodes>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-desc.h>} {(${ Id.VSub_Name tmp) <-desc.h1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-desc.c>} {(${ Id.VSub_Name tmp) <-desc.c1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-opc.h>} {(${ Id.VSub_Name tmp) <-opc.h1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-opc.c>} {(${ Id.VSub_Name tmp) <-opc.c1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-opinst.c>} {(${ Id.VSub_Name tmp) <-opinst.c1>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-ibld.h>} {(${ Id.VSub_Name tmp) <-ibld.h1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-ibld.c>} {(${ Id.VSub_Name tmp) <-ibld.in1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-asm.c>} {(${ Id.VSub_Name tmp) <-asm.in1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-dis.c>} {(${ Id.VSub_Name tmp) <-dis.in1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name cgen)} {(${ Id.VSub_Name cgendir) <'/cgen-opc.scm'>} {<-s>} {(${ Id.VSub_Name cgendir)} {(${ Id.VSub_Name cgenflags)} {<-f>} {(DQ (${ Id.VSub_Name options))} {<-m>} {<all>} {<-a>} {(${ Id.VSub_Name archfile)} {<-OPC>} {(${ Id.VSub_Name opcfile)} {<-H>} {(${ Id.VSub_Name tmp) <-desc.h1>} {<-C>} {(${ Id.VSub_Name tmp) <-desc.c1>} {<-O>} {(${ Id.VSub_Name tmp) <-opc.h1>} {<-P>} {(${ Id.VSub_Name tmp) <-opc.c1>} {<-L>} {(${ Id.VSub_Name tmp) <-ibld.in1>} {<-A>} {(${ Id.VSub_Name tmp) <-asm.in1>} {<-D>} {(${ Id.VSub_Name tmp) <-dis.in1>} {(${ Id.VSub_Name extrafile_args)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name tmp) <-desc.h1>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-desc.h>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-desc.h>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-desc.h>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(DQ <'s/@prefix@/'> (${ Id.VSub_Name prefix) <'/'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name tmp) <-desc.c1>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-desc.c>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-desc.c>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-desc.c>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name tmp) <-opc.h1>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-opc.h>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-opc.h>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-opc.h>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(DQ <'s/@prefix@/'> (${ Id.VSub_Name prefix) <'/'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name tmp) <-opc.c1>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-opc.c>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-opc.c>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-opc.c>} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName extrafiles)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <opinst> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(DQ <'s/@prefix@/'> (${ Id.VSub_Name prefix) <'/'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name tmp) <-opinst.c1>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-opinst.c>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-opinst.c>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-opinst.c>} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(${ Id.VSub_Name srcdir) <'/cgen-ibld.in'>} {(${ Id.VSub_Name tmp) <-ibld.in1>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(DQ <'s/@prefix@/'> (${ Id.VSub_Name prefix) <'/'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-ibld.c>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-ibld.c>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-ibld.c>} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'/ -- assembler routines/ r '> (${ Id.VSub_Name tmp) <-asm.in1>)} {(${ Id.VSub_Name srcdir) <'/cgen-asm.in'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(DQ <'s/@prefix@/'> (${ Id.VSub_Name prefix) <'/'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-asm.c>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-asm.c>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-asm.c>} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'/ -- disassembler routines/ r '> (${ Id.VSub_Name tmp) <-dis.in1>)} {(${ Id.VSub_Name srcdir) <'/cgen-dis.in'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(DQ <'s/@ARCH@/'> (${ Id.VSub_Name ARCH) <'/g'>)} {<-e>} {(DQ <'s/@arch@/'> (${ Id.VSub_Name arch) <'/g'>)} {<-e>} {(DQ <'s/@prefix@/'> (${ Id.VSub_Name prefix) <'/'>)} {<-e>} {(SQ <'s/[ \t][ \t]*$//'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp) <-dis.c>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name rootdir) <'/move-if-change'>} {(${ Id.VSub_Name tmp) <-dis.c>} {(${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name prefix) <-dis.c>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-desc.h1>} {(${ Id.VSub_Name tmp) <-desc.c1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-opc.h1>} {(${ Id.VSub_Name tmp) <-opc.c1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-opinst.c1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-ibld.h1>} {(${ Id.VSub_Name tmp) <-ibld.in1>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name tmp) <-asm.in1>} {(${ Id.VSub_Name tmp) <-dis.in1>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_Number 0) <': bad action: '> (${ Id.VSub_Name action))}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )