|
|
|
|
 为什么我的yacc程序老是出现segfault? - soul_fly [ 2006-09-28 12:31 | 1,001 byte(s)]
 Re: 为什么我的yacc程序老是出现segfault? - 失心稻草人 [ 2006-10-02 19:38 | 122 byte(s)]
 Re: 为什么我的yacc程序老是出现segfault? - IN_FLAMES [ 2006-10-02 19:50 | 16 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
我从书上抄了个例子下来,以下是y文件:
%{
typedef char* string;
#define YYSTYPE string
%}
%token NAME EQ AGE
%%
file : record file
| record
;
record : NAME EQ AGE {
printf("%s is %s years old!!!
", $1, $3); }
;
%%
int main()
{
yyparse();
return 0;
}
int yyerror(char *msg)
{
printf("Error encountered: %s
", msg);
}
lex文件很简单就不列出了。 现在问题是,当.l文件扫描字符a = 15进去,只要NAME EQ AGE这个规则一被发现,立刻就会出现Segmentation fault (core dumped), 而提示是可能出现corrupted stack。经过检查发现错误在$1和$3上,但是为什么这里会出错呢?
PS:我用的是cygwin 下的bison编译的
|
|
|
[Original]
[Print]
[Top]
|
|
|