Onkel Schuppig
Erfahrenes Mitglied
Hallo Leute,
ich beschäftige mich mit flex/bison. flex verstehe ich schon ganz gut, nur bei bison hapert's noch etwas. Aktuelles Problem:
Bei einer Flex-Datei kann ich ja über yyin ziemlich einfach den Eingabestrom umschalten:
Wenn ich nun aber bison hinzunehme, wandert die main-Funktion ja in die Bison-Eingabedatei. Oder muss das nicht sein?
Das funktioniert nicht, da nun yyin unbekannt ist. Merkwürdig, dass an keiner Stelle in den Manuals darauf eingegangen wird, wie der Dateizeiger umzubiegen ist. Auch im Internet finde ich nix. Wisst ihr Rat?
ich beschäftige mich mit flex/bison. flex verstehe ich schon ganz gut, nur bei bison hapert's noch etwas. Aktuelles Problem:
Bei einer Flex-Datei kann ich ja über yyin ziemlich einfach den Eingabestrom umschalten:
C:
/* file: test.l */
%{
...
%}
%%
...
%%
int main(int argc, char** argv) {
if (argc > 1)
yyin = fopen(argv[1], "r");
else
yyin = stdin;
yylex();
return 0;
}
C:
/* file: test.y */
%{
...
%}
%%
...
%%
int main(int argc, char** argv) {
if (argc > 1)
yyin = fopen(argv[1], "r");
else
yyin = stdin;
yyparse();
return 0;
}