(command.CommandList children: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>} {<convert>} {<MAM>} {<dependency>} {<info>} {<to>} {<dag>} {<input>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMMAND='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMMAND='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMAND='> name:COMMAND) op: assign_op.Equal rhs: {<mamdag>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <getopts> more_env: [] words: [{<getopts>} {(SQ <'[-][123:xyz]'>)} {<opt>} {<--xyz>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<0> ($ Id.VSub_DollarName opt)}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] ) right: <Id.Backtick_Right '`'> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0123> pattern: (pat.Words words:[{<0123>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'ARGV0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ARGV0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGV0='> name:ARGV0) op: assign_op.Equal rhs: {(DQ <'-a '> ($ Id.VSub_DollarName COMMAND))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'USAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USAGE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_Literals '\n'> <Id.Char_Literals '[-?\n'> <Id.Char_Literals '@(#)$Id: mamdag (AT&T Labs Research) 1998-04-01 $\n'> <Id.Char_Literals ']\n'> ] right: <Id.Right_SingleQuote '\''> ) ($ Id.VSub_DollarName USAGE_LICENSE) (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_Literals '\n'> <Id.Char_Literals '[+NAME?mamdag - make abstract machine to dag dependency graph conversion filter]\n' > <Id.Char_Literals '[+DESCRIPTION?'> <Id.Char_OneChar '\\b'> <Id.Char_Literals mamdag> <Id.Char_OneChar '\\b'> <Id.Char_Literals ' reads MAM (Make Abstract Machine) target and\n'> <Id.Char_Literals '\tprerequisite file descriptions from the standard input and writes a\n' > <Id.Char_Literals '\t'> <Id.Char_OneChar '\\b'> <Id.Char_Literals dag> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1) description of the dependency graph on the standard output.\n' > <Id.Char_Literals '\tMamfiles are generated by the '> <Id.Char_OneChar '\\b'> <Id.Char_Literals --mam> <Id.Char_OneChar '\\b'> <Id.Char_Literals ' option of '> <Id.Char_OneChar '\\b'> <Id.Char_Literals nmake> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1) and\n'> <Id.Char_Literals '\t'> <Id.Char_OneChar '\\b'> <Id.Char_Literals gmake> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1).]\n'> <Id.Char_Literals '[+?'> <Id.Char_OneChar '\\b'> <Id.Char_Literals dag> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1) is an obsolete predecessor to '> <Id.Char_OneChar '\\b'> <Id.Char_Literals dot> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1); new applications should\n'> <Id.Char_Literals '\tuse '> <Id.Char_OneChar '\\b'> <Id.Char_Literals mamdot> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1) and '> <Id.Char_OneChar '\\b'> <Id.Char_Literals dot> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1).]\n'> <Id.Char_Literals '[+SEE ALSO?'> <Id.Char_OneChar '\\b'> <Id.Char_Literals dag> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1), '> <Id.Char_OneChar '\\b'> <Id.Char_Literals dot> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1), '> <Id.Char_OneChar '\\b'> <Id.Char_Literals mamdot> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1), '> <Id.Char_OneChar '\\b'> <Id.Char_Literals gmake> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1), '> <Id.Char_OneChar '\\b'> <Id.Char_Literals nmake> <Id.Char_OneChar '\\b'> <Id.Char_Literals '(1)]\n'> ] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'ARGV0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ARGV0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGV0='> name:ARGV0) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'USAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USAGE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShFunction name_tok: <usage> name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'OPTIND='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OPTIND='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIND='> name:OPTIND) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Simple blame_tok: <getopts> more_env: [] words: [ {<getopts>} {($ Id.VSub_DollarName ARGV0)} {(DQ ($ Id.VSub_DollarName USAGE))} {<OPT>} {(SQ <'-?'>)} ] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <getopts> more_env: [] words: [ {<getopts>} {($ Id.VSub_DollarName ARGV0)} {(DQ ($ Id.VSub_DollarName USAGE))} {<OPT>} ] redirects: [] do_fork: T ) ] ) 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 OPT)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <integer> more_env: [] words: [{<integer>} {<Id.Lit_VarLike 'level='> <0>} {<Id.Lit_VarLike 'line='> <0>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_ArrayLhsOpen 'list['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen 'list['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'list['> name: list index: {<Id.Lit_Digits 0>} ) op: assign_op.Equal rhs: {<all>} ) ] redirects: [] ) (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<.GR>} {<7.50>} {<10.0>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<draw>} {<nodes>} {<as>} {<Box>} {(SQ <';'>)}] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<op>} {<arg>} {<arg2>} {<argx>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {<line> <Id.Lit_Other '+'> <1>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'op='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op) op: assign_op.Equal rhs: {($ Id.VSub_DollarName arg)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'arg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg) op: assign_op.Equal rhs: {($ Id.VSub_DollarName arg2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'arg2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg2='> name:arg2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName arg3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'arg3='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg3='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg3='> name:arg3) op: assign_op.Equal rhs: {($ Id.VSub_DollarName argx)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'argx='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'argx='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argx='> name:argx) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <make> pattern: (pat.Words words:[{<make>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (DQ <' '> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.ArrayIndex expr: ($ Id.Lit_ArithVarLike level) ) right: <Id.Right_DollarBrace '}'> ) <' '> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> ) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_ArrayLhsOpen 'list['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen 'list['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'list['> name: list index: ($ Id.Lit_ArithVarLike level) ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.ArrayIndex expr: ($ Id.Lit_ArithVarLike level) ) right: <Id.Right_DollarBrace '}'> ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'level='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'level='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'level='> name:level) op: assign_op.Equal rhs: {<level> <Id.Lit_Other '+'> <1>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_ArrayLhsOpen 'list['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen 'list['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'list['> name: list index: ($ Id.Lit_ArithVarLike level) ) op: assign_op.Equal rhs: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <prev> pattern: (pat.Words words:[{<prev>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (DQ <' '> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.ArrayIndex expr: ($ Id.Lit_ArithVarLike level) ) right: <Id.Right_DollarBrace '}'> ) <' '> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> ) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_ArrayLhsOpen 'list['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen 'list['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'list['> name: list index: ($ Id.Lit_ArithVarLike level) ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.ArrayIndex expr: ($ Id.Lit_ArithVarLike level) ) right: <Id.Right_DollarBrace '}'> ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.KW_Done done> pattern: (pat.Words words:[{<Id.KW_Done done>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.ArrayIndex expr:($ Id.Lit_ArithVarLike level)) right: <Id.Right_DollarBrace '}'> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> (SQ <' '>) <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <print> more_env: [] words: [ {<print>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.ArrayIndex expr: ($ Id.Lit_ArithVarLike level) ) right: <Id.Right_DollarBrace '}'> ) } {(SQ <';'>)} ] redirects: [] do_fork: T ) ] ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: ($ Id.Lit_ArithVarLike level) right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <print> more_env: [] words: [ {<print>} {<-u2>} { (DQ ($ Id.VSub_DollarName COMMAND) <': line '> ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_DollarName op) <' '> ($ Id.VSub_DollarName arg) <': no matching make op'> ) } ] redirects: [] do_fork: T ) ] spids: [565 579] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'level='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'level='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'level='> name:level) op: assign_op.Equal rhs: {<level-1>} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<.GE>}] redirects: [] do_fork: T ) ] )