2

私は最近プロジェクトjisonを見つけ、その Web サイトから電卓の例を変更しました。( http://zaach.github.io/jison/demos/calc/ )

/* lexical grammar */
%lex
%%

"a"                   return 'TOKEN1'
"b"                   return 'TOKEN2'
<<EOF>>               return 'EOF'
.                     return 'INVALID'

/lex

%start letters

%% /* language grammar */

letters
    :
    | letters letter
    ;

letter
    : 'TOKEN1'
    | 'TOKEN2'
    ;

上記の文法定義によって生成されたパーサーで文字列「aaabbbaaba」を解析すると、

Parse error on line 1:
aaabbbaaba
^
Expecting 'TOKEN1', 'TOKEN2', got 'INVALID'

残念ながら、なぜTOKEN1が正しく見つからないのかわかりません。トークン INVALID を削除すると、解析エラーが発生します

Unrecognized text.

Issue with a Jison Grammar, Strange error from generate dparserで、同様のエラー メッセージが表示される関連付けエラーの説明を見つけましたが、自分のコードで同様のものを見つけることができませんでした。

この問題の解決策は何ですか?

4

1 に答える 1