Lassen Sie mich mit einem Beispiel erzählen. den Inhalt einer Textdatei Angenommen, sind wie folgt:Wie man Lex und Yacc programmiert, um eine Teildatei zu analysieren
Funktion fun1 {
int a, b, c;
Funktion fun2 {
int d, e;
char f g;
Funktion fun3 {
int h, i;
}
}
In dem obigen Text-Datei, die Anzahl der Öffnungs Klammern passen nicht die Anzahl der Schließ Klammern. Die Datei als Ganzes folgt nicht der Syntax. Die Teilfunktionen fun2 und fun3 folgen jedoch der Syntax. In der Regel ist die Textdatei sehr groß.
Wenn der Benutzer die gesamte Datei analysieren möchte, dh die Funktion fun1, sollte das Programm einen Fehler ausgeben, da die Klammern nicht übereinstimmen. Wenn der Benutzer jedoch nur die Teildatei analysieren möchte, dh die Funktion fun2/fun3, sollte das Programm keinen Fehler ausgeben, da die Klammern übereinstimmen.
Ich habe jetzt eine Frage 1. Gibt es eine Möglichkeit, die Lex und Yacc laden nur eine Teildatei? Wenn ja, wie muss es gemacht werden.