lukewarm/cool.y.patch
Armin Friedl 5a5b9d9e09
All checks were successful
continuous-integration/drone/push Build is passing
Also patch cool.y in PA3
Same issue as in 5ef0aff5b5
2020-12-22 03:04:31 +01:00

26 lines
857 B
Diff

--- cool.y 2020-12-22 01:57:18.912461835 +0000
+++ cool.y.work 2020-12-22 01:57:06.089590582 +0000
@@ -11,6 +11,23 @@
extern char *curr_filename;
+ /* This is a hack to
+ * a) satisfy the cool compiler which expects yylex to be named cool_yylex (see below)
+ * b) satisfy libfl > 2.5.39 which expects a yylex symbol
+ * c) fix mangling errors of yylex when compiled with a c++ compiler
+ * d) be as non-invasive as possible to the existing assignment code
+ *
+ * WARNING: We are now leaving standard country, but `push_macro` is supported
+ * in all major compilers.
+ */
+ #pragma push_macro("yylex")
+ #undef yylex
+ int cool_yylex();
+ extern "C" {
+ int (&yylex) (void) = cool_yylex;
+ }
+ #pragma pop_macro("yylex")
+
/* Locations */
#define YYLTYPE int /* the type of locations */