]> granicus.if.org Git - flex/blobdiff - src/scan.l
scanner: when bracelevel is negative, treat as zero.
[flex] / src / scan.l
index 8400cf6ca0a5b81d831c72192f15204fd4a68559..abe47f42eabaadc8ecc4470553da85ae6911729d 100644 (file)
@@ -940,16 +940,16 @@ nmstr[yyleng - 2 - end_is_ws] = '\0';  /* chop trailing brace */
         "'"             ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
        \"              ACTION_ECHO; BEGIN(ACTION_STRING);
        {NL} {
-                       ++linenum;
-                       ACTION_ECHO;
-                       if (bracelevel == 0) {
-                               if ( doing_rule_action )
-                    add_action( "\tYY_BREAK]""]\n" );
+                ++linenum;
+                ACTION_ECHO;
+                if (bracelevel <= 0) {
+                   if ( doing_rule_action )
+                      add_action( "\tYY_BREAK]""]\n" );
 
-                doing_rule_action = false;
-                BEGIN(SECT2);
-            }
-        }
+                   doing_rule_action = false;
+                   BEGIN(SECT2);
+                }
+             }
         .      ACTION_ECHO;
 }