summaryrefslogtreecommitdiff
path: root/src/cpp-flex.skl
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2020-10-15 22:12:32 -0400
committerEric S. Raymond <esr@thyrsus.com>2020-10-16 06:10:02 -0400
commit0e32cd6ce31e509d4d8421b87eb06448181b6590 (patch)
treeace6257e396ba26c7281c6bfa20cb8e219777838 /src/cpp-flex.skl
parentc99e66b54df7828d48d5752686374df72befcbc5 (diff)
downloadflex-git-0e32cd6ce31e509d4d8421b87eb06448181b6590.tar.gz
Add and document machinery to choose a back end by name.
Back end is now reported in the metadata comments near the top of generated files. All is in readiness for the start of direct work on Go support.
Diffstat (limited to 'src/cpp-flex.skl')
-rw-r--r--src/cpp-flex.skl18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/cpp-flex.skl b/src/cpp-flex.skl
index 1fa3f0d..f1ee072 100644
--- a/src/cpp-flex.skl
+++ b/src/cpp-flex.skl
@@ -50,33 +50,32 @@ m4_changequote([[, ]])
%# This is to aid those who edit the skeleton.
%#
-%# Macro hooks used by Flex start here
+%# Properties not used in the skeleton - meant to be read by the Flex code
+m4_define([[M4_PROPERTY_BACKEND_NAME]], [[C/C++]])
+%#m4_define([[M4_PROPERTY_SOURCE_SUFFIX]], [[]])
+m4_define([[M4_PROPERTY_TRACE_LINE_REGEXP]], [[^#line ([0-9]+) "(.*)"]])
+m4_define([[M4_PROPERTY_TRACE_LINE_TEMPLATE]], [[#line %d "%s"]])
+%# Macro hooks used by Flex code generators start here
m4_define([[M4_HOOK_INT32]], [[flex_int32_t]])
m4_define([[M4_HOOK_INT16]], [[flex_int16_t]])
-
m4_define([[M4_HOOK_COMMENT_OPEN]], [[/*]])
m4_define([[M4_HOOK_COMMENT_CLOSE]], [[*/]])
-
%# If this is not defined, no trace lines will be generated.
m4_define([[M4_HOOK_TRACE_LINE_FORMAT]], [[#line $1 "$2"
]])
-m4_define([[M4_PROPERTY_TRACE_LINE_TEMPLATE]], [[#line %d "%s"]])
m4_define([[M4_HOOK_TABLE_OPENER]], [[{]])
m4_define([[M4_HOOK_TABLE_CONTINUE]], [[},]])
m4_define([[M4_HOOK_TABLE_CLOSER]], [[};]])
-
+m4_define([[M4_HOOK_RELATIVIZE]], [[$1]])
m4_define([[M4_HOOK_STATE_ENTRY_FORMAT]], [[ &yy_transition[$1],
]])
-
m4_define([[M4_HOOK_EOF_STATE_CASE_ARM]], [[ case YY_STATE_EOF($1):]])
m4_define([[M4_HOOK_EOF_STATE_CASE_FALLTHROUGH]], [[ /* FALLTHROUGH */]])
m4_define([[M4_HOOK_EOF_STATE_CASE_TERMINATE]], [[ yyterminate();
]])
-
m4_define([[M4_HOOK_CONST_DEFINE]], [[#define $1 $2
]])
-
m4_define([[M4_HOOK_SET_YY_DECL]], [[#define YY_DECL $1
]])
m4_define([[M4_HOOK_SET_YYLMAX]], [[#define YYLMAX $1
@@ -88,9 +87,6 @@ m4_define([[M4_HOOK_SET_PREACTION]], [[#define YY_USER_ACTION $1
m4_define([[M4_HOOK_SET_POSTACTION]], [[#define YY_BREAK $1
]])
-%# Not used in the skeleton - meant to be read by the Flex code
-m4_define([[M4_PROPERTY_TRACE_LINE_REGEXP]], [[^#line ([0-9]+) "(.*)"]])
-
%% [0.0] Make hook macros available to Flex
m4_ifdef( [[M4_YY_IN_HEADER]], [[m4_dnl