(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:counter) op:Equal rhs:{(2)} spids:[14])]
      spids: [14]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:remainder) op:Equal rhs:{(1)} spids:[17])]
      spids: [17]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Usage: isprime NUMBER'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[44])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 35]
        )
      ]
      spids: [-1 52]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:number) op:Equal rhs:{($ VSub_Number '$1')} spids:[55])]
      spids: [55]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$number')} {(-lt)} {(2)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence
              child: (C {(echo)} {(DQ ('No, ') ($ VSub_Name '$number') (' is not a prime'))})
              terminator: <Op_Semi ';'>
            )
            (C {(exit)} {(0)})
          ]
          spids: [-1 77]
        )
      ]
      spids: [-1 94]
    )
    (While
      cond: [
        (C {(Lit_Other '[')} {($ VSub_Name '$counter')} {(-le)} 
          {
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [(C {(expr)} {($ VSub_Name '$number')} {(/)} {(2)})]
                )
              left_token: <Left_CommandSub '$('>
              spids: [109 117]
            )
          } {(-a)} {($ VSub_Name '$remainder')} {(-ne)} {(0)} {(Lit_Other ']')}
        )
      ]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:remainder)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {($ VSub_Name '$number')} {(Lit_Other '%')} 
                                {($ VSub_Name '$counter')}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [133 141]
                      )
                    }
                  spids: [132]
                )
              ]
              spids: [132]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:counter)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(expr)} {($ VSub_Name '$counter')} {(Lit_Other '+')} {(1)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [152 160]
                      )
                    }
                  spids: [151]
                )
              ]
              spids: [151]
            )
          ]
          spids: [129 162]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$remainder')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(echo)} {(DQ ('No, ') ($ VSub_Name '$number') (' is not a prime'))})]
          spids: [-1 179]
        )
      ]
      else_action: [(C {(echo)} {(DQ ('Yes, ') ($ VSub_Name '$number') (' is a prime'))})]
      spids: [190 201]
    )
    (C {(exit)} {(0)})
  ]
)