(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:prefix) op:Equal rhs:{($ VSub_Number "$1")} spids:[3])]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tmp)
          op: Equal
          rhs: {(tmp.) ($ VSub_Dollar "$$")}
          spids: [6]
        )
      ]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:exps)
          op: Equal
          rhs: {(DQ ("521 1279 2203 4253 11213 19937 44497 86243 132049 216091"))}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (ForEach
      iter_name: mexp
      iter_words: [{($ VSub_Name "$exps")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:compare)
                  op: Equal
                  rhs: {(dSFMT.) (${ VSub_Name mexp) (.out.txt)}
                  spids: [27]
                )
              ]
              spids: [27]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:command)
                  op: Equal
                  rhs: {(${ VSub_Name prefix) (-M) (${ VSub_Name mexp)}
                  spids: [35]
                )
              ]
              spids: [35]
            )
            (SimpleCommand
              words: [{(./) ($ VSub_Name "$command")} {(-v)}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$tmp")} spids:[50])]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(diff)} {(-q)} {(-w)} {($ VSub_Name "$tmp")} {($ VSub_Name "$compare")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {($ VSub_Name "$command")} {(output)} {(check)} {(OK)})
                    (C {(rm)} {(-f)} {($ VSub_Name "$tmp")})
                  ]
                  spids: [-1 68]
                )
              ]
              else_action: [
                (C {(echo)} {($ VSub_Name "$command")} {(output)} {(check)} {(NG) (KW_Bang "!")})
                (C {(rm)} {(-f)} {($ VSub_Name "$tmp")})
                (C {(exit)} {(1)})
              ]
              spids: [89 116]
            )
          ]
          spids: [24 118]
        )
      spids: [20 22]
    )
    (C {(exit)} {(0)})
  ]
)