1
curs.l :
%{
#include <stdlib.h>
#include "tree.c"
#include "yycurs.h"
%}
L [a-zA-Z_]
D [0-9]
D4 [0-3]
IDENTIFIER ({L})({L}|{D})*
INT4 {D4}+'q'
INT {D}+
%%
{IDENTIFIER} {return VARIABLE;}
%%
int yywrap(void){
return 0;
}
curs.y:
%{
#include stdio.h
void yyerror(char*);
int yylex(void);
%}
%token VARIABLE INTEGER
%%
var: VARIABLE {printf($1);};
%%
void yyerror(char *s){
fprintf(stderr, "11\n");
fprintf(stderr, "%s\n", s);
}
int main(void){
yyparse();
return 0;
}
當我運行我的編譯progrum
功能的yyerror(),我有這樣的結果:爲什麼卡列斯在樣品PROGRAMM
./curs
ff //I introduced
//result
ff //I introduced
11 //result
syntax error //result
[email protected]:~/documents/compilers$
任何人都可以解釋我爲什麼似乎有「語法錯誤」? 在此先感謝。
謝謝,我已經解決了這個問題。錯誤發生,因爲我的程序沒有處理像'\ n'這樣的符號。謝謝您的回覆。 – evgeniy44 2010-10-26 17:15:36