Bugfix.
[gedcom-parse.git] / gedcom / gedcom_hilo.lex
index 60b7a1a280bd41f4eea0ab9c026109251ab1045a..91735f1e1c7eb6600463cee60d4f727b9cf0db6d 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;
@@ -40,6 +41,7 @@ delim        \x00\x20
 tab          \x00[\t]
 hash         \x00#
 literal_at   \x00@\x00@
+normal_at    \x00@
 otherchar    \x00[\x21-\x22\x24-\x2F\x3A-\x3F\x5B-\x5E\x60\x7B-\x7E\x80-\xFF]|[\x01-\xFF][\x00-\xFF]
 terminator   \x00\x0D|\x00\x0A|\x00\x0D\x00\x0A|\x00\x0A\x00\x0D
 
@@ -50,12 +52,13 @@ alphanum     {alpha}|{digit}
 gen_delim    {delim}|{tab}
 
 escape       \x00@\x00#{any_char}+\x00@
-pointer      \x00@{alphanum}{non_at}+\x00@
+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
@@ -212,14 +215,14 @@ ACTION_BEFORE_REGEXPS
 
 <<EOF>>                  ACTION_EOF
 
+{normal_at}              ACTION_NORMAL_AT
+
 .                        ACTION_UNEXPECTED
 
 %%
-
-int yywrap()
-{
-  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()