私はantlr文法とantlrRubyTargetを使用してPHPコードを解析しています。私が解析しなければならないソースファイルの1つには実際に翻訳が含まれており、それらのいくつかはUnicode文字を多用しています。文法は「補足面」の1文字、つまりU+10430にかかっているようです。
Ruby antlrターゲットがかなり古く、Unicodeに準拠していなかったため、過去にも同様の問題が発生しました(当時、Rubyはそうではありませんでした)。それを解決するには、RubyTarget.java getMaxCharValueを0xFF(ascii)から0xFFFF(unicode)にバンプする必要がありました。今ではこのセットでも足りないようです。Unicodeは、この範囲外の文字は2つのUTF-16文字を使用して表すことができると述べていますが、antlrはこれをどのように管理しますか?getMaxCharValueを再度バンプすることは役に立ちますか(一度は実行しましたが、私は「試行」アプローチのファンではありません)?
ありがとう !