%expect Deklaration bei lex & bison

sasch00

Grünschnabel
Hallo!
Ich entwickle zurzeit einen eigenen Editor für Visual Studio.
Bei den SDK Samples ist das Beispiel ManagedMyC dabei, was auch recht verständlich ist.
Darauf habe ich dann meinen eigenen Editor aufgebaut.

In der parser.y Datei befindet sich am Anfang folgende Deklaration:

%{
#include "service.h"

ScopeStorage g_storage;

%}
%expect 5

....

Was bedeutet das %expect 5 ?

Kommentiere ich es aus erhalte ich von Bison folgende Fehlermeldung:
conflicts: 5 shift/reduce
expected 4 shift/reduce conflicts

Die selbe Fehlermeldung erhalte ich auch, wenn ich einige Regeln entfernen möchte, die ich für meine Sprache nicht brauche. Von daher denke ich, dass es mit dem %expect zusammen hängen muss.

Ich konnte das %expect bisher auch in keinem anderen Yacc / Bison Beispiel finden. Auch in dem Buch lex&yacc von Herold ist es leider nicht beschrieben.

Vielen dank für eure Hilfe schon einmal im voraus.
Gruß Sascha
 
Zuletzt bearbeitet:
Zurück