(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(.) (Lit_Other ':') ($ VSub_Name '$PATH')}
          spids: [7]
        )
      ]
      spids: [7]
    )
    (FuncDef
      name: exceedsDaysInMonth
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(echo)} {($ VSub_Number '$1')})
                              (C {(tr)} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [35 49]
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{(jan) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[59])]
                      spids: [59]
                    )
                  ]
                  spids: [54 57 62 16777215]
                )
                (case_arm
                  pat_list: [{(feb) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(28)} spids:[69])]
                      spids: [69]
                    )
                  ]
                  spids: [64 67 72 16777215]
                )
                (case_arm
                  pat_list: [{(mar) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[80])]
                      spids: [80]
                    )
                  ]
                  spids: [75 78 83 16777215]
                )
                (case_arm
                  pat_list: [{(apr) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(30)} spids:[90])]
                      spids: [90]
                    )
                  ]
                  spids: [85 88 93 16777215]
                )
                (case_arm
                  pat_list: [{(may) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[101])]
                      spids: [101]
                    )
                  ]
                  spids: [96 99 104 16777215]
                )
                (case_arm
                  pat_list: [{(jun) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(30)} spids:[111])]
                      spids: [111]
                    )
                  ]
                  spids: [106 109 114 16777215]
                )
                (case_arm
                  pat_list: [{(jul) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[122])]
                      spids: [122]
                    )
                  ]
                  spids: [117 120 125 16777215]
                )
                (case_arm
                  pat_list: [{(aug) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[132])]
                      spids: [132]
                    )
                  ]
                  spids: [127 130 135 16777215]
                )
                (case_arm
                  pat_list: [{(sep) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(30)} spids:[143])]
                      spids: [143]
                    )
                  ]
                  spids: [138 141 146 16777215]
                )
                (case_arm
                  pat_list: [{(oct) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[153])]
                      spids: [153]
                    )
                  ]
                  spids: [148 151 156 16777215]
                )
                (case_arm
                  pat_list: [{(nov) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(30)} spids:[164])]
                      spids: [164]
                    )
                  ]
                  spids: [159 162 167 16777215]
                )
                (case_arm
                  pat_list: [{(dec) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:days) op:Equal rhs:{(31)} spids:[174])]
                      spids: [174]
                    )
                  ]
                  spids: [169 172 177 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {
                              (DQ ($ VSub_Number '$0') (': Unknown month name ') ($ VSub_Number '$1'))
                            }
                          ]
                          redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [180 182 16777215 201]
                )
              ]
              spids: [33 51 201]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Number '$2')} {(-lt)} {(1)} {(-o)} 
                          {($ VSub_Number '$2')} {(-gt)} {($ VSub_Name '$days')} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [16777215 226]
                )
              ]
              else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
              spids: [234 245]
            )
          ]
          spids: [17]
        )
      spids: [13 16]
    )
    (FuncDef
      name: isLeapYear
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:year)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [292]
                )
              ]
              spids: [292]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Percent
                                    left: (ArithVarRef name:year)
                                    right: (ArithWord w:{(Lit_Digits 4)})
                                  )
                                spids: [301 308]
                              )
                            )
                          } {(-ne)} {(0)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [16777215 319]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Percent
                                    left: (ArithVarRef name:year)
                                    right: (ArithWord w:{(Lit_Digits 400)})
                                  )
                                spids: [335 342]
                              )
                            )
                          } {(-eq)} {(0)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [330 353]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Percent
                                    left: (ArithVarRef name:year)
                                    right: (ArithWord w:{(Lit_Digits 100)})
                                  )
                                spids: [369 376]
                              )
                            )
                          } {(-eq)} {(0)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [364 387]
                )
              ]
              else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
              spids: [395 403]
            )
          ]
          spids: [255]
        )
      spids: [251 254]
    )
  ]
)