[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 01/14] glr2.cc: don't publish YY_EXCEPTIONS
From: |
Akim Demaille |
Subject: |
[PATCH 01/14] glr2.cc: don't publish YY_EXCEPTIONS |
Date: |
Sun, 12 Sep 2021 14:07:34 +0200 |
We don't need them in the header file.
* data/skeletons/glr2.cc (YY_EXCEPTIONS): Define only in the
implementation file.
* tests/headers.at (Several Parsers): Also check glr2.cc.
---
data/skeletons/glr2.cc | 18 +++++++++---------
tests/headers.at | 8 ++++++--
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
index d5f21645..6d3ce093 100644
--- a/data/skeletons/glr2.cc
+++ b/data/skeletons/glr2.cc
@@ -208,15 +208,6 @@ m4_define([b4_shared_declarations],
[[# include ]b4_location_include])[
]b4_variant_if([b4_variant_includes])[
-// Whether we are compiled with exception support.
-#ifndef YY_EXCEPTIONS
-# if defined __GNUC__ && !defined __EXCEPTIONS
-# define YY_EXCEPTIONS 0
-# else
-# define YY_EXCEPTIONS 1
-# endif
-#endif
-
]b4_YYDEBUG_define[
class glr_stack;
@@ -457,6 +448,15 @@ static ]b4_namespace_ref[::]b4_parser_class[::value_type
yyval_default;
# endif
#endif
+// Whether we are compiled with exception support.
+#ifndef YY_EXCEPTIONS
+# if defined __GNUC__ && !defined __EXCEPTIONS
+# define YY_EXCEPTIONS 0
+# else
+# define YY_EXCEPTIONS 1
+# endif
+#endif
+
#ifndef YYFREE
# define YYFREE free
#endif
diff --git a/tests/headers.at b/tests/headers.at
index 57a5591f..ab2e636b 100644
--- a/tests/headers.at
+++ b/tests/headers.at
@@ -241,6 +241,7 @@ m4_pushdef([AT_TEST],
| 'x' '9' { printf ("x9\n"); }
| 'x' 'a' { printf ("xa\n"); }
| 'x' 'b' { printf ("xb\n"); }
+| 'x' 'c' { printf ("xc\n"); }
;
%%
@@ -279,6 +280,7 @@ m4_pushdef([AT_TEST],
#include "x9.hh"
#include "xa.hh"
#include "xb.hh"
+#include "xc.hh"
#define RUN(S) \
do { \
@@ -305,6 +307,8 @@ m4_pushdef([AT_TEST],
RUN(pa.parse());
xb_::parser pb;
RUN(pb.parse());
+ xc_::parser pc;
+ RUN(pc.parse());
return 0;
}
]])# main.cc
@@ -320,7 +324,7 @@ m4_pushdef([AT_TEST],
AT_TEST([x9], [%locations %code requires {#include "location.hh"} %define
api.location.type {::x5_::location} %debug %language "c++"])
AT_TEST([xa], [%locations %code requires {#include "location.hh"} %define
api.location.type {::x5_::location} %language "c++" %define api.value.type
variant])
AT_TEST([xb], [%locations %define api.location.file none %language "c++"
%define api.value.type variant])
-#AT_TEST([x5], [%locations %language "c++" %glr-parser])
+AT_TEST([xc], [%locations %code requires {#include "location.hh"} %define
api.location.type {::x5_::location} %skeleton "glr2.cc"])
# Check that api.prefix works properly:
#
@@ -377,7 +381,7 @@ m4_pushdef([AT_TEST],
# Do this late, so that other checks have been performed.
AT_SKIP_IF_CANNOT_LINK_C_AND_CXX
-AT_COMPILE_CXX([parser], [[x[1-9a-b].o -DCC_IS_CXX=$CC_IS_CXX main.cc]])
+AT_COMPILE_CXX([parser], [[x[1-9a-c].o -DCC_IS_CXX=$CC_IS_CXX main.cc]])
AT_PARSER_CHECK([parser], [0], [[expout]])
m4_popdef([AT_TEST])
--
2.32.0
- [PATCH 00/14] glr2.cc: fix linking conflicts, Akim Demaille, 2021/09/12
- [PATCH 01/14] glr2.cc: don't publish YY_EXCEPTIONS,
Akim Demaille <=
- [PATCH 02/14] glr2.cc: put semantic_option into an unnamed namespace, Akim Demaille, 2021/09/12
- [PATCH 03/14] glr2.cc: prefer unnamed namespace to 'static', Akim Demaille, 2021/09/12
- [PATCH 04/14] glr2.cc: put create_state_set_index in unnamed namespace, Akim Demaille, 2021/09/12
- [PATCH 05/14] glr2.cc: move glr_stack and glr_state into the parser class, Akim Demaille, 2021/09/12
- [PATCH 06/14] glr2.cc: style: clarify control flow, Akim Demaille, 2021/09/12
- [PATCH 07/14] glr2.cc: move state_stack into the unnamed namespace, Akim Demaille, 2021/09/12
- [PATCH 08/14] glr2.cc: put glr_state_set and glr_stack_item in unnamed namespace, Akim Demaille, 2021/09/12
- [PATCH 09/14] glr2.cc: prefer using, and remove useless type aliases, Akim Demaille, 2021/09/12
- [PATCH 10/14] glr2.cc: use only symbol_kind_type, not yysymbol_kind_t, Akim Demaille, 2021/09/12
- [PATCH 11/14] glr2.cc: move strong_index_alias into the unnamed namespace, Akim Demaille, 2021/09/12