This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
yyparse: replace yynewstate label with while(1) {}
authorDavid Mitchell <davem@iabyn.com>
Sat, 3 Dec 2016 16:23:55 +0000 (16:23 +0000)
committerDavid Mitchell <davem@iabyn.com>
Mon, 5 Dec 2016 11:54:03 +0000 (11:54 +0000)
makes the code easier to understand

perly.c

diff --git a/perly.c b/perly.c
index 0fb1313..ac3b068 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -288,11 +288,8 @@ Perl_yyparse (pTHX_ int gramtype)
     ps->state = 0;
     SAVEDESTRUCTOR_X(S_clear_yystack, parser);
 
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
-  yynewstate:
-
+    while (1) {
+        /* main loop: shift some tokens, then reduce when possible */
 
     while (1) {
 
@@ -461,7 +458,7 @@ Perl_yyparse (pTHX_ int gramtype)
        yystate = yydefgoto[yyn - YYNTOKENS];
     ps->state = yystate;
 
-    goto yynewstate;
+    continue;
 
 
   /*------------------------------------.
@@ -565,7 +562,7 @@ Perl_yyparse (pTHX_ int gramtype)
     ps->name    ="<err>";
 #endif
 
-    goto yynewstate;
+    } /* main loop */
 
 
   /*-------------------------------------.