1
Hereは、PLSQLのAntlr文法ファイルです。Antlr PLSQL文法でパッケージ名が正しく解析されませんか?
しかし、それは完全ではありません。
CREATE OR REPLACE PACKAGE BODY SCHEMA_NAME.PACKAGE_NAME AS
先行文法ファイルから生成されたパーサーが(package_name
はANTLRパーサー規則である)package_name
としてSCHEMA_NAME.PACKAGE_NAME
を解析しない:例えば、私が始まるパッケージを有しています。この問題を解決するには
、私はこの
package_name
: id ('.' id)?
;
するために、この
package_name
: id
;
を変更している私はまた
package_name
: id ('.' id_expression)?
;
を試してみましたが、それらのどれも働きました。 Antlrにはpackage name
の最後の.PACKAGE_NAME
の部分は含まれません。
なぜこれが機能しないのですか?これをどうすれば解決できますか?
残りのルールがある場合は、実際には ':id( '。' id_expression)? '(この場合は認識されているものを変更すべきではありません)です。 –
@ JeroenMostert私もそれを試しました。それはどちらもうまくいかなかった。 – Utku
Antlr3文法のポートであるため動作しません。まだ完成していない。この文法のもう1つの問題は、PL/SQL、SQLおよびDDL言語をすぐに解析しようとしていることです。しかし、これらの文法では、下に別のレクサーを使うべきです。 – ibre5041