(command.ShFunction
  name: monthNumToName
  body: 
    (command.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.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:178)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:180)
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:182)
                  arg_word: {(1)}
                )
              ]
              spids: [166 168 -1 187]
            )
          ]
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Return val:return span_id:190)
          arg_word: {(0)}
        )
      ]
    )
)