定義:それを認識するは、私のようにそれをやっていた
/* regular definitions */
DECLARATIONS declarations
ENDDECLARATIONS (enddeclarations)
INT (int)
METHOD (method)
PROGRAM (program)
そして
{DECLARATIONS} {yycolumn+=yyleng;return (DECLARATIONSnum);}
が、私は彼らが認識されなかったことが判明しました... ..もし私がそれを好きなら:
"declarations" {yycolumn+=yyleng;return (DECLARATIONSnum);}
それは働いた。
program p2;
class Test {
method void main()
declarations
int x;
そして現在、それはのようである:
program p2
5 1 SEMInum
class Test
6 1 LBRACEnum
method void main
7 1 LPARENnum
プログラム、クラスは次のように認識されなければならない私は本当に
サンプル入力が似ている....理由を理解することはできません予約語ですが、認識されません....
あなたはLEXのどのバージョンを使用していますか?問題を示す完全な.lファイルを提供します。フラグメントから1つ構築すると、どの形式のものであろうとそのキーワードを認識してうまく動作します。 –
@ChrisDodd lexバージョン2.5.4です。ファイル全体が少し長すぎます...このエラーはバージョンから発生する可能性はありますか? – faz