(command.ShFunction
  name: monthNumToName
  body: 
    (BraceGroup
      children: [
        (command.Case
          to_match: {($ Id.VSub_Number '$1')}
          arms: [
            (case_arm
              pat_list: [{<1>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Jan>)}
                      spids: [35]
                    )
                  ]
                )
              ]
              spids: [31 33 40 -1]
            )
            (case_arm
              pat_list: [{<2>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Feb>)}
                      spids: [46]
                    )
                  ]
                )
              ]
              spids: [42 44 51 -1]
            )
            (case_arm
              pat_list: [{<3>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Mar>)}
                      spids: [58]
                    )
                  ]
                )
              ]
              spids: [54 56 63 -1]
            )
            (case_arm
              pat_list: [{<4>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Apr>)}
                      spids: [69]
                    )
                  ]
                )
              ]
              spids: [65 67 74 -1]
            )
            (case_arm
              pat_list: [{<5>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <May>)}
                      spids: [81]
                    )
                  ]
                )
              ]
              spids: [77 79 86 -1]
            )
            (case_arm
              pat_list: [{<6>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Jun>)}
                      spids: [92]
                    )
                  ]
                )
              ]
              spids: [88 90 97 -1]
            )
            (case_arm
              pat_list: [{<7>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Jul>)}
                      spids: [104]
                    )
                  ]
                )
              ]
              spids: [100 102 109 -1]
            )
            (case_arm
              pat_list: [{<8>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Aug>)}
                      spids: [115]
                    )
                  ]
                )
              ]
              spids: [111 113 120 -1]
            )
            (case_arm
              pat_list: [{<9>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Sep>)}
                      spids: [127]
                    )
                  ]
                )
              ]
              spids: [123 125 132 -1]
            )
            (case_arm
              pat_list: [{<10>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Oct>)}
                      spids: [137]
                    )
                  ]
                )
              ]
              spids: [134 135 142 -1]
            )
            (case_arm
              pat_list: [{<11>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Nov>)}
                      spids: [148]
                    )
                  ]
                )
              ]
              spids: [145 146 153 -1]
            )
            (case_arm
              pat_list: [{<12>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:month)
                      op: assign_op.Equal
                      rhs: {(DQ <Dec>)}
                      spids: [158]
                    )
                  ]
                )
              ]
              spids: [155 156 163 -1]
            )
            (case_arm
              pat_list: [{<Id.Lit_Star '*'>}]
              action: [
                (command.Sentence
                  child: 
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_Number '$0') <': Unknown numeric month value '> 
                            ($ Id.VSub_Number '$1')
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              spids: [166 168 -1 187]
            )
          ]
        )
        (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
      ]
    )
)