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