私はoreillyの本を使ってlexとyaccを学ぼうとしていました。本の次の例を試してみましたが、セグメンテーション違反が発生します。
%{
/**
* A lexer for the basic grammar to use for recognizing English sentences.
*/
#include <stdio.h>
extern FILE *yyin;
%}
%token NOUN PRONOUN VERB ADVERB ADJECTIVE PREPOSITION CONJUNCTION
%%
sentence: subject VERB object{ printf("Sentence is valid.\n");}
;
subject: NOUN
| PRONOUN
;
object: NOUN
;
%%
main()
{
while(!feof(yyin)) {
yyparse();
}
}
yyerror(char *s)
{
fprintf(stderr, "%s\n", s);
}
私はフレックスとバイソンを使用しています。whileループのmain関数でセグメンテーション違反が発生しています。ループにはまったく入っていません。
何かご意見は?ありがとう、ロバート