X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fgedcom_date.lex;h=50daf3f876f013c12ea9175fbfb4591aec1d8934;hb=dc8ddccc569803b5cbe00d7fa2fa53d13ada9b60;hp=5767768fdf0b76e7e97a9ac5b2bddb7bff833992;hpb=35f77ce6bd3ccc27047eda0b3ef8d74c7a86c3d7;p=gedcom-parse.git diff --git a/gedcom/gedcom_date.lex b/gedcom/gedcom_date.lex index 5767768..50daf3f 100644 --- a/gedcom/gedcom_date.lex +++ b/gedcom/gedcom_date.lex @@ -23,7 +23,7 @@ %{ #include "date.h" -#include "gedcom_date.tab.h" +#include "gedcom_date.tabgen.h" #define YY_NO_UNPUT @@ -48,6 +48,16 @@ static int token_nr = 0; gedcom_date_lval.string = buf[token_nr++]; \ return TOKEN; \ } + +#define ACTION_UNEXPECTED \ + { gedcom_date_error(_("Unexpected input")); \ + return BADTOKEN; \ + } + +#define UNKNOWN_CALENDAR_TYPE \ + { gedcom_date_error(_("Unknown calendar type")); \ + return BADTOKEN; \ + } %} [ \t]+ /* ignore whitespace between tokens */ @@ -56,6 +66,7 @@ static int token_nr = 0; @#DJULIAN@ SIMPLE_RETURN(ESC_DATE_JULN) @#DHEBREW@ SIMPLE_RETURN(ESC_DATE_HEBR) "@#DFRENCH R@" SIMPLE_RETURN(ESC_DATE_FREN) +@#.+@ UNKNOWN_CALENDAR_TYPE FROM SIMPLE_RETURN(MOD_FROM) TO SIMPLE_RETURN(MOD_TO) @@ -118,6 +129,8 @@ COMP SIMPLE_RETURN(MON_COMP) "/" SIMPLE_RETURN(SLASH) [0-9]+ SIMPLE_RETURN(NUMBER) +. ACTION_UNEXPECTED + %% int yywrap() @@ -127,7 +140,7 @@ int yywrap() static YY_BUFFER_STATE hndl; -void init_gedcom_date_lex(char* string) +void init_gedcom_date_lex(const char* string) { token_nr = 0; hndl = yy_scan_string(string);