--- /dev/null
+/* This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+
+ (C) 2001 by The Genes Development Team
+ Original author: Peter Verthez (Peter.Verthez@advalvas.be)
+*/
+
+/* $Id$ */
+/* $Name$ */
+
+%{
+#undef IN_LEX /* include only a specific part of the following file */
+#include "gedcom_lex_common.c"
+
+static size_t encoding_width = 1;
+%}
+
+%s NORMAL
+%s EXPECT_TAG
+
+alpha [A-Za-z_]
+digit [0-9]
+delim " "
+tab [\t]
+hash #
+literal_at @@
+otherchar [\x21-\x22\x24-\x2F\x3A-\x3F\x5B-\x5E\x60\x7B-\x7E\x80-\xFE]
+terminator \x0D|\x0A|\x0D\x0A|\x0A\x0D
+
+any_char {alpha}|{digit}|{otherchar}|{delim}|{hash}|{literal_at}
+any_but_delim {alpha}|{digit}|{otherchar}|{hash}|{literal_at}
+non_at {alpha}|{digit}|{otherchar}|{delim}|{hash}
+alphanum {alpha}|{digit}
+gen_delim {delim}|{tab}
+
+escape @#{any_char}+@
+pointer @{alphanum}{non_at}+@
+
+%%
+
+%{
+#define IN_LEX /* include only a specific part of the following file */
+#include "gedcom_lex_common.c"
+
+ACTION_BEFORE_REGEXPS
+
+%}
+
+<INITIAL>{gen_delim}* ACTION_INITIAL_WHITESPACE
+
+<INITIAL>0{digit}+ ACTION_0_DIGITS
+
+<INITIAL>{digit}+ ACTION_DIGITS
+
+<EXPECT_TAG>ABBR MKTAGACTION(ABBR)
+<EXPECT_TAG>ADDR MKTAGACTION(ADDR)
+<EXPECT_TAG>ADR1 MKTAGACTION(ADR1)
+<EXPECT_TAG>ADR2 MKTAGACTION(ADR2)
+<EXPECT_TAG>ADOP MKTAGACTION(ADOP)
+<EXPECT_TAG>AFN MKTAGACTION(AFN)
+<EXPECT_TAG>AGE MKTAGACTION(AGE)
+<EXPECT_TAG>AGNC MKTAGACTION(AGNC)
+<EXPECT_TAG>ALIA MKTAGACTION(ALIA)
+<EXPECT_TAG>ANCE MKTAGACTION(ANCE)
+<EXPECT_TAG>ANCI MKTAGACTION(ANCI)
+<EXPECT_TAG>ANUL MKTAGACTION(ANUL)
+<EXPECT_TAG>ASSO MKTAGACTION(ASSO)
+<EXPECT_TAG>AUTH MKTAGACTION(AUTH)
+<EXPECT_TAG>BAPL MKTAGACTION(BAPL)
+<EXPECT_TAG>BAPM MKTAGACTION(BAPM)
+<EXPECT_TAG>BARM MKTAGACTION(BARM)
+<EXPECT_TAG>BASM MKTAGACTION(BASM)
+<EXPECT_TAG>BIRT MKTAGACTION(BIRT)
+<EXPECT_TAG>BLES MKTAGACTION(BLES)
+<EXPECT_TAG>BLOB MKTAGACTION(BLOB)
+<EXPECT_TAG>BURI MKTAGACTION(BURI)
+<EXPECT_TAG>CALN MKTAGACTION(CALN)
+<EXPECT_TAG>CAST MKTAGACTION(CAST)
+<EXPECT_TAG>CAUS MKTAGACTION(CAUS)
+<EXPECT_TAG>CENS MKTAGACTION(CENS)
+<EXPECT_TAG>CHAN MKTAGACTION(CHAN)
+<EXPECT_TAG>CHAR MKTAGACTION(CHAR)
+<EXPECT_TAG>CHIL MKTAGACTION(CHIL)
+<EXPECT_TAG>CHR MKTAGACTION(CHR)
+<EXPECT_TAG>CHRA MKTAGACTION(CHRA)
+<EXPECT_TAG>CITY MKTAGACTION(CITY)
+<EXPECT_TAG>CONC MKTAGACTION(CONC)
+<EXPECT_TAG>CONF MKTAGACTION(CONF)
+<EXPECT_TAG>CONL MKTAGACTION(CONL)
+<EXPECT_TAG>CONT MKTAGACTION(CONT)
+<EXPECT_TAG>COPR MKTAGACTION(COPR)
+<EXPECT_TAG>CORP MKTAGACTION(CORP)
+<EXPECT_TAG>CREM MKTAGACTION(CREM)
+<EXPECT_TAG>CTRY MKTAGACTION(CTRY)
+<EXPECT_TAG>DATA MKTAGACTION(DATA)
+<EXPECT_TAG>DATE MKTAGACTION(DATE)
+<EXPECT_TAG>DEAT MKTAGACTION(DEAT)
+<EXPECT_TAG>DESC MKTAGACTION(DESC)
+<EXPECT_TAG>DESI MKTAGACTION(DESI)
+<EXPECT_TAG>DEST MKTAGACTION(DEST)
+<EXPECT_TAG>DIV MKTAGACTION(DIV)
+<EXPECT_TAG>DIVF MKTAGACTION(DIVF)
+<EXPECT_TAG>DSCR MKTAGACTION(DSCR)
+<EXPECT_TAG>EDUC MKTAGACTION(EDUC)
+<EXPECT_TAG>EMIG MKTAGACTION(EMIG)
+<EXPECT_TAG>ENDL MKTAGACTION(ENDL)
+<EXPECT_TAG>ENGA MKTAGACTION(ENGA)
+<EXPECT_TAG>EVEN MKTAGACTION(EVEN)
+<EXPECT_TAG>FAM MKTAGACTION(FAM)
+<EXPECT_TAG>FAMC MKTAGACTION(FAMC)
+<EXPECT_TAG>FAMF MKTAGACTION(FAMF)
+<EXPECT_TAG>FAMS MKTAGACTION(FAMS)
+<EXPECT_TAG>FCOM MKTAGACTION(FCOM)
+<EXPECT_TAG>FILE MKTAGACTION(FILE)
+<EXPECT_TAG>FORM MKTAGACTION(FORM)
+<EXPECT_TAG>GEDC MKTAGACTION(GEDC)
+<EXPECT_TAG>GIVN MKTAGACTION(GIVN)
+<EXPECT_TAG>GRAD MKTAGACTION(GRAD)
+<EXPECT_TAG>HEAD MKTAGACTION(HEAD)
+<EXPECT_TAG>HUSB MKTAGACTION(HUSB)
+<EXPECT_TAG>IDNO MKTAGACTION(IDNO)
+<EXPECT_TAG>IMMI MKTAGACTION(IMMI)
+<EXPECT_TAG>INDI MKTAGACTION(INDI)
+<EXPECT_TAG>LANG MKTAGACTION(LANG)
+<EXPECT_TAG>LEGA MKTAGACTION(LEGA)
+<EXPECT_TAG>MARB MKTAGACTION(MARB)
+<EXPECT_TAG>MARC MKTAGACTION(MARC)
+<EXPECT_TAG>MARL MKTAGACTION(MARL)
+<EXPECT_TAG>MARR MKTAGACTION(MARR)
+<EXPECT_TAG>MARS MKTAGACTION(MARS)
+<EXPECT_TAG>MEDI MKTAGACTION(MEDI)
+<EXPECT_TAG>NAME MKTAGACTION(NAME)
+<EXPECT_TAG>NATI MKTAGACTION(NATI)
+<EXPECT_TAG>NATU MKTAGACTION(NATU)
+<EXPECT_TAG>NCHI MKTAGACTION(NCHI)
+<EXPECT_TAG>NICK MKTAGACTION(NICK)
+<EXPECT_TAG>NMR MKTAGACTION(NMR)
+<EXPECT_TAG>NOTE MKTAGACTION(NOTE)
+<EXPECT_TAG>NPFX MKTAGACTION(NPFX)
+<EXPECT_TAG>NSFX MKTAGACTION(NSFX)
+<EXPECT_TAG>OBJE MKTAGACTION(OBJE)
+<EXPECT_TAG>OCCU MKTAGACTION(OCCU)
+<EXPECT_TAG>ORDI MKTAGACTION(ORDI)
+<EXPECT_TAG>ORDN MKTAGACTION(ORDN)
+<EXPECT_TAG>PAGE MKTAGACTION(PAGE)
+<EXPECT_TAG>PEDI MKTAGACTION(PEDI)
+<EXPECT_TAG>PHON MKTAGACTION(PHON)
+<EXPECT_TAG>PLAC MKTAGACTION(PLAC)
+<EXPECT_TAG>POST MKTAGACTION(POST)
+<EXPECT_TAG>PROB MKTAGACTION(PROB)
+<EXPECT_TAG>PROP MKTAGACTION(PROP)
+<EXPECT_TAG>PUBL MKTAGACTION(PUBL)
+<EXPECT_TAG>QUAY MKTAGACTION(QUAY)
+<EXPECT_TAG>REFN MKTAGACTION(REFN)
+<EXPECT_TAG>RELA MKTAGACTION(RELA)
+<EXPECT_TAG>RELI MKTAGACTION(RELI)
+<EXPECT_TAG>REPO MKTAGACTION(REPO)
+<EXPECT_TAG>RESI MKTAGACTION(RESI)
+<EXPECT_TAG>RESN MKTAGACTION(RESN)
+<EXPECT_TAG>RETI MKTAGACTION(RETI)
+<EXPECT_TAG>RFN MKTAGACTION(RFN)
+<EXPECT_TAG>RIN MKTAGACTION(RIN)
+<EXPECT_TAG>ROLE MKTAGACTION(ROLE)
+<EXPECT_TAG>SEX MKTAGACTION(SEX)
+<EXPECT_TAG>SLGC MKTAGACTION(SLGC)
+<EXPECT_TAG>SLGS MKTAGACTION(SLGS)
+<EXPECT_TAG>SOUR MKTAGACTION(SOUR)
+<EXPECT_TAG>SPFX MKTAGACTION(SPFX)
+<EXPECT_TAG>SSN MKTAGACTION(SSN)
+<EXPECT_TAG>STAE MKTAGACTION(STAE)
+<EXPECT_TAG>STAT MKTAGACTION(STAT)
+<EXPECT_TAG>SUBM MKTAGACTION(SUBM)
+<EXPECT_TAG>SUBN MKTAGACTION(SUBN)
+<EXPECT_TAG>SURN MKTAGACTION(SURN)
+<EXPECT_TAG>TEMP MKTAGACTION(TEMP)
+<EXPECT_TAG>TEXT MKTAGACTION(TEXT)
+<EXPECT_TAG>TIME MKTAGACTION(TIME)
+<EXPECT_TAG>TITL MKTAGACTION(TITL)
+<EXPECT_TAG>TRLR MKTAGACTION(TRLR)
+<EXPECT_TAG>TYPE MKTAGACTION(TYPE)
+<EXPECT_TAG>VERS MKTAGACTION(VERS)
+<EXPECT_TAG>WIFE MKTAGACTION(WIFE)
+<EXPECT_TAG>WILL MKTAGACTION(WILL)
+
+<EXPECT_TAG>{alphanum}+ ACTION_ALPHANUM
+
+{delim} ACTION_DELIM
+
+{any_but_delim} ACTION_ANY
+
+{escape}/{non_at} ACTION_ESCAPE
+
+{pointer} ACTION_POINTER
+
+{gen_delim}*{terminator} ACTION_TERMINATOR
+
+<<EOF>> ACTION_EOF
+
+. ACTION_UNEXPECTED
+
+%%
+
+int yywrap()
+{
+ return 1;
+}
+
+#ifdef LEXER_TEST
+int gedcom_lex()
+{
+ return gedcom_1byte_lex();
+}
+
+int main()
+{
+ return test_loop(ONE_BYTE, "ASCII");
+}
+#endif