From: Thibaut VARÈNE Date: 2021年8月21日 10:07:08 +0000 (+0200) Subject: ticv02: add prefixes to lexer/parser X-Git-Tag: v2.0~21 X-Git-Url: http://vcs.slashdirt.org/git/?a=commitdiff_plain;h=0906732b8bd9956fbf0392e11d804a2cf9f37c21;p=sw%2Ftic2json.git ticv02: add prefixes to lexer/parser --- diff --git a/Makefile b/Makefile index 48f3a99..634301d 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,10 @@ all: tic2json %.lex.c: %.l %.tab.h # The ideal size for the flex buffer is the length of the longest token expected, in bytes, plus a little more. - flex -DYY_BUF_SIZE=128 -o$@ $< + flex -DYY_BUF_SIZE=128 -P$*yy -o$@ $< %.tab.h %.tab.c: %.y - bison -Wno-other -d $< + bison -Wno-other -p $*yy -d $< tic2json: %: ticv02.tab.c ticv02.lex.c %.c $(CC) -DBINNAME='"$@"' -Os -Wall $^ -o $@ diff --git a/tic2json.c b/tic2json.c index eb2ee99..1a8a1da 100644 --- a/tic2json.c +++ b/tic2json.c @@ -61,7 +61,7 @@ static const char * tic_units[] = { [U_W] = "W", }; -int yylex_destroy(); +int ticv02yylex_destroy(); void make_field(struct tic_field *field, const struct tic_etiquette *etiq, char *horodate, char *data) { @@ -357,9 +357,9 @@ int main(int argc, char **argv) #endif /* !BAREBUILD */ putchar(tp.framedelims[0]); - yyparse(); + ticv02yyparse(); printf("%c\n", tp.framedelims[1]); - yylex_destroy(); + ticv02yylex_destroy(); free(etiq_en); return 0; diff --git a/ticv02.l b/ticv02.l index 183b446..18d5973 100644 --- a/ticv02.l +++ b/ticv02.l @@ -81,80 +81,80 @@ SEP \x09 /* etiquettes - mode standard */ -ADSC { crc_calc(); yylval.label = "ADSC"; return ET_ADSC; } -VTIC { crc_calc(); yylval.label = "VTIC"; return ET_VTIC; } -DATE { crc_calc(); yylval.label = "DATE"; return ET_DATE; } -NGTF { crc_calc(); yylval.label = "NGTF"; return ET_NGTF; } -LTARF { crc_calc(); yylval.label = "LTARF"; return ET_LTARF; } -EAST { crc_calc(); yylval.label = "EAST"; return ET_EAST; } -EASF01 { crc_calc(); yylval.label = "EASF01"; return ET_EASF01; } -EASF02 { crc_calc(); yylval.label = "EASF02"; return ET_EASF02; } -EASF03 { crc_calc(); yylval.label = "EASF03"; return ET_EASF03; } -EASF04 { crc_calc(); yylval.label = "EASF04"; return ET_EASF04; } -EASF05 { crc_calc(); yylval.label = "EASF05"; return ET_EASF05; } -EASF06 { crc_calc(); yylval.label = "EASF06"; return ET_EASF06; } -EASF07 { crc_calc(); yylval.label = "EASF07"; return ET_EASF07; } -EASF08 { crc_calc(); yylval.label = "EASF08"; return ET_EASF08; } -EASF09 { crc_calc(); yylval.label = "EASF09"; return ET_EASF09; } -EASF10 { crc_calc(); yylval.label = "EASF10"; return ET_EASF10; } -EASD01 { crc_calc(); yylval.label = "EASD01"; return ET_EASD01; } -EASD02 { crc_calc(); yylval.label = "EASD02"; return ET_EASD02; } -EASD03 { crc_calc(); yylval.label = "EASD03"; return ET_EASD03; } -EASD04 { crc_calc(); yylval.label = "EASD04"; return ET_EASD04; } -EAIT { crc_calc(); yylval.label = "EAIT"; return ET_EAIT; } -ERQ1 { crc_calc(); yylval.label = "ERQ1"; return ET_ERQ1; } -ERQ2 { crc_calc(); yylval.label = "ERQ2"; return ET_ERQ2; } -ERQ3 { crc_calc(); yylval.label = "ERQ3"; return ET_ERQ3; } -ERQ4 { crc_calc(); yylval.label = "ERQ4"; return ET_ERQ4; } -IRMS1 { crc_calc(); yylval.label = "IRMS1"; return ET_IRMS1; } -IRMS2 { crc_calc(); yylval.label = "IRMS2"; return ET_IRMS2; } -IRMS3 { crc_calc(); yylval.label = "IRMS3"; return ET_IRMS3; } -URMS1 { crc_calc(); yylval.label = "URMS1"; return ET_URMS1; } -URMS2 { crc_calc(); yylval.label = "URMS2"; return ET_URMS2; } -URMS3 { crc_calc(); yylval.label = "URMS3"; return ET_URMS3; } -PREF { crc_calc(); yylval.label = "PREF"; return ET_PREF; } -PCOUP { crc_calc(); yylval.label = "PCOUP"; return ET_PCOUP; } -SINSTS { crc_calc(); yylval.label = "SINSTS"; return ET_SINSTS; } -SINSTS1 { crc_calc(); yylval.label = "SINSTS1"; return ET_SINSTS1; } -SINSTS2 { crc_calc(); yylval.label = "SINSTS2"; return ET_SINSTS2; } -SINSTS3 { crc_calc(); yylval.label = "SINSTS3"; return ET_SINSTS3; } -SMAXSN { crc_calc(); yylval.label = "SMAXSN"; return ET_SMAXSN; } -SMAXSN1 { crc_calc(); yylval.label = "SMAXSN1"; return ET_SMAXSN1; } -SMAXSN2 { crc_calc(); yylval.label = "SMAXSN2"; return ET_SMAXSN2; } -SMAXSN3 { crc_calc(); yylval.label = "SMAXSN3"; return ET_SMAXSN3; } -SMAXSN-1 { crc_calc(); yylval.label = "SMAXSN-1"; return ET_SMAXSNM1; } -SMAXSN1-1 { crc_calc(); yylval.label = "SMAXSN1-1"; return ET_SMAXSN1M1; } -SMAXSN2-1 { crc_calc(); yylval.label = "SMAXSN2-1"; return ET_SMAXSN2M1; } -SMAXSN3-1 { crc_calc(); yylval.label = "SMAXSN3-1"; return ET_SMAXSN3M1; } -SINSTI { crc_calc(); yylval.label = "SINSTI"; return ET_SINSTI; } -SMAXIN { crc_calc(); yylval.label = "SMAXIN"; return ET_SMAXIN; } -SMAXIN-1 { crc_calc(); yylval.label = "SMAXIN-1"; return ET_SMAXINM1; } -CCASN { crc_calc(); yylval.label = "CCASN"; return ET_CCASN; } -CCASN-1 { crc_calc(); yylval.label = "CCASN-1"; return ET_CCASNM1; } -CCAIN { crc_calc(); yylval.label = "CCAIN"; return ET_CCAIN; } -CCAIN-1 { crc_calc(); yylval.label = "CCAIN-1"; return ET_CCAINM1; } -UMOY1 { crc_calc(); yylval.label = "UMOY1"; return ET_UMOY1; } -UMOY2 { crc_calc(); yylval.label = "UMOY2"; return ET_UMOY2; } -UMOY3 { crc_calc(); yylval.label = "UMOY3"; return ET_UMOY3; } -STGE { crc_calc(); yylval.label = "STGE"; return ET_STGE; } -DPM1 { crc_calc(); yylval.label = "DPM1"; return ET_DPM1; } -FPM1 { crc_calc(); yylval.label = "FPM1"; return ET_FPM1; } -DPM2 { crc_calc(); yylval.label = "DPM2"; return ET_DPM2; } -FPM2 { crc_calc(); yylval.label = "FPM2"; return ET_FPM2; } -DPM3 { crc_calc(); yylval.label = "DPM3"; return ET_DPM3; } -FPM3 { crc_calc(); yylval.label = "FPM3"; return ET_FPM3; } -MSG1 { crc_calc(); yylval.label = "MSG1"; return ET_MSG1; } -MSG2 { crc_calc(); yylval.label = "MSG2"; return ET_MSG2; } -PRM { crc_calc(); yylval.label = "PRM"; return ET_PRM; } -RELAIS { crc_calc(); yylval.label = "RELAIS"; return ET_RELAIS; } -NTARF { crc_calc(); yylval.label = "NTARF"; return ET_NTARF; } -NJOURF { crc_calc(); yylval.label = "NJOURF"; return ET_NJOURF; } -NJOURF\+1 { crc_calc(); yylval.label = "NJOURF+1"; return ET_NJOURFP1; } -PJOURF\+1 { crc_calc(); yylval.label = "PJOURF+1"; return ET_PJOURFP1; } -PPOINTE { crc_calc(); yylval.label = "PPOINTE"; return ET_PPOINTE; } - -{HORODATE} { crc_calc(); yylval.text = strdup(yytext); return TOK_HDATE; } -{DATAC}+ { crc_calc(); yylval.text = strdup(yytext); return TOK_DATA; } +ADSC { crc_calc(); ticv02yylval.label = "ADSC"; return ET_ADSC; } +VTIC { crc_calc(); ticv02yylval.label = "VTIC"; return ET_VTIC; } +DATE { crc_calc(); ticv02yylval.label = "DATE"; return ET_DATE; } +NGTF { crc_calc(); ticv02yylval.label = "NGTF"; return ET_NGTF; } +LTARF { crc_calc(); ticv02yylval.label = "LTARF"; return ET_LTARF; } +EAST { crc_calc(); ticv02yylval.label = "EAST"; return ET_EAST; } +EASF01 { crc_calc(); ticv02yylval.label = "EASF01"; return ET_EASF01; } +EASF02 { crc_calc(); ticv02yylval.label = "EASF02"; return ET_EASF02; } +EASF03 { crc_calc(); ticv02yylval.label = "EASF03"; return ET_EASF03; } +EASF04 { crc_calc(); ticv02yylval.label = "EASF04"; return ET_EASF04; } +EASF05 { crc_calc(); ticv02yylval.label = "EASF05"; return ET_EASF05; } +EASF06 { crc_calc(); ticv02yylval.label = "EASF06"; return ET_EASF06; } +EASF07 { crc_calc(); ticv02yylval.label = "EASF07"; return ET_EASF07; } +EASF08 { crc_calc(); ticv02yylval.label = "EASF08"; return ET_EASF08; } +EASF09 { crc_calc(); ticv02yylval.label = "EASF09"; return ET_EASF09; } +EASF10 { crc_calc(); ticv02yylval.label = "EASF10"; return ET_EASF10; } +EASD01 { crc_calc(); ticv02yylval.label = "EASD01"; return ET_EASD01; } +EASD02 { crc_calc(); ticv02yylval.label = "EASD02"; return ET_EASD02; } +EASD03 { crc_calc(); ticv02yylval.label = "EASD03"; return ET_EASD03; } +EASD04 { crc_calc(); ticv02yylval.label = "EASD04"; return ET_EASD04; } +EAIT { crc_calc(); ticv02yylval.label = "EAIT"; return ET_EAIT; } +ERQ1 { crc_calc(); ticv02yylval.label = "ERQ1"; return ET_ERQ1; } +ERQ2 { crc_calc(); ticv02yylval.label = "ERQ2"; return ET_ERQ2; } +ERQ3 { crc_calc(); ticv02yylval.label = "ERQ3"; return ET_ERQ3; } +ERQ4 { crc_calc(); ticv02yylval.label = "ERQ4"; return ET_ERQ4; } +IRMS1 { crc_calc(); ticv02yylval.label = "IRMS1"; return ET_IRMS1; } +IRMS2 { crc_calc(); ticv02yylval.label = "IRMS2"; return ET_IRMS2; } +IRMS3 { crc_calc(); ticv02yylval.label = "IRMS3"; return ET_IRMS3; } +URMS1 { crc_calc(); ticv02yylval.label = "URMS1"; return ET_URMS1; } +URMS2 { crc_calc(); ticv02yylval.label = "URMS2"; return ET_URMS2; } +URMS3 { crc_calc(); ticv02yylval.label = "URMS3"; return ET_URMS3; } +PREF { crc_calc(); ticv02yylval.label = "PREF"; return ET_PREF; } +PCOUP { crc_calc(); ticv02yylval.label = "PCOUP"; return ET_PCOUP; } +SINSTS { crc_calc(); ticv02yylval.label = "SINSTS"; return ET_SINSTS; } +SINSTS1 { crc_calc(); ticv02yylval.label = "SINSTS1"; return ET_SINSTS1; } +SINSTS2 { crc_calc(); ticv02yylval.label = "SINSTS2"; return ET_SINSTS2; } +SINSTS3 { crc_calc(); ticv02yylval.label = "SINSTS3"; return ET_SINSTS3; } +SMAXSN { crc_calc(); ticv02yylval.label = "SMAXSN"; return ET_SMAXSN; } +SMAXSN1 { crc_calc(); ticv02yylval.label = "SMAXSN1"; return ET_SMAXSN1; } +SMAXSN2 { crc_calc(); ticv02yylval.label = "SMAXSN2"; return ET_SMAXSN2; } +SMAXSN3 { crc_calc(); ticv02yylval.label = "SMAXSN3"; return ET_SMAXSN3; } +SMAXSN-1 { crc_calc(); ticv02yylval.label = "SMAXSN-1"; return ET_SMAXSNM1; } +SMAXSN1-1 { crc_calc(); ticv02yylval.label = "SMAXSN1-1"; return ET_SMAXSN1M1; } +SMAXSN2-1 { crc_calc(); ticv02yylval.label = "SMAXSN2-1"; return ET_SMAXSN2M1; } +SMAXSN3-1 { crc_calc(); ticv02yylval.label = "SMAXSN3-1"; return ET_SMAXSN3M1; } +SINSTI { crc_calc(); ticv02yylval.label = "SINSTI"; return ET_SINSTI; } +SMAXIN { crc_calc(); ticv02yylval.label = "SMAXIN"; return ET_SMAXIN; } +SMAXIN-1 { crc_calc(); ticv02yylval.label = "SMAXIN-1"; return ET_SMAXINM1; } +CCASN { crc_calc(); ticv02yylval.label = "CCASN"; return ET_CCASN; } +CCASN-1 { crc_calc(); ticv02yylval.label = "CCASN-1"; return ET_CCASNM1; } +CCAIN { crc_calc(); ticv02yylval.label = "CCAIN"; return ET_CCAIN; } +CCAIN-1 { crc_calc(); ticv02yylval.label = "CCAIN-1"; return ET_CCAINM1; } +UMOY1 { crc_calc(); ticv02yylval.label = "UMOY1"; return ET_UMOY1; } +UMOY2 { crc_calc(); ticv02yylval.label = "UMOY2"; return ET_UMOY2; } +UMOY3 { crc_calc(); ticv02yylval.label = "UMOY3"; return ET_UMOY3; } +STGE { crc_calc(); ticv02yylval.label = "STGE"; return ET_STGE; } +DPM1 { crc_calc(); ticv02yylval.label = "DPM1"; return ET_DPM1; } +FPM1 { crc_calc(); ticv02yylval.label = "FPM1"; return ET_FPM1; } +DPM2 { crc_calc(); ticv02yylval.label = "DPM2"; return ET_DPM2; } +FPM2 { crc_calc(); ticv02yylval.label = "FPM2"; return ET_FPM2; } +DPM3 { crc_calc(); ticv02yylval.label = "DPM3"; return ET_DPM3; } +FPM3 { crc_calc(); ticv02yylval.label = "FPM3"; return ET_FPM3; } +MSG1 { crc_calc(); ticv02yylval.label = "MSG1"; return ET_MSG1; } +MSG2 { crc_calc(); ticv02yylval.label = "MSG2"; return ET_MSG2; } +PRM { crc_calc(); ticv02yylval.label = "PRM"; return ET_PRM; } +RELAIS { crc_calc(); ticv02yylval.label = "RELAIS"; return ET_RELAIS; } +NTARF { crc_calc(); ticv02yylval.label = "NTARF"; return ET_NTARF; } +NJOURF { crc_calc(); ticv02yylval.label = "NJOURF"; return ET_NJOURF; } +NJOURF\+1 { crc_calc(); ticv02yylval.label = "NJOURF+1"; return ET_NJOURFP1; } +PJOURF\+1 { crc_calc(); ticv02yylval.label = "PJOURF+1"; return ET_PJOURFP1; } +PPOINTE { crc_calc(); ticv02yylval.label = "PPOINTE"; return ET_PPOINTE; } + +{HORODATE} { crc_calc(); ticv02yylval.text = strdup(yytext); return TOK_HDATE; } +{DATAC}+ { crc_calc(); ticv02yylval.text = strdup(yytext); return TOK_DATA; } . { pr_err("spurious character 0x%02hhx\n", *yytext); return *yytext; } diff --git a/ticv02.y b/ticv02.y index dc92173..7cb785d 100644 --- a/ticv02.y +++ b/ticv02.y @@ -22,9 +22,9 @@ #include #include "tic2json.h" -int yylex(); -int yylex_destroy(); -extern FILE *yyin; +int ticv02yylex(); +int ticv02yylex_destroy(); +extern FILE *ticv02yyin; static void yyerror(const char *); extern int filter_mode; @@ -202,7 +202,7 @@ etiquette_nodate: #ifndef BAREBUILD void parse_config(const char *filename) { - if (!(yyin = fopen(filename, "r"))) { + if (!(ticv02yyin = fopen(filename, "r"))) { perror(filename); exit(-1); } @@ -212,14 +212,14 @@ void parse_config(const char *filename) abort(); // OOM filter_mode = 1; - if (yyparse()) { + if (ticv02yyparse()) { pr_err("%s: filter config error!\n", filename); exit(-1); } - fclose(yyin); - yylex_destroy(); - yyin = stdin; + fclose(ticv02yyin); + ticv02yylex_destroy(); + ticv02yyin = stdin; filter_mode = 0; } #endif /* !BAREBUILD */

AltStyle によって変換されたページ (->オリジナル) /