}
%token_table
-%expect 308
+%expect 309
%token <string> BADTOKEN
%token <number> OPEN
$<ctxt>$ = start_element(ELT_HEAD_DATE,
PARENT, $1, $3, $4,
GEDCOM_MAKE_DATE(val1, dv));
+ if (compat_mode(C_HEAD_TIME))
+ compat_save_head_date_context($<ctxt>$);
START(DATE, $1, $<ctxt>$)
}
head_date_subs
;
/* HEAD.TIME (Only for compatibility) */
-/* Just ignore the time... */
-head_time_sect : OPEN DELIM TAG_TIME opt_line_item CLOSE
- { gedcom_warning(_("Header change time lost in the compatibility"));
+head_time_sect : OPEN DELIM TAG_TIME opt_line_item
+ { if (compat_mode(C_HEAD_TIME)) {
+ $<ctxt>$ = compat_generate_head_time_start($1, $3, $4);
+ }
+ }
+ CLOSE
+ { if (compat_mode (C_HEAD_TIME)) {
+ compat_generate_head_time_end($<ctxt>5);
+ }
}
;
START(GEDC, $1, $<ctxt>$)
}
head_gedc_subs
- { CHECK2(VERS, FORM) }
+ { if (compat_mode(C_NO_GEDC_FORM) && ! CHK_COND(FORM))
+ compat_generate_gedcom_form($<ctxt>4);
+ else CHK(FORM);
+
+ CHECK1(VERS)
+ }
+
CLOSE
{ end_element(ELT_HEAD_GEDC, PARENT, $<ctxt>4,
GEDCOM_MAKE_NULL(val1));
| source_cit_sub /* 0:M */
| ident_struc_sub /* 0:1 */
| change_date_sub /* 0:1 */
+ | note_note_sect { if (!compat_mode(C_NOTE_NOTE))
+ INVALID_TAG("NOTE");
+ }
| no_std_sub
;
+/* Same actions as cont_sect, for compatibility */
+note_note_sect : OPEN DELIM TAG_NOTE opt_line_item
+ { $3.string = "CONT";
+ $3.value = TAG_CONT;
+ $<ctxt>$ = start_element(ELT_SUB_CONT,
+ PARENT, $1, $3, $4,
+ GEDCOM_MAKE_NULL_OR_STRING(val1, $4));
+ SAFE_BUF_ADDCHAR(&concat_buffer, '\n');
+ if (GEDCOM_IS_STRING(&val1))
+ safe_buf_append(&concat_buffer, $4);
+ START(CONT, $1, $<ctxt>$)
+ }
+ no_std_subs
+ { CHECK0 }
+ CLOSE
+ { end_element(ELT_SUB_CONT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
+ }
+ ;
+
/*********************************************************************/
/**** Repository record ****/
/*********************************************************************/
{ $<ctxt>$ = start_element(ELT_SUB_CONC,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ if (compat_mode(C_CONC_NEEDS_SPACE)) {
+ safe_buf_append(&concat_buffer, " ");
+ }
safe_buf_append(&concat_buffer, $4);
START(CONC, $1, $<ctxt>$)
}