2 Copyright (C) 2001,2002 The Genes Development Team
3 This file is part of the Gedcom parser library.
4 Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
6 The Gedcom parser library is free software; you can redistribute it
7 and/or modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The Gedcom parser library is distributed in the hope that it will be
12 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the Gedcom parser library; if not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
25 #include "gedcom.tabgen.h"
26 #include "tag_names.h"
31 OPT_CONT_AS_CONC = 0x04
41 struct tag_data tag_data[NR_OF_ELTS] =
44 { "REC_HEAD", TAG_HEAD, GV_NULL, 0 },
47 { "REC_FAM", TAG_FAM, GV_NULL, 0 },
50 { "REC_INDI", TAG_INDI, GV_NULL, 0 },
53 { "REC_OBJE", TAG_OBJE, GV_NULL, 0 },
56 { "REC_NOTE", TAG_NOTE, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
59 { "REC_REPO", TAG_REPO, GV_NULL, 0 },
62 { "REC_SOUR", TAG_SOUR, GV_NULL, 0 },
65 { "REC_SUBN", TAG_SUBN, GV_NULL, 0 },
68 { "REC_SUBM", TAG_SUBM, GV_NULL, 0 },
71 { "REC_USER", 0, GV_NULL | GV_CHAR_PTR | GV_XREF_PTR, 0 },
74 { "ELT_HEAD_SOUR", TAG_SOUR, GV_CHAR_PTR, 0 },
76 /* ELT_HEAD_SOUR_VERS */
77 { "ELT_HEAD_SOUR_VERS", TAG_VERS, GV_CHAR_PTR, 0 },
79 /* ELT_HEAD_SOUR_NAME */
80 { "ELT_HEAD_SOUR_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
82 /* ELT_HEAD_SOUR_CORP */
83 { "ELT_HEAD_SOUR_CORP", TAG_CORP, GV_CHAR_PTR, 0 },
85 /* ELT_HEAD_SOUR_DATA */
86 { "ELT_HEAD_SOUR_DATA", TAG_DATA, GV_CHAR_PTR, 0 },
88 /* ELT_HEAD_SOUR_DATA_DATE */
89 { "ELT_HEAD_SOUR_DATA_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
91 /* ELT_HEAD_SOUR_DATA_COPR */
92 { "ELT_HEAD_SOUR_DATA_COPR", TAG_COPR, GV_CHAR_PTR, 0 },
95 { "ELT_HEAD_DEST", TAG_DEST, GV_CHAR_PTR, 0 },
98 { "ELT_HEAD_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
100 /* ELT_HEAD_DATE_TIME */
101 { "ELT_HEAD_DATE_TIME", TAG_TIME, GV_CHAR_PTR, 0 },
104 { "ELT_HEAD_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
107 { "ELT_HEAD_SUBN", TAG_SUBN, GV_XREF_PTR, 0 },
110 { "ELT_HEAD_FILE", TAG_FILE, GV_CHAR_PTR, 0 },
113 { "ELT_HEAD_COPR", TAG_COPR, GV_CHAR_PTR, 0 },
116 { "ELT_HEAD_GEDC", TAG_GEDC, GV_NULL, 0 },
118 /* ELT_HEAD_GEDC_VERS */
119 { "ELT_HEAD_GEDC_VERS", TAG_VERS, GV_CHAR_PTR, 0 },
121 /* ELT_HEAD_GEDC_FORM */
122 { "ELT_HEAD_GEDC_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
125 { "ELT_HEAD_CHAR", TAG_CHAR, GV_CHAR_PTR, 0 },
127 /* ELT_HEAD_CHAR_VERS */
128 { "ELT_HEAD_CHAR_VERS", TAG_VERS, GV_CHAR_PTR, 0 },
131 { "ELT_HEAD_LANG", TAG_LANG, GV_CHAR_PTR, 0 },
134 { "ELT_HEAD_PLAC", TAG_PLAC, GV_NULL, 0 },
136 /* ELT_HEAD_PLAC_FORM */
137 { "ELT_HEAD_PLAC_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
140 { "ELT_HEAD_NOTE", TAG_NOTE, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
143 { "ELT_FAM_HUSB", TAG_HUSB, GV_XREF_PTR, 0 },
146 { "ELT_FAM_WIFE", TAG_WIFE, GV_XREF_PTR, 0 },
149 { "ELT_FAM_CHIL", TAG_CHIL, GV_XREF_PTR, 0 },
152 { "ELT_FAM_NCHI", TAG_NCHI, GV_CHAR_PTR, 0 },
155 { "ELT_FAM_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
158 { "ELT_INDI_RESN", TAG_RESN, GV_CHAR_PTR, 0 },
161 { "ELT_INDI_SEX", TAG_SEX, GV_CHAR_PTR, 0 },
164 { "ELT_INDI_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
167 { "ELT_INDI_ALIA", TAG_ALIA, GV_XREF_PTR, 0 },
170 { "ELT_INDI_ANCI", TAG_ANCI, GV_XREF_PTR, 0 },
173 { "ELT_INDI_DESI", TAG_DESI, GV_XREF_PTR, 0 },
176 { "ELT_INDI_RFN", TAG_RFN, GV_CHAR_PTR, 0 },
179 { "ELT_INDI_AFN", TAG_AFN, GV_CHAR_PTR, 0 },
182 { "ELT_OBJE_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
185 { "ELT_OBJE_TITL", TAG_TITL, GV_CHAR_PTR, 0 },
188 { "ELT_OBJE_BLOB", TAG_BLOB, GV_NULL, OPT_CONT_AS_CONC },
190 /* ELT_OBJE_BLOB_CONT */
191 { "ELT_OBJE_BLOB_CONT", TAG_CONT, GV_CHAR_PTR, 0 },
194 { "ELT_OBJE_OBJE", TAG_OBJE, GV_XREF_PTR, 0 },
197 { "ELT_REPO_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
200 { "ELT_SOUR_DATA", TAG_DATA, GV_NULL, 0 },
202 /* ELT_SOUR_DATA_EVEN */
203 { "ELT_SOUR_DATA_EVEN", TAG_EVEN, GV_CHAR_PTR, 0 },
205 /* ELT_SOUR_DATA_EVEN_DATE */
206 { "ELT_SOUR_DATA_EVEN_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
208 /* ELT_SOUR_DATA_EVEN_PLAC */
209 { "ELT_SOUR_DATA_EVEN_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
211 /* ELT_SOUR_DATA_AGNC */
212 { "ELT_SOUR_DATA_AGNC", TAG_AGNC, GV_CHAR_PTR, 0 },
215 { "ELT_SOUR_AUTH", TAG_AUTH, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
218 { "ELT_SOUR_TITL", TAG_TITL, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
221 { "ELT_SOUR_ABBR", TAG_ABBR, GV_CHAR_PTR, 0 },
224 { "ELT_SOUR_PUBL", TAG_PUBL, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
227 { "ELT_SOUR_TEXT", TAG_TEXT, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
230 { "ELT_SUBN_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
233 { "ELT_SUBN_FAMF", TAG_FAMF, GV_CHAR_PTR, 0 },
236 { "ELT_SUBN_TEMP", TAG_TEMP, GV_CHAR_PTR, 0 },
239 { "ELT_SUBN_ANCE", TAG_ANCE, GV_CHAR_PTR, 0 },
242 { "ELT_SUBN_DESC", TAG_DESC, GV_CHAR_PTR, 0 },
245 { "ELT_SUBN_ORDI", TAG_ORDI, GV_CHAR_PTR, 0 },
248 { "ELT_SUBN_RIN", TAG_RIN, GV_CHAR_PTR, 0 },
251 { "ELT_SUBM_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
254 { "ELT_SUBM_LANG", TAG_LANG, GV_CHAR_PTR, 0 },
257 { "ELT_SUBM_RFN", TAG_RFN, GV_CHAR_PTR, 0 },
260 { "ELT_SUBM_RIN", TAG_RIN, GV_CHAR_PTR, 0 },
263 { "ELT_SUB_ADDR", TAG_ADDR, GV_CHAR_PTR, OPT_CONT },
265 /* ELT_SUB_ADDR_CONT */
266 { "ELT_SUB_ADDR_CONT", TAG_CONT, GV_CHAR_PTR, 0 },
268 /* ELT_SUB_ADDR_ADR1 */
269 { "ELT_SUB_ADDR_ADR1", TAG_ADR1, GV_CHAR_PTR, 0 },
271 /* ELT_SUB_ADDR_ADR2 */
272 { "ELT_SUB_ADDR_ADR2", TAG_ADR2, GV_CHAR_PTR, 0 },
274 /* ELT_SUB_ADDR_CITY */
275 { "ELT_SUB_ADDR_CITY", TAG_CITY, GV_CHAR_PTR, 0 },
277 /* ELT_SUB_ADDR_STAE */
278 { "ELT_SUB_ADDR_STAE", TAG_STAE, GV_CHAR_PTR, 0 },
280 /* ELT_SUB_ADDR_POST */
281 { "ELT_SUB_ADDR_POST", TAG_POST, GV_CHAR_PTR, 0 },
283 /* ELT_SUB_ADDR_CTRY */
284 { "ELT_SUB_ADDR_CTRY", TAG_CTRY, GV_CHAR_PTR, 0 },
287 { "ELT_SUB_PHON", TAG_PHON, GV_CHAR_PTR, 0 },
290 { "ELT_SUB_ASSO", TAG_ASSO, GV_XREF_PTR, 0 },
292 /* ELT_SUB_ASSO_TYPE */
293 { "ELT_SUB_ASSO_TYPE", TAG_TYPE, GV_CHAR_PTR, 0 },
295 /* ELT_SUB_ASSO_RELA */
296 { "ELT_SUB_ASSO_RELA", TAG_RELA, GV_CHAR_PTR, 0 },
299 { "ELT_SUB_CHAN", TAG_CHAN, GV_NULL, 0 },
301 /* ELT_SUB_CHAN_DATE */
302 { "ELT_SUB_CHAN_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
304 /* ELT_SUB_CHAN_TIME */
305 { "ELT_SUB_CHAN_TIME", TAG_TIME, GV_CHAR_PTR, 0 },
308 { "ELT_SUB_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
310 /* ELT_SUB_FAMC_PEDI */
311 { "ELT_SUB_FAMC_PEDI", TAG_PEDI, GV_CHAR_PTR, 0 },
314 { "ELT_SUB_CONT", TAG_CONT, GV_CHAR_PTR, 0 },
317 { "ELT_SUB_CONC", TAG_CONC, GV_CHAR_PTR, 0 },
319 /* ELT_SUB_EVT_TYPE */
320 { "ELT_SUB_EVT_TYPE", TAG_TYPE, GV_CHAR_PTR, 0 },
322 /* ELT_SUB_EVT_DATE */
323 { "ELT_SUB_EVT_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
325 /* ELT_SUB_EVT_AGE */
326 { "ELT_SUB_EVT_AGE", TAG_AGE, GV_AGE_VALUE, 0 },
328 /* ELT_SUB_EVT_AGNC */
329 { "ELT_SUB_EVT_AGNC", TAG_AGNC, GV_CHAR_PTR, 0 },
331 /* ELT_SUB_EVT_CAUS */
332 { "ELT_SUB_EVT_CAUS", TAG_CAUS, GV_CHAR_PTR, 0 },
334 /* ELT_SUB_FAM_EVT */
335 { "ELT_SUB_FAM_EVT", 0, GV_NULL | GV_CHAR_PTR, 0 },
337 /* ELT_SUB_FAM_EVT_HUSB */
338 { "ELT_SUB_FAM_EVT_HUSB", TAG_HUSB, GV_NULL, 0 },
340 /* ELT_SUB_FAM_EVT_WIFE */
341 { "ELT_SUB_FAM_EVT_WIFE", TAG_WIFE, GV_NULL, 0 },
343 /* ELT_SUB_FAM_EVT_AGE */
344 { "ELT_SUB_FAM_EVT_AGE", TAG_AGE, GV_AGE_VALUE, 0 },
346 /* ELT_SUB_FAM_EVT_EVEN */
347 { "ELT_SUB_FAM_EVT_EVEN", TAG_EVEN, GV_NULL, 0 },
349 /* ELT_SUB_IDENT_REFN */
350 { "ELT_SUB_IDENT_REFN", TAG_REFN, GV_CHAR_PTR, 0 },
352 /* ELT_SUB_IDENT_REFN_TYPE */
353 { "ELT_SUB_IDENT_REFN_TYPE", TAG_TYPE, GV_CHAR_PTR, 0 },
355 /* ELT_SUB_IDENT_RIN */
356 { "ELT_SUB_IDENT_RIN", TAG_RIN, GV_CHAR_PTR, 0 },
358 /* ELT_SUB_INDIV_ATTR */
359 { "ELT_SUB_INDIV_ATTR", 0, GV_CHAR_PTR, 0 },
361 /* ELT_SUB_INDIV_RESI */
362 { "ELT_SUB_INDIV_RESI", TAG_RESI, GV_NULL, 0 },
364 /* ELT_SUB_INDIV_BIRT */
365 { "ELT_SUB_INDIV_BIRT", 0, GV_NULL | GV_CHAR_PTR, 0 },
367 /* ELT_SUB_INDIV_BIRT_FAMC */
368 { "ELT_SUB_INDIV_BIRT_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
370 /* ELT_SUB_INDIV_GEN */
371 { "ELT_SUB_INDIV_GEN", 0, GV_NULL | GV_CHAR_PTR, 0 },
373 /* ELT_SUB_INDIV_ADOP */
374 { "ELT_SUB_INDIV_ADOP", TAG_ADOP, GV_NULL | GV_CHAR_PTR, 0 },
376 /* ELT_SUB_INDIV_ADOP_FAMC */
377 { "ELT_SUB_INDIV_ADOP_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
379 /* ELT_SUB_INDIV_ADOP_FAMC_ADOP */
380 { "ELT_SUB_INDIV_ADOP_FAMC_ADOP", TAG_ADOP, GV_CHAR_PTR, 0 },
382 /* ELT_SUB_INDIV_EVEN */
383 { "ELT_SUB_INDIV_EVEN", TAG_EVEN, GV_NULL, 0 },
385 /* ELT_SUB_LIO_BAPL */
386 { "ELT_SUB_LIO_BAPL", 0, GV_NULL, 0 },
388 /* ELT_SUB_LIO_BAPL_STAT */
389 { "ELT_SUB_LIO_BAPL_STAT", TAG_STAT, GV_CHAR_PTR, 0 },
391 /* ELT_SUB_LIO_BAPL_DATE */
392 { "ELT_SUB_LIO_BAPL_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
394 /* ELT_SUB_LIO_BAPL_TEMP */
395 { "ELT_SUB_LIO_BAPL_TEMP", TAG_TEMP, GV_CHAR_PTR, 0 },
397 /* ELT_SUB_LIO_BAPL_PLAC */
398 { "ELT_SUB_LIO_BAPL_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
400 /* ELT_SUB_LIO_SLGC */
401 { "ELT_SUB_LIO_SLGC", TAG_SLGC, GV_NULL, 0 },
403 /* ELT_SUB_LIO_SLGC_FAMC */
404 { "ELT_SUB_LIO_SLGC_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
406 /* ELT_SUB_LSS_SLGS */
407 { "ELT_SUB_LSS_SLGS", TAG_SLGS, GV_NULL, 0 },
409 /* ELT_SUB_LSS_SLGS_STAT */
410 { "ELT_SUB_LSS_SLGS_STAT", TAG_STAT, GV_CHAR_PTR, 0 },
412 /* ELT_SUB_LSS_SLGS_DATE */
413 { "ELT_SUB_LSS_SLGS_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
415 /* ELT_SUB_LSS_SLGS_TEMP */
416 { "ELT_SUB_LSS_SLGS_TEMP", TAG_TEMP, GV_CHAR_PTR, 0 },
418 /* ELT_SUB_LSS_SLGS_PLAC */
419 { "ELT_SUB_LSS_SLGS_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
421 /* ELT_SUB_MULTIM_OBJE */
422 { "ELT_SUB_MULTIM_OBJE", TAG_OBJE, GV_NULL | GV_XREF_PTR, 0 },
424 /* ELT_SUB_MULTIM_OBJE_FORM */
425 { "ELT_SUB_MULTIM_OBJE_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
427 /* ELT_SUB_MULTIM_OBJE_TITL */
428 { "ELT_SUB_MULTIM_OBJE_TITL", TAG_TITL, GV_CHAR_PTR, 0 },
430 /* ELT_SUB_MULTIM_OBJE_FILE */
431 { "ELT_SUB_MULTIM_OBJE_FILE", TAG_FILE, GV_CHAR_PTR, 0 },
434 { "ELT_SUB_NOTE", TAG_NOTE, GV_NULL | GV_CHAR_PTR | GV_XREF_PTR,
435 OPT_CONT | OPT_CONC },
437 /* ELT_SUB_PERS_NAME */
438 { "ELT_SUB_PERS_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
440 /* ELT_SUB_PERS_NAME_NPFX */
441 { "ELT_SUB_PERS_NAME_NPFX", TAG_NPFX, GV_CHAR_PTR, 0 },
443 /* ELT_SUB_PERS_NAME_GIVN */
444 { "ELT_SUB_PERS_NAME_GIVN", TAG_GIVN, GV_CHAR_PTR, 0 },
446 /* ELT_SUB_PERS_NAME_NICK */
447 { "ELT_SUB_PERS_NAME_NICK", TAG_NICK, GV_CHAR_PTR, 0 },
449 /* ELT_SUB_PERS_NAME_SPFX */
450 { "ELT_SUB_PERS_NAME_SPFX", TAG_SPFX, GV_CHAR_PTR, 0 },
452 /* ELT_SUB_PERS_NAME_SURN */
453 { "ELT_SUB_PERS_NAME_SURN", TAG_SURN, GV_CHAR_PTR, 0 },
455 /* ELT_SUB_PERS_NAME_NSFX */
456 { "ELT_SUB_PERS_NAME_NSFX", TAG_NSFX, GV_CHAR_PTR, 0 },
459 { "ELT_SUB_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
461 /* ELT_SUB_PLAC_FORM */
462 { "ELT_SUB_PLAC_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
465 { "ELT_SUB_SOUR", TAG_SOUR, GV_CHAR_PTR | GV_XREF_PTR, OPT_CONT | OPT_CONC },
467 /* ELT_SUB_SOUR_PAGE */
468 { "ELT_SUB_SOUR_PAGE", TAG_PAGE, GV_CHAR_PTR, 0 },
470 /* ELT_SUB_SOUR_EVEN */
471 { "ELT_SUB_SOUR_EVEN", TAG_EVEN, GV_CHAR_PTR, 0 },
473 /* ELT_SUB_SOUR_EVEN_ROLE */
474 { "ELT_SUB_SOUR_EVEN_ROLE", TAG_ROLE, GV_CHAR_PTR, 0 },
476 /* ELT_SUB_SOUR_DATA */
477 { "ELT_SUB_SOUR_DATA", TAG_DATA, GV_NULL, 0 },
479 /* ELT_SUB_SOUR_DATA_DATE */
480 { "ELT_SUB_SOUR_DATA_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
482 /* ELT_SUB_SOUR_TEXT */
483 { "ELT_SUB_SOUR_TEXT", TAG_TEXT, GV_CHAR_PTR, OPT_CONT | OPT_CONC },
485 /* ELT_SUB_SOUR_QUAY */
486 { "ELT_SUB_SOUR_QUAY", TAG_QUAY, GV_CHAR_PTR, 0 },
489 { "ELT_SUB_REPO", TAG_REPO, GV_XREF_PTR, 0 },
491 /* ELT_SUB_REPO_CALN */
492 { "ELT_SUB_REPO_CALN", TAG_CALN, GV_CHAR_PTR, 0 },
494 /* ELT_SUB_REPO_CALN_MEDI */
495 { "ELT_SUB_REPO_CALN_MEDI", TAG_MEDI, GV_CHAR_PTR, 0 },
498 { "ELT_SUB_FAMS", TAG_FAMS, GV_XREF_PTR, 0 },
501 { "ELT_USER", 0, GV_NULL | GV_CHAR_PTR | GV_XREF_PTR, 0 },