Bull. Soc. sci. Nancy (1898) Millot/Outils

De Wicri Nancy
Révision datée du 27 février 2020 à 18:50 par imported>Jacques Ducloy (février)

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 1895 10°3 1887 21°3
5 — 10°8 1880 9°2 1881 20°0
6 — 13°2 1895 9°2 1894 22°4
7 — 15°6 1895 9°4 1892 25°0
8 — 15°0 1895 11°0 1879 26°0
9 — 15°0 1895 14°4 1879 29°4

Le programme lex

cat <<... > convertTab.lex
 int zone;
%START TEMP
%START AN
%%
^[1-9][0-9]*       {printf("|-\n|%s\n|&nbsp;", 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