私は、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. レクサーのアクションで属性参照が許可されていません
- 2. は、「アクションが許可されていません」というエラー
- 3. レクサーここからパーサー使用ANTLR 4
- 4. エラー:C++では型名が許可されていません
- 5. "YAML構文エラーがありました" ... "このコンテキストではマッピング値は許可されていません"
- 6. antlr 4レクサーまたはパーサーとして読み込めません。
- 7. 複数のインデクサーはエラーを許可されていませんがインデクサーではありません
- 8. 注釈はここでは許可されていません
- 9. ó xmlファイルでは許可されていませんが、.netリソースファイルで許可されていますか?
- 10. ANTLR解析で正しいレクサー部分が見つかりません
- 11. ICEFacesのコンテンツはプロローグで許可されていません 'エラー
- 12. IsolatedStorageFileStreamでの操作は許可されていません。エラー
- 13. Androidスタジオ:注釈はここでは許可されていませんエラー
- 14. エラー "OperationはIsolatedStorageFileStreamで許可されていません。" wp7
- 15. ANTLR 4つのレクサー・トークン
- 16. PHPとSQLSRVドライバの「新しいトランザクションは許可されていません」というエラーは何ですか?
- 17. 「変更は許可されていません...」というメッセージ
- 18. ORA-00934:ここではグループ機能は許可されていません00934. 00000 - "グループ機能はここでは許可されていません"
- 19. s:SpriteVisualElementと「コンポーネントの宣言はここでは許可されていません」
- 20. Laravelリソースルーティングアップデートは、「メソッド許可されていません」というエラー
- 21. sqlのシーケンスエラー。シーケンス番号がここでは許可されていません
- 22. 公開中のエラー - ここでは許可されていません。 'System.Web.UI.UserControl'クラスを拡張しません。
- 23. TimePickerでは「24:00」は許可されていませんか?
- 24. BlueMixのIBM Graphで「POSTが許可されていません」というエラーが発生しました
- 25. のpython:urllib2.HTTPError:HTTPエラー405:メソッドは許可されていません
- 26. Foursquare API 405メソッドが許可されていませんか?ここで
- 27. 403 Javaエラーが許可されていません
- 28. Flask - POSTエラー405メソッドが許可されていません
- 29. jQuery POST、エラー405メソッドが許可されていません
- 30. Android:typefaceエラー:種類が許可されていません。
それはまったく意味がありません。これは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