入力ファイルから yacc プログラムに入力をリダイレクトするとき、ファイルの解析が終了した後、yacc パーサーが行ったことの要約を出力するようにします。キーボードから入力してからCtrl+を押すと、同じことをしたいと思いDます。それを行う方法はありますか?
2 に答える
0
文法では、関数を呼び出すことができます関数は3番目の部分にあるべきです
FIRST PART
%%
second PART
GRAMMAR { CALL YOUR FUNCTION();}
GRAMMAR2 VAR1 VAR2 VAR3 {CALL YOUR FUNCTION2($1,$2,$3);}
%%
third PART
YOUR FUNCTION(){}
YOUR FUNCTION2(int c, char*y , int z){}
int main (void) {
}
void yyerror (char *s) {fprintf (stderr, "%s\n", s);}
あなたの関数は、あなたが与えたパラメータによって関数を呼び出す場所から、文法もあなたが望むものを印刷することができます
于 2016-06-11T21:03:22.943 に答える
-4
私の問題の解決策は、.y ファイルに関数 yywrap() を作成することであることがわかりました。この関数は、yacc が EOF に遭遇したときに実行されます。これは、入力ファイルの終わりか、ユーザーが Ctrl-D を押したときです。これが解決策です。
于 2009-12-06T07:42:51.817 に答える