Bull. Soc. sci. Nancy (1898) Millot/Outils
De Wicri Nancy
Révision datée du 27 février 2020 à 18:40 par imported>Jacques Ducloy (→Le programme lex)
Cette page montre une utilisation de l'analyseur lexical lex pour faciliter la conversion des tableaux.
Les données
février
cat <<... > fevrier.text 1 — 15°0 1895 12°3 1885 27°3 2 — 16°8 1895 15°0 1885 31°8 3 — 11°4 1895 10°0 1897 21°4 4 — 11°0 1S95 10°3 1887 21°3 ...
Le programme lex
cat <<... > convertTab.lex
int zone;
%START TEMP
%START AN
%%
^[1-9][0-9]* {printf("|-\n|%s\n| ", yytext); BEGIN TEMP; zone=2;}
<TEMP>"—" printf("-");
<TEMP>[1-9][0-9]*"°"[0-9]* {printf("%s\n", yytext); zone++;
switch(zone){ case 3: case 5: BEGIN AN; break; case 7: BEGIN 0; break; }}
<AN>18[0-9][0-9] {printf("|%s\n|", yytext); zone++; BEGIN TEMP; }
. ;
\n BEGIN 0;
%%
int main()
{
printf("{|\n");
yylex();
printf("{|-\n|}\n");
}
...
lex convertTab.lex
gcc lex.yy.c -ll -o convertTab
./convertTab < fevrier.text