def gMonthDay(xc, p, source): try: match = lexicalPatterns['gMonthDay'].match(source) if match: month, day, zSign, zHrMin, zHr, zMin = match.groups() if not int(day) > { 2: 29, 4: 30, 6: 30, 9: 30, 11: 30, 1: 31, 3: 31, 5: 31, 7: 31, 8: 31, 10: 31, 12: 31 }[int(month)]: return ModelValue.gMonthDay(month, day) except (ValueError, TypeError): pass raise FORG0001