Runtime "syntax error" von lex und yacc

Ich kann nicht herausfinden, warum erhalte ich diese Ergebnisse.

++
+add
+syntax error 2

++
+add
+syntax error 4

Den ++ ist mein input-und lex-Echos jedes Zeichen und yacc Drucke hinzufügen, sobald es bekommt, a +. Es ist mir dieser Fehler auf jedem anderen + es bekommt. Egal, wie ich die Eingabe, erhalte ich die gleichen Ergebnisse, wenn ich drücken Sie die EINGABETASTE auf jeden +.

lex

%{
#include "y.tab.h"

int chars = 0;
%}
%%
"+"     {ECHO; chars++; return ADD;}
.       {ECHO; chars++;}
\n      {ECHO;}
%%

yacc

%{
#include <stdio.h>
extern int chars;

void yyerror (const char *str) {
    printf ("%s %d\n", str, chars);
}
%}

%token ADD
%%
symbol  : ADD       {printf ("add\n");}
        ;
%%

int main () {
    while (1) {
        yyparse ();
    }
}
InformationsquelleAutor TreeTree | 2013-03-13
Schreibe einen Kommentar