poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Call pkl_ice and abort on lexer fatal errors


From: John Darrington
Subject: [PATCH] Call pkl_ice and abort on lexer fatal errors
Date: Tue, 12 Nov 2019 14:58:23 +0100

From: John Darrington <address@hidden>

        * src/pkl-lex.l (YYFATAL_ERROR): Redefine
---
 ChangeLog     |  4 ++++
 src/pkl-lex.l | 13 +++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 5acd43c..fe40e34 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2019-11-12 John Darrington <address@hidden>
 
+       * src/pkl-lex.l (YYFATAL_ERROR): Redefine
+
+2019-11-12 John Darrington <address@hidden>
+
        * src/std.pk (ltrim): New function.
        * src/std.pk (rtrim): New function.
        * doc/poke.texi (String Functions): New chapter.
diff --git a/src/pkl-lex.l b/src/pkl-lex.l
index f9dec2d..2e45311 100644
--- a/src/pkl-lex.l
+++ b/src/pkl-lex.l
@@ -50,6 +50,19 @@
 #include <pkl-tab.h>
 #include "pk-cmd.h"
 
+
+#define YY_FATAL_ERROR(msg)                             \
+  do                                                    \
+    {                                                   \
+     YYLTYPE *loc = yyget_lloc (yyscanner);             \
+     YY_EXTRA_TYPE extra = yyget_extra (yyscanner);     \
+     pkl_ice (extra->ast, *loc, "%s", msg);             \
+     abort ();                                          \
+     /* kludge to avoid compiler warning */             \
+     void *x = yy_fatal_error; x = x;                   \
+    }                                                   \
+  while (0)
+
 #define YY_USER_ACTION                                  \
   do                                                    \
     {                                                   \
-- 
2.11.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]