-1
は私が持っている場合:
if {
yylval = $1;
}
は、この法律上のですか?そうでない場合は、私が入れたものを参照したいと言う別の方法がありますか?
(yylval = 'if'
を言っていけないしてください、それはダイナミックではない、と私はいくつかのより複雑なシナリオでそれを使用したい)
は私が持っている場合:
if {
yylval = $1;
}
は、この法律上のですか?そうでない場合は、私が入れたものを参照したいと言う別の方法がありますか?
(yylval = 'if'
を言っていけないしてください、それはダイナミックではない、と私はいくつかのより複雑なシナリオでそれを使用したい)
号$1
や友人は、文法中の非ターミナルまたはターミナルシンボルです。私はあなたが正確にやろうとしているのか分からないが、通常あなたはこのような一連のルールだろう:
"if" { return IF; }
"else" { return ELSE; }
[0-9]+ { yylval.intValue = atoi(yytext); return INTEGER; }
など、IFとELSEは次のようにy.tab.hで定義されていますあなたの.yファイルに%token
ディレクティブで宣言された結果
yylval = 'if'
を言わないでください、それは
ダイナミックではないんどちらもlex
ルールです。あなたの目的は不明瞭なままです。
あなたが 'yylval = yytext;'を意味するわけではないなら、あなたは何をしたいのか分かりません。もしあなたがそれを意味していれば、あなたはコピーを作る必要があるのでそれは合法ではないので、 'yylval = strdup(yytext);'を使うべきです。 – rici