Rename them back (using our own make rules anyway).
[gedcom-parse.git] / gedcom / gedcom_lohi.lex
1 /*  This program is free software; you can redistribute it and/or modify  *
2  *  it under the terms of the GNU General Public License as published by  *
3  *  the Free Software Foundation; either version 2 of the License, or     *
4  *  (at your option) any later version.                                   *
5
6  (C) 2001 by The Genes Development Team
7  Original author: Peter Verthez (Peter.Verthez@advalvas.be)
8 */
9
10 /* $Id$ */
11 /* $Name$ */
12
13 /* In low-high order, a space is encoded as 0x20 0x00 */
14 /* i.e. this is utf-16-le */
15
16 %{
17 #undef IN_LEX    /* include only a specific part of the following file */
18 #include "gedcom_lex_common.c"
19   
20 static size_t encoding_width = 2;
21 %}
22
23 %s NORMAL
24 %s EXPECT_TAG
25
26 alpha        [A-Za-z_]\x00
27 digit        [0-9]\x00
28 delim        \x20\x00
29 tab          [\t]\x00
30 hash         #\x00
31 literal_at   @\x00@\x00
32 otherchar    [\x21-\x22\x24-\x2F\x3A-\x3F\x5B-\x5E\x60\x7B-\x7E\x80-\xFF]\x00|[\x00-\xFF][\x01-\xFF]
33 terminator   \x0D\x00|\x0A\x00|\x0D\x00\x0A\x00|\x0A\x00\x0D\x00
34
35 any_char     {alpha}|{digit}|{otherchar}|{delim}|{hash}|{literal_at}
36 any_but_delim {alpha}|{digit}|{otherchar}|{hash}|{literal_at}
37 non_at       {alpha}|{digit}|{otherchar}|{delim}|{hash}
38 alphanum     {alpha}|{digit}
39 gen_delim    {delim}|{tab}
40
41 escape       @\x00#\x00{any_char}+@\x00
42 pointer      @\x00{alphanum}{non_at}+@\x00
43
44 %%
45
46 %{
47 #define IN_LEX    /* include only a specific part of the following file */
48 #include "gedcom_lex_common.c"
49
50 ACTION_BEFORE_REGEXPS
51   
52 %}
53
54 <INITIAL>{gen_delim}*     ACTION_INITIAL_WHITESPACE
55
56 <INITIAL>\x00[0]{digit}+  ACTION_0_DIGITS
57
58 <INITIAL>{digit}+         ACTION_DIGITS
59
60 <EXPECT_TAG>A\x00B\x00B\x00R\x00  MKTAGACTION(ABBR)
61 <EXPECT_TAG>A\x00D\x00D\x00R\x00  MKTAGACTION(ADDR)
62 <EXPECT_TAG>A\x00D\x00R\x001\x00  MKTAGACTION(ADR1)
63 <EXPECT_TAG>A\x00D\x00R\x002\x00  MKTAGACTION(ADR2)
64 <EXPECT_TAG>A\x00D\x00O\x00P\x00  MKTAGACTION(ADOP)
65 <EXPECT_TAG>A\x00F\x00N\x00   MKTAGACTION(AFN)
66 <EXPECT_TAG>A\x00G\x00E\x00   MKTAGACTION(AGE)
67 <EXPECT_TAG>A\x00G\x00N\x00C\x00  MKTAGACTION(AGNC)
68 <EXPECT_TAG>A\x00L\x00I\x00A\x00  MKTAGACTION(ALIA)
69 <EXPECT_TAG>A\x00N\x00C\x00E\x00  MKTAGACTION(ANCE)
70 <EXPECT_TAG>A\x00N\x00C\x00I\x00  MKTAGACTION(ANCI)
71 <EXPECT_TAG>A\x00N\x00U\x00L\x00  MKTAGACTION(ANUL)
72 <EXPECT_TAG>A\x00S\x00S\x00O\x00  MKTAGACTION(ASSO)
73 <EXPECT_TAG>A\x00U\x00T\x00H\x00  MKTAGACTION(AUTH)
74 <EXPECT_TAG>B\x00A\x00P\x00L\x00  MKTAGACTION(BAPL)
75 <EXPECT_TAG>B\x00A\x00P\x00M\x00  MKTAGACTION(BAPM)
76 <EXPECT_TAG>B\x00A\x00R\x00M\x00  MKTAGACTION(BARM)
77 <EXPECT_TAG>B\x00A\x00S\x00M\x00  MKTAGACTION(BASM)
78 <EXPECT_TAG>B\x00I\x00R\x00T\x00  MKTAGACTION(BIRT)
79 <EXPECT_TAG>B\x00L\x00E\x00S\x00  MKTAGACTION(BLES)
80 <EXPECT_TAG>B\x00L\x00O\x00B\x00  MKTAGACTION(BLOB)
81 <EXPECT_TAG>B\x00U\x00R\x00I\x00  MKTAGACTION(BURI)
82 <EXPECT_TAG>C\x00A\x00L\x00N\x00  MKTAGACTION(CALN)
83 <EXPECT_TAG>C\x00A\x00S\x00T\x00  MKTAGACTION(CAST)
84 <EXPECT_TAG>C\x00A\x00U\x00S\x00  MKTAGACTION(CAUS)
85 <EXPECT_TAG>C\x00E\x00N\x00S\x00  MKTAGACTION(CENS)
86 <EXPECT_TAG>C\x00H\x00A\x00N\x00  MKTAGACTION(CHAN)
87 <EXPECT_TAG>C\x00H\x00A\x00R\x00  MKTAGACTION(CHAR)
88 <EXPECT_TAG>C\x00H\x00I\x00L\x00  MKTAGACTION(CHIL)
89 <EXPECT_TAG>C\x00H\x00R\x00   MKTAGACTION(CHR)
90 <EXPECT_TAG>C\x00H\x00R\x00A\x00  MKTAGACTION(CHRA)
91 <EXPECT_TAG>C\x00I\x00T\x00Y\x00  MKTAGACTION(CITY)
92 <EXPECT_TAG>C\x00O\x00N\x00C\x00  MKTAGACTION(CONC)
93 <EXPECT_TAG>C\x00O\x00N\x00F\x00  MKTAGACTION(CONF)
94 <EXPECT_TAG>C\x00O\x00N\x00L\x00  MKTAGACTION(CONL)
95 <EXPECT_TAG>C\x00O\x00N\x00T\x00  MKTAGACTION(CONT)
96 <EXPECT_TAG>C\x00O\x00P\x00R\x00  MKTAGACTION(COPR)
97 <EXPECT_TAG>C\x00O\x00R\x00P\x00  MKTAGACTION(CORP)
98 <EXPECT_TAG>C\x00R\x00E\x00M\x00  MKTAGACTION(CREM)
99 <EXPECT_TAG>C\x00T\x00R\x00Y\x00  MKTAGACTION(CTRY)
100 <EXPECT_TAG>D\x00A\x00T\x00A\x00  MKTAGACTION(DATA)
101 <EXPECT_TAG>D\x00A\x00T\x00E\x00  MKTAGACTION(DATE)
102 <EXPECT_TAG>D\x00E\x00A\x00T\x00  MKTAGACTION(DEAT)
103 <EXPECT_TAG>D\x00E\x00S\x00C\x00  MKTAGACTION(DESC)
104 <EXPECT_TAG>D\x00E\x00S\x00I\x00  MKTAGACTION(DESI)
105 <EXPECT_TAG>D\x00E\x00S\x00T\x00  MKTAGACTION(DEST)
106 <EXPECT_TAG>D\x00I\x00V\x00   MKTAGACTION(DIV)
107 <EXPECT_TAG>D\x00I\x00V\x00F\x00  MKTAGACTION(DIVF)
108 <EXPECT_TAG>D\x00S\x00C\x00R\x00  MKTAGACTION(DSCR)
109 <EXPECT_TAG>E\x00D\x00U\x00C\x00  MKTAGACTION(EDUC)
110 <EXPECT_TAG>E\x00M\x00I\x00G\x00  MKTAGACTION(EMIG)
111 <EXPECT_TAG>E\x00N\x00D\x00L\x00  MKTAGACTION(ENDL)
112 <EXPECT_TAG>E\x00N\x00G\x00A\x00  MKTAGACTION(ENGA)
113 <EXPECT_TAG>E\x00V\x00E\x00N\x00  MKTAGACTION(EVEN)
114 <EXPECT_TAG>F\x00A\x00M\x00   MKTAGACTION(FAM)
115 <EXPECT_TAG>F\x00A\x00M\x00C\x00  MKTAGACTION(FAMC)
116 <EXPECT_TAG>F\x00A\x00M\x00F\x00  MKTAGACTION(FAMF)
117 <EXPECT_TAG>F\x00A\x00M\x00S\x00  MKTAGACTION(FAMS)
118 <EXPECT_TAG>F\x00C\x00O\x00M\x00  MKTAGACTION(FCOM)
119 <EXPECT_TAG>F\x00I\x00L\x00E\x00  MKTAGACTION(FILE)
120 <EXPECT_TAG>F\x00O\x00R\x00M\x00  MKTAGACTION(FORM)
121 <EXPECT_TAG>G\x00E\x00D\x00C\x00  MKTAGACTION(GEDC)
122 <EXPECT_TAG>G\x00I\x00V\x00N\x00  MKTAGACTION(GIVN)
123 <EXPECT_TAG>G\x00R\x00A\x00D\x00  MKTAGACTION(GRAD)
124 <EXPECT_TAG>H\x00E\x00A\x00D\x00  MKTAGACTION(HEAD)
125 <EXPECT_TAG>H\x00U\x00S\x00B\x00  MKTAGACTION(HUSB)
126 <EXPECT_TAG>I\x00D\x00N\x00O\x00  MKTAGACTION(IDNO)
127 <EXPECT_TAG>I\x00M\x00M\x00I\x00  MKTAGACTION(IMMI)
128 <EXPECT_TAG>I\x00N\x00D\x00I\x00  MKTAGACTION(INDI)
129 <EXPECT_TAG>L\x00A\x00N\x00G\x00  MKTAGACTION(LANG)
130 <EXPECT_TAG>L\x00E\x00G\x00A\x00  MKTAGACTION(LEGA)
131 <EXPECT_TAG>M\x00A\x00R\x00B\x00  MKTAGACTION(MARB)
132 <EXPECT_TAG>M\x00A\x00R\x00C\x00  MKTAGACTION(MARC)
133 <EXPECT_TAG>M\x00A\x00R\x00L\x00  MKTAGACTION(MARL)
134 <EXPECT_TAG>M\x00A\x00R\x00R\x00  MKTAGACTION(MARR)
135 <EXPECT_TAG>M\x00A\x00R\x00S\x00  MKTAGACTION(MARS)
136 <EXPECT_TAG>M\x00E\x00D\x00I\x00  MKTAGACTION(MEDI)
137 <EXPECT_TAG>N\x00A\x00M\x00E\x00  MKTAGACTION(NAME)
138 <EXPECT_TAG>N\x00A\x00T\x00I\x00  MKTAGACTION(NATI)
139 <EXPECT_TAG>N\x00A\x00T\x00U\x00  MKTAGACTION(NATU)
140 <EXPECT_TAG>N\x00C\x00H\x00I\x00  MKTAGACTION(NCHI)
141 <EXPECT_TAG>N\x00I\x00C\x00K\x00  MKTAGACTION(NICK)
142 <EXPECT_TAG>N\x00M\x00R\x00   MKTAGACTION(NMR)
143 <EXPECT_TAG>N\x00O\x00T\x00E\x00  MKTAGACTION(NOTE)
144 <EXPECT_TAG>N\x00P\x00F\x00X\x00  MKTAGACTION(NPFX)
145 <EXPECT_TAG>N\x00S\x00F\x00X\x00  MKTAGACTION(NSFX)
146 <EXPECT_TAG>O\x00B\x00J\x00E\x00  MKTAGACTION(OBJE)
147 <EXPECT_TAG>O\x00C\x00C\x00U\x00  MKTAGACTION(OCCU)
148 <EXPECT_TAG>O\x00R\x00D\x00I\x00  MKTAGACTION(ORDI)
149 <EXPECT_TAG>O\x00R\x00D\x00N\x00  MKTAGACTION(ORDN)
150 <EXPECT_TAG>P\x00A\x00G\x00E\x00  MKTAGACTION(PAGE)
151 <EXPECT_TAG>P\x00E\x00D\x00I\x00  MKTAGACTION(PEDI)
152 <EXPECT_TAG>P\x00H\x00O\x00N\x00  MKTAGACTION(PHON)
153 <EXPECT_TAG>P\x00L\x00A\x00C\x00  MKTAGACTION(PLAC)
154 <EXPECT_TAG>P\x00O\x00S\x00T\x00  MKTAGACTION(POST)
155 <EXPECT_TAG>P\x00R\x00O\x00B\x00  MKTAGACTION(PROB)
156 <EXPECT_TAG>P\x00R\x00O\x00P\x00  MKTAGACTION(PROP)
157 <EXPECT_TAG>P\x00U\x00B\x00L\x00  MKTAGACTION(PUBL)
158 <EXPECT_TAG>Q\x00U\x00A\x00Y\x00  MKTAGACTION(QUAY)
159 <EXPECT_TAG>R\x00E\x00F\x00N\x00  MKTAGACTION(REFN)
160 <EXPECT_TAG>R\x00E\x00L\x00A\x00  MKTAGACTION(RELA)
161 <EXPECT_TAG>R\x00E\x00L\x00I\x00  MKTAGACTION(RELI)
162 <EXPECT_TAG>R\x00E\x00P\x00O\x00  MKTAGACTION(REPO)
163 <EXPECT_TAG>R\x00E\x00S\x00I\x00  MKTAGACTION(RESI)
164 <EXPECT_TAG>R\x00E\x00S\x00N\x00  MKTAGACTION(RESN)
165 <EXPECT_TAG>R\x00E\x00T\x00I\x00  MKTAGACTION(RETI)
166 <EXPECT_TAG>R\x00F\x00N\x00   MKTAGACTION(RFN)
167 <EXPECT_TAG>R\x00I\x00N\x00   MKTAGACTION(RIN)
168 <EXPECT_TAG>R\x00O\x00L\x00E\x00  MKTAGACTION(ROLE)
169 <EXPECT_TAG>S\x00E\x00X\x00   MKTAGACTION(SEX)
170 <EXPECT_TAG>S\x00L\x00G\x00C\x00  MKTAGACTION(SLGC)
171 <EXPECT_TAG>S\x00L\x00G\x00S\x00  MKTAGACTION(SLGS)
172 <EXPECT_TAG>S\x00O\x00U\x00R\x00  MKTAGACTION(SOUR)
173 <EXPECT_TAG>S\x00P\x00F\x00X\x00  MKTAGACTION(SPFX)
174 <EXPECT_TAG>S\x00S\x00N\x00   MKTAGACTION(SSN)
175 <EXPECT_TAG>S\x00T\x00A\x00E\x00  MKTAGACTION(STAE)
176 <EXPECT_TAG>S\x00T\x00A\x00T\x00  MKTAGACTION(STAT)
177 <EXPECT_TAG>S\x00U\x00B\x00M\x00  MKTAGACTION(SUBM)
178 <EXPECT_TAG>S\x00U\x00B\x00N\x00  MKTAGACTION(SUBN)
179 <EXPECT_TAG>S\x00U\x00R\x00N\x00  MKTAGACTION(SURN)
180 <EXPECT_TAG>T\x00E\x00M\x00P\x00  MKTAGACTION(TEMP)
181 <EXPECT_TAG>T\x00E\x00X\x00T\x00  MKTAGACTION(TEXT)
182 <EXPECT_TAG>T\x00I\x00M\x00E\x00  MKTAGACTION(TIME)
183 <EXPECT_TAG>T\x00I\x00T\x00L\x00  MKTAGACTION(TITL)
184 <EXPECT_TAG>T\x00R\x00L\x00R\x00  MKTAGACTION(TRLR)
185 <EXPECT_TAG>T\x00Y\x00P\x00E\x00  MKTAGACTION(TYPE)
186 <EXPECT_TAG>V\x00E\x00R\x00S\x00  MKTAGACTION(VERS)
187 <EXPECT_TAG>W\x00I\x00F\x00E\x00  MKTAGACTION(WIFE)
188 <EXPECT_TAG>W\x00I\x00L\x00L\x00  MKTAGACTION(WILL)
189      
190 <EXPECT_TAG>{alphanum}+  ACTION_ALPHANUM
191
192 {delim}                  ACTION_DELIM
193
194 {any_but_delim}          ACTION_ANY
195
196 {escape}/{non_at}        ACTION_ESCAPE
197
198 {pointer}                ACTION_POINTER
199
200 {gen_delim}*{terminator} ACTION_TERMINATOR
201
202 <<EOF>>                  ACTION_EOF
203
204 .                        ACTION_UNEXPECTED
205
206 %%
207
208 int yywrap()
209 {
210   return 1;
211 }
212
213 #ifdef LEXER_TEST
214 int gedcom_lex()
215 {
216   return gedcom_lohi_lex();
217 }
218
219 int main()
220 {
221   return test_loop(TWO_BYTE_LOHI, "UNICODE");
222 }
223 #endif