私は、MySQLの.g4ファイルからParserとLexerをhttps://github.com/antlr/grammars-v4/tree/master/mysqlに構築しようとしています。私はエラー"添付ファイルに示されているように、パーサールールのチャンネルが"レクサーで許可されていません "と表示されます。このANTLR 4レクサーファイルで、「パーサールール」チャネルが「レクサーで許可されていません」というエラーはありますか?
答えて
レクサーのみの文法は、レクサーのみのルールを含めることができます。私が考えていることは、あなたが使用しているツールが、このレクサー専用の文法では大文字で始まり、そのために外れているため、 "ルール" channels
をパーサルールとして解釈しているということです。
しかし、Mikeのコメントは正しいです。このchannels
構文は、(現在)レクサーファイルの有効なANTLR文法です。 See this page.。それはレクサー文法ファイルに入っているはずなので、あなたが得ているエラーについて推測できるのは、使用しているツール(IDE)がchannels
カスタム仕様の構文を理解していないということだけです。
このgithubリストのすべての文法が完璧であるわけではなく、ANTLR本来のものではなく、様々な著者やときどき異なるバージョンのANTLRによって提供されていることに注意してください。
'channels'は規則ではありませんが、文法に支配されたチャネルのリストであり、**だけがレクサー文法で有効です。 –
Parserファイルには入っていますか? – nicomp
いいえ、 'channels'コマンドは、レクサー文法でのみ許可されています。 –
- 1. エラー:C++では型名が許可されていません
- 2. "YAML構文エラーがありました" ... "このコンテキストではマッピング値は許可されていません"
- 3. antlr 4レクサーまたはパーサーとして読み込めません。
- 4. ó xmlファイルでは許可されていませんが、.netリソースファイルで許可されていますか?
- 5. ANTLR解析で正しいレクサー部分が見つかりません
- 6. ICEFacesのコンテンツはプロローグで許可されていません 'エラー
- 7. IsolatedStorageFileStreamでの操作は許可されていません。エラー
- 8. Androidスタジオ:注釈はここでは許可されていませんエラー
- 9. エラー "OperationはIsolatedStorageFileStreamで許可されていません。" wp7
- 10. ANTLR 4つのレクサー・トークン
- 11. PHPとSQLSRVドライバの「新しいトランザクションは許可されていません」というエラーは何ですか?
- 12. 「変更は許可されていません...」というメッセージ
- 13. ORA-00934:ここではグループ機能は許可されていません00934. 00000 - "グループ機能はここでは許可されていません"
- 14. s:SpriteVisualElementと「コンポーネントの宣言はここでは許可されていません」
- 15. Laravelリソースルーティングアップデートは、「メソッド許可されていません」というエラー
- 16. sqlのシーケンスエラー。シーケンス番号がここでは許可されていません
- 17. 公開中のエラー - ここでは許可されていません。 'System.Web.UI.UserControl'クラスを拡張しません。
- 18. 403 Javaエラーが許可されていません
- 19. Flask - POSTエラー405メソッドが許可されていません
- 20. jQuery POST、エラー405メソッドが許可されていません
- 21. のpython:urllib2.HTTPError:HTTPエラー405:メソッドは許可されていません
- 22. Android:typefaceエラー:種類が許可されていません。
- 23. エラー405:メソッドが許可されていません
- 24. python setup.py sdistエラー:操作が許可されていません
- 25. goエラーが許可されていません
- 26. Express.js post request "Origin nullが許可されていません"エラー
- 27. BlueMixのIBM Graphで「POSTが許可されていません」というエラーが発生しました
- 28. Bower:エラー:EPERM:操作が許可されていません
- 29. IIS express 405エラー - メソッドが許可されていません
- 30. エラー405:メソッドが許可されていませんフラスコ、ajax
それはまったく意味がありません。これはIDEのエラーであり、文法ではありません。それはどんなIDEなのですか?私のANTLR4エクステンションを使ってVisual Studio Codeを試してみると、正しい詳細が得られます。 –
おそらく、このIDEは古いバージョンのANTLRを使用しています。このような構文は4.5バージョンで登場しました。https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md#channel –
@MikeLischke IDEはEclipseのANTLR4プラグインです。私はチャンネルラインをコメントアウトし、必要に応じてチャンネル番号をハードコードすることでそれを '修正'しました。 – nicomp