This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/loc_tools.pl: Add fcn to return valid locale cats
[perl5.git] / keywords.c
index 217efa3..9fa30e6 100644 (file)
@@ -488,7 +488,7 @@ Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
           goto unknown;
       }
 
-    case 4: /* 39 tokens of length 4 */
+    case 4: /* 40 tokens of length 4 */
       switch (name[0])
       {
         case 'I':
@@ -908,38 +908,49 @@ Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
           }
 
         case 'w':
-          if (name[1] == 'a')
+          switch (name[1])
           {
-            switch (name[2])
-            {
-              case 'i':
-                if (name[3] == 't')
-                {                                 /* wait             */
-                  return -KEY_wait;
-                }
+            case 'a':
+              switch (name[2])
+              {
+                case 'i':
+                  if (name[3] == 't')
+                  {                               /* wait             */
+                    return -KEY_wait;
+                  }
 
-                goto unknown;
+                  goto unknown;
 
-              case 'r':
-                if (name[3] == 'n')
-                {                                 /* warn             */
-                  return -KEY_warn;
-                }
+                case 'r':
+                  if (name[3] == 'n')
+                  {                               /* warn             */
+                    return -KEY_warn;
+                  }
 
-                goto unknown;
+                  goto unknown;
 
-              default:
-                goto unknown;
-            }
-          }
+                default:
+                  goto unknown;
+              }
 
-          goto unknown;
+            case 'h':
+              if (name[2] == 'e' &&
+                  name[3] == 'n')
+              {                                   /* when             */
+                return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_when : 0);
+              }
+
+              goto unknown;
+
+            default:
+              goto unknown;
+          }
 
         default:
           goto unknown;
       }
 
-    case 5: /* 38 tokens of length 5 */
+    case 5: /* 39 tokens of length 5 */
       switch (name[0])
       {
         case 'B':
@@ -992,15 +1003,31 @@ Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
           }
 
         case 'b':
-          if (name[1] == 'l' &&
-              name[2] == 'e' &&
-              name[3] == 's' &&
-              name[4] == 's')
-          {                                       /* bless            */
-            return -KEY_bless;
-          }
+          switch (name[1])
+          {
+            case 'l':
+              if (name[2] == 'e' &&
+                  name[3] == 's' &&
+                  name[4] == 's')
+              {                                   /* bless            */
+                return -KEY_bless;
+              }
 
-          goto unknown;
+              goto unknown;
+
+            case 'r':
+              if (name[2] == 'e' &&
+                  name[3] == 'a' &&
+                  name[4] == 'k')
+              {                                   /* break            */
+                return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? -KEY_break : 0);
+              }
+
+              goto unknown;
+
+            default:
+              goto unknown;
+          }
 
         case 'c':
           switch (name[1])
@@ -1968,13 +1995,33 @@ Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
               goto unknown;
 
             case 'e':
-              if (name[2] == 'f' &&
-                  name[3] == 'i' &&
-                  name[4] == 'n' &&
-                  name[5] == 'e' &&
-                  name[6] == 'd')
-              {                                   /* defined          */
-                return KEY_defined;
+              if (name[2] == 'f')
+              {
+                switch (name[3])
+                {
+                  case 'a':
+                    if (name[4] == 'u' &&
+                        name[5] == 'l' &&
+                        name[6] == 't')
+                    {                             /* default          */
+                      return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_default : 0);
+                    }
+
+                    goto unknown;
+
+                  case 'i':
+                    if (name[4] == 'n' &&
+                        name[5] == 'e' &&
+                        name[6] == 'd')
+                    {                             /* defined          */
+                      return KEY_defined;
+                    }
+
+                    goto unknown;
+
+                  default:
+                    goto unknown;
+                }
               }
 
               goto unknown;
@@ -2282,36 +2329,18 @@ Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
           }
 
         case 'w':
-          switch (name[1])
-          {
-            case 'a':
-              if (name[2] == 'i' &&
-                  name[3] == 't' &&
-                  name[4] == 'p' &&
-                  name[5] == 'i' &&
-                  name[6] == 'd')
-              {                                   /* waitpid          */
-                return -KEY_waitpid;
-              }
-
-              goto unknown;
-
-            case 'h':
-              if (name[2] == 'e' &&
-                  name[3] == 'r' &&
-                  name[4] == 'e' &&
-                  name[5] == 's' &&
-                  name[6] == 'o')
-              {                                   /* whereso          */
-                return (all_keywords || FEATURE_SWITCH_IS_ENABLED ? KEY_whereso : 0);
-              }
-
-              goto unknown;
-
-            default:
-              goto unknown;
+          if (name[1] == 'a' &&
+              name[2] == 'i' &&
+              name[3] == 't' &&
+              name[4] == 'p' &&
+              name[5] == 'i' &&
+              name[6] == 'd')
+          {                                       /* waitpid          */
+            return -KEY_waitpid;
           }
 
+          goto unknown;
+
         default:
           goto unknown;
       }
@@ -3408,5 +3437,5 @@ unknown:
 }
 
 /* Generated from:
- * fa7d552d13fad7c3ad101e3f8d5301a9780147c26623ecb3e75f0ec7f0d24cc3 regen/keywords.pl
+ * db0472e0ad4f44bd0816cad799d63b60d1bbd7e11cef40ea15bf0d00f69669f6 regen/keywords.pl
  * ex: set ro: */