X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fgedcom_date.lex;h=bba60ef5f4f15f36bca44e3bc025dd2f6a74a579;hb=40e4118ee4f9f8e5ed89e61dac21b6d6a43b1135;hp=50daf3f876f013c12ea9175fbfb4591aec1d8934;hpb=0a66eda71b0d2f65ee968816b48a9311c17cbf34;p=gedcom-parse.git diff --git a/gedcom/gedcom_date.lex b/gedcom/gedcom_date.lex index 50daf3f..bba60ef 100644 --- a/gedcom/gedcom_date.lex +++ b/gedcom/gedcom_date.lex @@ -133,6 +133,55 @@ COMP SIMPLE_RETURN(MON_COMP) %% +int get_date_token(const char* str) +{ + int token; + YY_BUFFER_STATE buffer; + + token_nr = 0; + yy_delete_buffer(YY_CURRENT_BUFFER); + buffer = yy_scan_string(str); + token = yylex(); + yy_delete_buffer(buffer); + return token; +} + +int get_year_tokens(const char* str, char** year1, char** year2) +{ + int token; + YY_BUFFER_STATE buffer; + + token_nr = 0; + yy_delete_buffer(YY_CURRENT_BUFFER); + buffer = yy_scan_string(str); + + token = yylex(); + switch (token) { + case NUMBER: { + *year1 = buf[token_nr - 1]; + token = yylex(); + switch (token) { + case SLASH: { + token = yylex(); + switch (token) { + case NUMBER: { + *year2 = buf[token_nr - 1]; + return 2; + } + default: return 0; + } + break; + } + case 0: return 1; + default: return 0; + } + break; + } + case 0: return 0; + default: return 0; + } +} + int yywrap() { return 1;