(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'counter='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'counter='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'counter='> name:counter) op: assign_op.Equal rhs: {<2>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'remainder='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'remainder='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remainder='> name:remainder) op: assign_op.Equal rhs: {<1>} ) ] 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 '['>} {($ Id.VSub_Pound '#')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Usage: isprime NUMBER'>)}] 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>}) ] spids: [21 35] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'number='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'number='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'number='> name:number) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] 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 '['>} {($ Id.VSub_DollarName number)} {<-lt>} {<2>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'No, '> ($ Id.VSub_DollarName number) <' is not a prime'>)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [63 77] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName counter)} {<-le>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <expr> more_env: [] words: [{<expr>} {($ Id.VSub_DollarName number)} {<'/'>} {<2>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<-a>} {($ Id.VSub_DollarName remainder)} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'remainder='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'remainder='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remainder='> name:remainder) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {($ Id.VSub_DollarName number)} {<Id.Lit_Other '%'>} {($ Id.VSub_DollarName counter)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'counter='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'counter='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'counter='> name:counter) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <expr> more_env: [] words: [{<expr>} {($ Id.VSub_DollarName counter)} {<Id.Lit_Other '+'>} {<1>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) 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 '['>} {($ Id.VSub_DollarName remainder)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'No, '> ($ Id.VSub_DollarName number) <' is not a prime'>)}] redirects: [] do_fork: T ) ] spids: [165 179] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Yes, '> ($ Id.VSub_DollarName number) <' is a prime'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )