(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] ) ] )