[PATCH 1/4] bistromathic: promote yytoken_kind_t

Akim Demaille <[email protected]>
Newsgroups gmane.comp.parsers.bison.patches
Message-ID <[email protected]>
* examples/c/bistromathic/parse.y: Use yytoken_kind_t rather than int.
---
 examples/c/bistromathic/parse.y | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/examples/c/bistromathic/parse.y b/examples/c/bistromathic/parse.y
index d4e77825..9ba07ea5 100644
--- a/examples/c/bistromathic/parse.y
+++ b/examples/c/bistromathic/parse.y
@@ -74,7 +74,7 @@
 #   define __attribute__(Spec) /* empty */
 #  endif
 # endif
-  int yylex (const char **line, YYSTYPE *yylval, YYLTYPE *yylloc);
+  yytoken_kind_t yylex (const char **line, YYSTYPE *yylval, YYLTYPE *yylloc);
   void yyerror (YYLTYPE *loc, char const *format, ...)
     __attribute__ ((__format__ (__printf__, 2, 3)));
 }
@@ -257,7 +257,7 @@ symbol_count (void)
 | Scanner.  |
 `----------*/
 
-int
+yytoken_kind_t
 yylex (const char **line, YYSTYPE *yylval, YYLTYPE *yylloc)
 {
   int c;
@@ -453,7 +453,8 @@ process_line (YYLTYPE *lloc, const char *line)
   int status = 0;
   do {
     YYSTYPE lval;
-    status = yypush_parse (ps, yylex (&line, &lval, lloc), &lval, lloc);
+    yytoken_kind_t token = yylex (&line, &lval, lloc);
+    status = yypush_parse (ps, token, &lval, lloc);
   } while (status == YYPUSH_MORE);
   yypstate_delete (ps);
   lloc->last_line++;
@@ -475,9 +476,9 @@ expected_tokens (const char *input,
   do {
     YYLTYPE lloc = { 1, 1, 1, 1 };
     YYSTYPE lval;
-    int token = yylex (&input, &lval, &lloc);
-    // Don't let the parse know when we reach the end of input.
-    if (!token)
+    yytoken_kind_t token = yylex (&input, &lval, &lloc);
+    // Don't let the parser know when we reach the end of input.
+    if (token == TOK_YYEOF)
       break;
     status = yypush_parse (ps, token, &lval, &lloc);
   } while (status == YYPUSH_MORE);
-- 
2.27.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.