Define init function for the lexer.
authorPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 22 Sep 2002 09:19:18 +0000 (09:19 +0000)
committerPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 22 Sep 2002 09:19:18 +0000 (09:19 +0000)
Use lexer sections.

gedcom/gedcom_1byte.lex
gedcom/gedcom_hilo.lex
gedcom/gedcom_lohi.lex

index 6fa1d6b0293089b3f4573f8482d7ecd1e1d6eb4e..938a97c476ed63b396be602ae07d56a03ec298e0 100644 (file)
@@ -22,7 +22,8 @@
 /* $Name$ */
 
 %{
-#undef IN_LEX    /* include only a specific part of the following file */
+#define LEX_SECTION 1  /* include only a specific part of the following file */
+#define yymyinit gedcom_1byte_myinit
 #include "gedcom_lex_common.c"
 
 static size_t encoding_width = 1;
@@ -53,7 +54,8 @@ pointer      @{alphanum}{non_at}+@
 %%
 
 %{
-#define IN_LEX    /* include only a specific part of the following file */
+#undef LEX_SECTION
+#define LEX_SECTION 2  /* include only a specific part of the following file */
 #include "gedcom_lex_common.c"
 
 ACTION_BEFORE_REGEXPS
@@ -215,15 +217,9 @@ ACTION_BEFORE_REGEXPS
 .                         ACTION_UNEXPECTED
 
 %%
-
-static int exitfuncregistered = 0;
-
-int yywrap()
-{
-  if (! exitfuncregistered && atexit(yylex_cleanup) == 0)
-    exitfuncregistered = 1;
-  return 1;
-}
+#undef LEX_SECTION
+#define LEX_SECTION 3  /* include only a specific part of the following file */
+#include "gedcom_lex_common.c"
 
 #ifdef LEXER_TEST
 int gedcom_lex()
index a5216bb7561343014e8a648a81844722c27c411a..a63b4088d1b5d7c8b34ebc8fab26ad12e2c558ca 100644 (file)
@@ -25,7 +25,8 @@
 /* i.e. this is utf-16-be */
 
 %{
-#undef IN_LEX    /* include only a specific part of the following file */
+#define LEX_SECTION 1  /* include only a specific part of the following file */
+#define yymyinit gedcom_hilo_myinit
 #include "gedcom_lex_common.c"
   
 static size_t encoding_width = 2;
@@ -56,7 +57,8 @@ pointer      \x00@{alphanum}{non_at}+\x00@
 %%
 
 %{
-#define IN_LEX    /* include only a specific part of the following file */
+#undef LEX_SECTION
+#define LEX_SECTION 2  /* include only a specific part of the following file */
 #include "gedcom_lex_common.c"
 
 ACTION_BEFORE_REGEXPS
@@ -218,15 +220,9 @@ ACTION_BEFORE_REGEXPS
 .                        ACTION_UNEXPECTED
 
 %%
-
-static int exitfuncregistered = 0;
-
-int yywrap()
-{
-  if (! exitfuncregistered && atexit(yylex_cleanup) == 0)
-    atexit(yylex_cleanup);
-  return 1;
-}
+#undef LEX_SECTION
+#define LEX_SECTION 3  /* include only a specific part of the following file */
+#include "gedcom_lex_common.c"
 
 #ifdef LEXER_TEST
 int gedcom_lex()
index a2f82a96cd361f8ba4d89330fe13180f2eb57b5c..f656ba2ebb3cef72f5c9c26c4702c7dc9eb44841 100644 (file)
@@ -25,7 +25,8 @@
 /* i.e. this is utf-16-le */
 
 %{
-#undef IN_LEX    /* include only a specific part of the following file */
+#define LEX_SECTION 1  /* include only a specific part of the following file */
+#define yymyinit gedcom_lohi_myinit
 #include "gedcom_lex_common.c"
   
 static size_t encoding_width = 2;
@@ -56,7 +57,8 @@ pointer      @\x00{alphanum}{non_at}+@\x00
 %%
 
 %{
-#define IN_LEX    /* include only a specific part of the following file */
+#undef LEX_SECTION
+#define LEX_SECTION 2  /* include only a specific part of the following file */
 #include "gedcom_lex_common.c"
 
 ACTION_BEFORE_REGEXPS
@@ -218,15 +220,9 @@ ACTION_BEFORE_REGEXPS
 .                        ACTION_UNEXPECTED
 
 %%
-
-static int exitfuncregistered = 0;
-
-int yywrap()
-{
-  if (! exitfuncregistered && atexit(yylex_cleanup) == 0)
-    atexit(yylex_cleanup);
-  return 1;
-}
+#undef LEX_SECTION
+#define LEX_SECTION 3  /* include only a specific part of the following file */
+#include "gedcom_lex_common.c"
 
 #ifdef LEXER_TEST
 int gedcom_lex()