ocamlyacc
ほとんどの解析ルールでいくつかのセマンティック アクションも実行する小さなパーサーに使用しています。
最初に一連のトークンを定義しました。
%token T_plus
%token T_minus
%token <int> T_int_const
%left T_plus T_minus
セマンティック アクションを実行するパーサー ルールは次のとおりです。
exp: exp T_plus exp
{
checkType T_plus $1 $3
}
はcheckType
外部ヘルパー関数です。ただし、この奇妙な警告が表示されます (Parser.mly
ファイル内の行を参照しています) 。
warning: T_plus was selected from type Parser.token.
It is not visible in the current scope,
and will not be selected if the type becomes unknown.
ocamlyacc マニュアルに関連情報が見つかりませんでした。誰かが同様のエラーに遭遇しましたか? セマンティック アクションのスコープ内でトークンが表示されないのはなぜですか?