ANTLR 3.2 の C ランタイム ディストリビューションでは、関数が次のように宣言されていました。
ANTLR3_API pANTLR3_INPUT_STREAM antlr3NewAsciiStringCopyStream
(pANTLR3_UINT8 inString, ANTLR3_UINT32 size, pANTLR3_UINT8 name);
でinclude/antlr3defs.h
。などの同様の機能もいくつかありましantlr3NewAsciiStringInPlaceStream
たantlr3NewUCS2StringInPlaceStream
。
しかし、バージョン 3.4 では、これらの機能がなくなったようです。それらは、どの .h ファイルでも宣言されておらず、ライブラリにコンパイルされた定義もありません。
3.3と3.4のリリース ノートとFAQを確認しましたが、これについての言及は見つかりませんでした。それどころか、FAQ は次のように推奨しています (以下の [2] を参照)。
std::string (または char* 変数) から pANTLR3_INPUT_STREAM を取得する方法は?
機能[1]pANTLR3_INPUT_STREAM [2]antlr3NewAsciiStringCopyStream ([3]pANTLR3_UINT8 inString, [4]ANTLR3_UINT32 size, [5]pANTLR3_UINT8 name)
入力文字列をコピーして、ANTLR 3 への入力として ASCII 文字列ストリームを作成します。
ANTLR 3 とこの関数を使用するレガシー コードがあり、ANTLR 4 に簡単に切り替えることはできません。3.2 バージョンまたは上記の他の関数のいずれかを引き続き使用できますが、何が起こったのかを知ることは良いことです。これをどのように処理するのが最善か。