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. *
6 (C) 2001 by The Genes Development Team
7 Original author: Peter Verthez (Peter.Verthez@advalvas.be)
13 /* In high-low order, a space is encoded as 0x00 0x20 */
14 /* i.e. this is utf-16-be */
17 #undef IN_LEX /* include only a specific part of the following file */
18 #include "gedcom_lex_common.c"
30 otherchar \x00[\x21-\x22\x24-\x2F\x3A-\x3F\x5B-\x5E\x60\x7B-\x7E\x80-\xFF]|[\x01-\xFF][\x00-\xFF]
31 terminator \x00\x0D|\x00\x0A|\x00\x0D\x00\x0A|\x00\x0A\x00\x0D
33 any_char {alpha}|{digit}|{otherchar}|{delim}|{hash}|{literal_at}
34 any_but_delim {alpha}|{digit}|{otherchar}|{hash}|{literal_at}
35 non_at {alpha}|{digit}|{otherchar}|{delim}|{hash}
36 alphanum {alpha}|{digit}
37 gen_delim {delim}|{tab}
39 escape \x00@\x00#{any_char}+\x00@
40 pointer \x00@{alphanum}{non_at}+\x00@
45 #define IN_LEX /* include only a specific part of the following file */
46 #include "gedcom_lex_common.c"
52 <INITIAL>{gen_delim}* /* ignore leading whitespace (also tabs) */
54 <INITIAL>\x00[0]{digit}+ ACTION_0_DIGITS
56 <INITIAL>{digit}+ ACTION_DIGITS
58 <EXPECT_TAG>\x00A\x00B\x00B\x00R MKTAGACTION(ABBR)
59 <EXPECT_TAG>\x00A\x00D\x00D\x00R MKTAGACTION(ADDR)
60 <EXPECT_TAG>\x00A\x00D\x00R\x001 MKTAGACTION(ADR1)
61 <EXPECT_TAG>\x00A\x00D\x00R\x002 MKTAGACTION(ADR2)
62 <EXPECT_TAG>\x00A\x00D\x00O\x00P MKTAGACTION(ADOP)
63 <EXPECT_TAG>\x00A\x00F\x00N MKTAGACTION(AFN)
64 <EXPECT_TAG>\x00A\x00G\x00E MKTAGACTION(AGE)
65 <EXPECT_TAG>\x00A\x00G\x00N\x00C MKTAGACTION(AGNC)
66 <EXPECT_TAG>\x00A\x00L\x00I\x00A MKTAGACTION(ALIA)
67 <EXPECT_TAG>\x00A\x00N\x00C\x00E MKTAGACTION(ANCE)
68 <EXPECT_TAG>\x00A\x00N\x00C\x00I MKTAGACTION(ANCI)
69 <EXPECT_TAG>\x00A\x00N\x00U\x00L MKTAGACTION(ANUL)
70 <EXPECT_TAG>\x00A\x00S\x00S\x00O MKTAGACTION(ASSO)
71 <EXPECT_TAG>\x00A\x00U\x00T\x00H MKTAGACTION(AUTH)
72 <EXPECT_TAG>\x00B\x00A\x00P\x00L MKTAGACTION(BAPL)
73 <EXPECT_TAG>\x00B\x00A\x00P\x00M MKTAGACTION(BAPM)
74 <EXPECT_TAG>\x00B\x00A\x00R\x00M MKTAGACTION(BARM)
75 <EXPECT_TAG>\x00B\x00A\x00S\x00M MKTAGACTION(BASM)
76 <EXPECT_TAG>\x00B\x00I\x00R\x00T MKTAGACTION(BIRT)
77 <EXPECT_TAG>\x00B\x00L\x00E\x00S MKTAGACTION(BLES)
78 <EXPECT_TAG>\x00B\x00L\x00O\x00B MKTAGACTION(BLOB)
79 <EXPECT_TAG>\x00B\x00U\x00R\x00I MKTAGACTION(BURI)
80 <EXPECT_TAG>\x00C\x00A\x00L\x00N MKTAGACTION(CALN)
81 <EXPECT_TAG>\x00C\x00A\x00S\x00T MKTAGACTION(CAST)
82 <EXPECT_TAG>\x00C\x00A\x00U\x00S MKTAGACTION(CAUS)
83 <EXPECT_TAG>\x00C\x00E\x00N\x00S MKTAGACTION(CENS)
84 <EXPECT_TAG>\x00C\x00H\x00A\x00N MKTAGACTION(CHAN)
85 <EXPECT_TAG>\x00C\x00H\x00A\x00R MKTAGACTION(CHAR)
86 <EXPECT_TAG>\x00C\x00H\x00I\x00L MKTAGACTION(CHIL)
87 <EXPECT_TAG>\x00C\x00H\x00R MKTAGACTION(CHR)
88 <EXPECT_TAG>\x00C\x00H\x00R\x00A MKTAGACTION(CHRA)
89 <EXPECT_TAG>\x00C\x00I\x00T\x00Y MKTAGACTION(CITY)
90 <EXPECT_TAG>\x00C\x00O\x00N\x00C MKTAGACTION(CONC)
91 <EXPECT_TAG>\x00C\x00O\x00N\x00F MKTAGACTION(CONF)
92 <EXPECT_TAG>\x00C\x00O\x00N\x00L MKTAGACTION(CONL)
93 <EXPECT_TAG>\x00C\x00O\x00N\x00T MKTAGACTION(CONT)
94 <EXPECT_TAG>\x00C\x00O\x00P\x00R MKTAGACTION(COPR)
95 <EXPECT_TAG>\x00C\x00O\x00R\x00P MKTAGACTION(CORP)
96 <EXPECT_TAG>\x00C\x00R\x00E\x00M MKTAGACTION(CREM)
97 <EXPECT_TAG>\x00C\x00T\x00R\x00Y MKTAGACTION(CTRY)
98 <EXPECT_TAG>\x00D\x00A\x00T\x00A MKTAGACTION(DATA)
99 <EXPECT_TAG>\x00D\x00A\x00T\x00E MKTAGACTION(DATE)
100 <EXPECT_TAG>\x00D\x00E\x00A\x00T MKTAGACTION(DEAT)
101 <EXPECT_TAG>\x00D\x00E\x00S\x00C MKTAGACTION(DESC)
102 <EXPECT_TAG>\x00D\x00E\x00S\x00I MKTAGACTION(DESI)
103 <EXPECT_TAG>\x00D\x00E\x00S\x00T MKTAGACTION(DEST)
104 <EXPECT_TAG>\x00D\x00I\x00V MKTAGACTION(DIV)
105 <EXPECT_TAG>\x00D\x00I\x00V\x00F MKTAGACTION(DIVF)
106 <EXPECT_TAG>\x00D\x00S\x00C\x00R MKTAGACTION(DSCR)
107 <EXPECT_TAG>\x00E\x00D\x00U\x00C MKTAGACTION(EDUC)
108 <EXPECT_TAG>\x00E\x00M\x00I\x00G MKTAGACTION(EMIG)
109 <EXPECT_TAG>\x00E\x00N\x00D\x00L MKTAGACTION(ENDL)
110 <EXPECT_TAG>\x00E\x00N\x00G\x00A MKTAGACTION(ENGA)
111 <EXPECT_TAG>\x00E\x00V\x00E\x00N MKTAGACTION(EVEN)
112 <EXPECT_TAG>\x00F\x00A\x00M MKTAGACTION(FAM)
113 <EXPECT_TAG>\x00F\x00A\x00M\x00C MKTAGACTION(FAMC)
114 <EXPECT_TAG>\x00F\x00A\x00M\x00F MKTAGACTION(FAMF)
115 <EXPECT_TAG>\x00F\x00A\x00M\x00S MKTAGACTION(FAMS)
116 <EXPECT_TAG>\x00F\x00C\x00O\x00M MKTAGACTION(FCOM)
117 <EXPECT_TAG>\x00F\x00I\x00L\x00E MKTAGACTION(FILE)
118 <EXPECT_TAG>\x00F\x00O\x00R\x00M MKTAGACTION(FORM)
119 <EXPECT_TAG>\x00G\x00E\x00D\x00C MKTAGACTION(GEDC)
120 <EXPECT_TAG>\x00G\x00I\x00V\x00N MKTAGACTION(GIVN)
121 <EXPECT_TAG>\x00G\x00R\x00A\x00D MKTAGACTION(GRAD)
122 <EXPECT_TAG>\x00H\x00E\x00A\x00D MKTAGACTION(HEAD)
123 <EXPECT_TAG>\x00H\x00U\x00S\x00B MKTAGACTION(HUSB)
124 <EXPECT_TAG>\x00I\x00D\x00N\x00O MKTAGACTION(IDNO)
125 <EXPECT_TAG>\x00I\x00M\x00M\x00I MKTAGACTION(IMMI)
126 <EXPECT_TAG>\x00I\x00N\x00D\x00I MKTAGACTION(INDI)
127 <EXPECT_TAG>\x00L\x00A\x00N\x00G MKTAGACTION(LANG)
128 <EXPECT_TAG>\x00L\x00E\x00G\x00A MKTAGACTION(LEGA)
129 <EXPECT_TAG>\x00M\x00A\x00R\x00B MKTAGACTION(MARB)
130 <EXPECT_TAG>\x00M\x00A\x00R\x00C MKTAGACTION(MARC)
131 <EXPECT_TAG>\x00M\x00A\x00R\x00L MKTAGACTION(MARL)
132 <EXPECT_TAG>\x00M\x00A\x00R\x00R MKTAGACTION(MARR)
133 <EXPECT_TAG>\x00M\x00A\x00R\x00S MKTAGACTION(MARS)
134 <EXPECT_TAG>\x00M\x00E\x00D\x00I MKTAGACTION(MEDI)
135 <EXPECT_TAG>\x00N\x00A\x00M\x00E MKTAGACTION(NAME)
136 <EXPECT_TAG>\x00N\x00A\x00T\x00I MKTAGACTION(NATI)
137 <EXPECT_TAG>\x00N\x00A\x00T\x00U MKTAGACTION(NATU)
138 <EXPECT_TAG>\x00N\x00C\x00H\x00I MKTAGACTION(NCHI)
139 <EXPECT_TAG>\x00N\x00I\x00C\x00K MKTAGACTION(NICK)
140 <EXPECT_TAG>\x00N\x00M\x00R MKTAGACTION(NMR)
141 <EXPECT_TAG>\x00N\x00O\x00T\x00E MKTAGACTION(NOTE)
142 <EXPECT_TAG>\x00N\x00P\x00F\x00X MKTAGACTION(NPFX)
143 <EXPECT_TAG>\x00N\x00S\x00F\x00X MKTAGACTION(NSFX)
144 <EXPECT_TAG>\x00O\x00B\x00J\x00E MKTAGACTION(OBJE)
145 <EXPECT_TAG>\x00O\x00C\x00C\x00U MKTAGACTION(OCCU)
146 <EXPECT_TAG>\x00O\x00R\x00D\x00I MKTAGACTION(ORDI)
147 <EXPECT_TAG>\x00O\x00R\x00D\x00N MKTAGACTION(ORDN)
148 <EXPECT_TAG>\x00P\x00A\x00G\x00E MKTAGACTION(PAGE)
149 <EXPECT_TAG>\x00P\x00E\x00D\x00I MKTAGACTION(PEDI)
150 <EXPECT_TAG>\x00P\x00H\x00O\x00N MKTAGACTION(PHON)
151 <EXPECT_TAG>\x00P\x00L\x00A\x00C MKTAGACTION(PLAC)
152 <EXPECT_TAG>\x00P\x00O\x00S\x00T MKTAGACTION(POST)
153 <EXPECT_TAG>\x00P\x00R\x00O\x00B MKTAGACTION(PROB)
154 <EXPECT_TAG>\x00P\x00R\x00O\x00P MKTAGACTION(PROP)
155 <EXPECT_TAG>\x00P\x00U\x00B\x00L MKTAGACTION(PUBL)
156 <EXPECT_TAG>\x00Q\x00U\x00A\x00Y MKTAGACTION(QUAY)
157 <EXPECT_TAG>\x00R\x00E\x00F\x00N MKTAGACTION(REFN)
158 <EXPECT_TAG>\x00R\x00E\x00L\x00A MKTAGACTION(RELA)
159 <EXPECT_TAG>\x00R\x00E\x00L\x00I MKTAGACTION(RELI)
160 <EXPECT_TAG>\x00R\x00E\x00P\x00O MKTAGACTION(REPO)
161 <EXPECT_TAG>\x00R\x00E\x00S\x00I MKTAGACTION(RESI)
162 <EXPECT_TAG>\x00R\x00E\x00S\x00N MKTAGACTION(RESN)
163 <EXPECT_TAG>\x00R\x00E\x00T\x00I MKTAGACTION(RETI)
164 <EXPECT_TAG>\x00R\x00F\x00N MKTAGACTION(RFN)
165 <EXPECT_TAG>\x00R\x00I\x00N MKTAGACTION(RIN)
166 <EXPECT_TAG>\x00R\x00O\x00L\x00E MKTAGACTION(ROLE)
167 <EXPECT_TAG>\x00S\x00E\x00X MKTAGACTION(SEX)
168 <EXPECT_TAG>\x00S\x00L\x00G\x00C MKTAGACTION(SLGC)
169 <EXPECT_TAG>\x00S\x00L\x00G\x00S MKTAGACTION(SLGS)
170 <EXPECT_TAG>\x00S\x00O\x00U\x00R MKTAGACTION(SOUR)
171 <EXPECT_TAG>\x00S\x00P\x00F\x00X MKTAGACTION(SPFX)
172 <EXPECT_TAG>\x00S\x00S\x00N MKTAGACTION(SSN)
173 <EXPECT_TAG>\x00S\x00T\x00A\x00E MKTAGACTION(STAE)
174 <EXPECT_TAG>\x00S\x00T\x00A\x00T MKTAGACTION(STAT)
175 <EXPECT_TAG>\x00S\x00U\x00B\x00M MKTAGACTION(SUBM)
176 <EXPECT_TAG>\x00S\x00U\x00B\x00N MKTAGACTION(SUBN)
177 <EXPECT_TAG>\x00S\x00U\x00R\x00N MKTAGACTION(SURN)
178 <EXPECT_TAG>\x00T\x00E\x00M\x00P MKTAGACTION(TEMP)
179 <EXPECT_TAG>\x00T\x00E\x00X\x00T MKTAGACTION(TEXT)
180 <EXPECT_TAG>\x00T\x00I\x00M\x00E MKTAGACTION(TIME)
181 <EXPECT_TAG>\x00T\x00I\x00T\x00L MKTAGACTION(TITL)
182 <EXPECT_TAG>\x00T\x00R\x00L\x00R MKTAGACTION(TRLR)
183 <EXPECT_TAG>\x00T\x00Y\x00P\x00E MKTAGACTION(TYPE)
184 <EXPECT_TAG>\x00V\x00E\x00R\x00S MKTAGACTION(VERS)
185 <EXPECT_TAG>\x00W\x00I\x00F\x00E MKTAGACTION(WIFE)
186 <EXPECT_TAG>\x00W\x00I\x00L\x00L MKTAGACTION(WILL)
188 <EXPECT_TAG>{alphanum}+ ACTION_ALPHANUM
192 {any_but_delim} ACTION_ANY
194 {escape}/{non_at} ACTION_ESCAPE
196 {pointer} ACTION_POINTER
198 {gen_delim}*{terminator} ACTION_TERMINATOR
214 return gedcom_hilo_lex();
219 return test_loop(TWO_BYTE_HILO, "UNICODE");