Discussion:La Vie parisienne (1873) Offenbach/Acte III/17 B, Adaptation 2 voix

De Wicri Musique

Programmes lex

Un ton bémol

Baisser d'un ton avec bémols à l'armure.

lex <<...

%%
a        printf ("fis");
bes      printf ("g");
c        printf ("a");
d        printf ("b");
e        printf ("cis");
ees      printf ("c");
f        printf ("d");
g        printf ("e");
%%
main()
{
  yylex();
}
...

Une tierce

Baisser d'une tierce mineure avec dièses à l'armure.

cat <<...  >gMajor2cMajor.lex
%START REL1
%START REL2
%START COPY
%%
<COPY>"\\\\relative"     {ECHO; BEGIN REL1;}
<REL1>"{"                {ECHO; BEGIN REL2;}
<REL1>c                  printf ("a");
<REL2>"}"                {ECHO; BEGIN COPY;}
<REL2>"\\\\"[^ \\\\n]+    ECHO;
<REL2>"\\\\clef"[ ]+[a-z0-9]+    ECHO;
<REL2>a        printf ("fis");
<REL2>ais      printf ("f");
<REL2>b        printf ("gis");
<REL2>c        printf ("a");
<REL2>cis      printf ("ais");
<REL2>d        printf ("b");
<REL2>dis      printf ("c");
<REL2>e        printf ("cis");
<REL2>f        printf ("d");
<REL2>fis      printf ("dis");
<REL2>g        printf ("e");
<REL2>gis      printf ("eis");
%%
main()
{
  BEGIN COPY;
  yylex();
}
...

lex gMajor2cMajor.lex

gcc lex.yy.c -ll -o gMajor2cMajor

./gMajor2cMajor  < viePar17Bobinet.ly