(CommandList
  children: [
    (FuncDef
      name: main
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Pound "$#"))} {(-eq)} {(0)} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ($ VSub_Number "$0") (": Generating default compression gzip"))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:copts)
                          op: Equal
                          rhs: {(DQ (cvzf))}
                          spids: [62]
                        )
                      ]
                      spids: [62]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ext)
                          op: Equal
                          rhs: {(DQ (.tar.gz))}
                          spids: [68]
                        )
                      ]
                      spids: [68]
                    )
                  ]
                  spids: [-1 51]
                )
              ]
              else_action: [
                (Case
                  to_match: {(DQ ($ VSub_Number "$1"))}
                  arms: [
                    (case_arm
                      pat_list: [{(tar)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:copts)
                              op: Equal
                              rhs: {(DQ (cvf))}
                              spids: [90]
                            )
                          ]
                          spids: [90]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ext)
                              op: Equal
                              rhs: {(DQ (.tar))}
                              spids: [96]
                            )
                          ]
                          spids: [96]
                        )
                      ]
                      spids: [86 87 102 -1]
                    )
                    (case_arm
                      pat_list: [{(targz)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:copts)
                              op: Equal
                              rhs: {(DQ (cvzf))}
                              spids: [109]
                            )
                          ]
                          spids: [109]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ext)
                              op: Equal
                              rhs: {(DQ (.tar.gz))}
                              spids: [115]
                            )
                          ]
                          spids: [115]
                        )
                      ]
                      spids: [105 106 121 -1]
                    )
                    (case_arm
                      pat_list: [{(tarbz2)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:copts)
                              op: Equal
                              rhs: {(DQ (cvjf))}
                              spids: [128]
                            )
                          ]
                          spids: [128]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ext)
                              op: Equal
                              rhs: {(DQ (.tar.bz2))}
                              spids: [134]
                            )
                          ]
                          spids: [134]
                        )
                      ]
                      spids: [124 125 140 -1]
                    )
                    (case_arm
                      pat_list: [{(tarxz)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:copts)
                              op: Equal
                              rhs: {(DQ (cvJf))}
                              spids: [147]
                            )
                          ]
                          spids: [147]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ext)
                              op: Equal
                              rhs: {(DQ (.tar.xz))}
                              spids: [153]
                            )
                          ]
                          spids: [153]
                        )
                      ]
                      spids: [143 144 159 -1]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other "*")}]
                      action: [
                        (C {(echo)} {(DQ ("Unknown tarball format ") ($ VSub_Number "$1"))})
                        (C {(exit)} {(1)})
                      ]
                      spids: [162 163 179 -1]
                    )
                  ]
                  spids: [77 83 182]
                )
              ]
              spids: [74 185]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_dir)
                  op: Equal
                  rhs: {(./kselftest)}
                  spids: [189]
                )
              ]
              spids: [189]
            )
            (C {(./kselftest_install.sh)})
            (C {(tar)} {($ VSub_Name "$copts")} {(kselftest) (${ VSub_Name ext)} 
              {($ VSub_Name "$install_dir")}
            )
            (C {(echo)} {(DQ ("Kselftest archive kselftest") (${ VSub_Name ext) (" created!"))})
            (C {(rm)} {(-rf)} {(kselftest)})
          ]
          spids: [33]
        )
      spids: [29 32]
    )
    (C {(main)} {(DQ ($ VSub_At "$@"))})
  ]
)