The C runtime distribution of ANTLR 3.2 used to have a function declared as
ANTLR3_API pANTLR3_INPUT_STREAM antlr3NewAsciiStringCopyStream
(pANTLR3_UINT8 inString, ANTLR3_UINT32 size, pANTLR3_UINT8 name);
in include/antlr3defs.h
. There were also a few similar functions, such as antlr3NewAsciiStringInPlaceStream
, antlr3NewUCS2StringInPlaceStream
and so forth.
But in the 3.4 version these functions seem to have gone. They are neither declared in any of the .h files, nor are definitions compiled into the library.
I checked the release notes for 3.3 and 3.4 and the FAQ, but I couldn't find any mention of this. On the contrary, the FAQ recommends (see [2] below):
How to get a pANTLR3_INPUT_STREAM from a std::string (or char* variable)?
Functions[1]pANTLR3_INPUT_STREAM [2]antlr3NewAsciiStringCopyStream ([3]pANTLR3_UINT8 inString, [4]ANTLR3_UINT32 size, [5]pANTLR3_UINT8 name)
Create an ASCII string stream as input to ANTLR 3, copying the input string.
I have legacy code that uses ANTLR 3 and this function, and I can't easily switch to ANTLR 4. I could continue using the 3.2 version or one of the other functions listed above, but it would be good to know what happened, and how to best handle this.