7

Lex/Flex では、文字ストリーム内の (ファイルの先頭から) トークンが表示される位置を取得する方法はありますか? 文字位置を整数として返すことを除いて、yylineno に似ていますか?

そうでない場合、これに到達するための最良の方法は何ですか? 自分のカウンターを保持する必要がありますか?

ありがとう!

4

1 に答える 1

6

yyleng と YY_USER_ACTION を使用して、文字の位置を追跡できます。yyleng には現在のトークンの長さがあり、YY_USER_ACTION はトークンに一致する前に呼び出されます。YY_USER_ACTION で、位置変数に yyleng を追加します。入力ストリームの先頭からの文字位置が必要でない限り、各行末トークンで変数をリセットする必要があります。ルール アクションでは、変数 - yyleng はトークンの開始位置です。

于 2010-02-14T04:30:51.097 に答える