A number of initializers are provided in order that various character sets can be supported from input files. The ANTLR3 C runtime expects to deal with UTF32 characters only (the reasons for this are to do with the simplification of C code when using this form of Unicode encoding, though this is not a panacea. More information can be found on this by consulting:
#include <antlr3.h>
Functions | |
static pANTLR3_INPUT_STREAM | antlr3CreateFileStream (pANTLR3_UINT8 fileName) |
Use the contents of an operating system file as the input for an input stream. | |
static pANTLR3_INPUT_STREAM | antlr3CreateStringStream (pANTLR3_UINT8 data) |
Use the supplied 'string' as input to the stream. | |
ANTLR3_API void | antlr3Fclose (ANTLR3_FDSC fd) |
Close an operating system file and free any handles etc. | |
ANTLR3_API pANTLR3_INPUT_STREAM | antlr3FileStreamNew (pANTLR3_UINT8 fileName, ANTLR3_UINT32 encoding) |
ANTLR3_API ANTLR3_FDSC | antlr3Fopen (pANTLR3_UINT8 filename, const char *mode) |
Open an operating system file and return the descriptor We just use the common open() and related functions here. | |
ANTLR3_API ANTLR3_UINT32 | antlr3Fread (ANTLR3_FDSC fdsc, ANTLR3_UINT32 count, void *data) |
ANTLR3_API ANTLR3_UINT32 | antlr3Fsize (pANTLR3_UINT8 fileName) |
ANTLR3_API ANTLR3_UINT32 | antlr3read8Bit (pANTLR3_INPUT_STREAM input, pANTLR3_UINT8 fileName) |
ANTLR3_API pANTLR3_INPUT_STREAM | antlr3StringStreamNew (pANTLR3_UINT8 data, ANTLR3_UINT32 encoding, ANTLR3_UINT32 size, pANTLR3_UINT8 name) |
static void | setupInputStream (pANTLR3_INPUT_STREAM input) |
Determine endianess of the input stream and install the API required for the encoding in that format. |
static pANTLR3_INPUT_STREAM antlr3CreateFileStream | ( | pANTLR3_UINT8 | fileName | ) | [static] |
Use the contents of an operating system file as the input for an input stream.
fileName | Name of operating system file to read. |
References ANTLR3_CALLOC, ANTLR3_SUCCESS, antlr3GenericSetupStream(), antlr3read8Bit(), and ANTLR3_INPUT_STREAM_struct::close.
Referenced by antlr3FileStreamNew().
static pANTLR3_INPUT_STREAM antlr3CreateStringStream | ( | pANTLR3_UINT8 | data | ) | [static] |
Use the supplied 'string' as input to the stream.
data | Pointer to the input data |
References ANTLR3_CALLOC, ANTLR3_FALSE, antlr3GenericSetupStream(), ANTLR3_INPUT_STREAM_struct::data, and ANTLR3_INPUT_STREAM_struct::isAllocated.
Referenced by antlr3StringStreamNew().
ANTLR3_API void antlr3Fclose | ( | ANTLR3_FDSC | fd | ) |
Close an operating system file and free any handles etc.
Referenced by antlr3read8Bit().
ANTLR3_API pANTLR3_INPUT_STREAM antlr3FileStreamNew | ( | pANTLR3_UINT8 | fileName, | |
ANTLR3_UINT32 | encoding | |||
) |
References antlr3CreateFileStream(), ANTLR3_INPUT_STREAM_struct::encoding, ANTLR3_INPUT_STREAM_struct::fileName, ANTLR3_INPUT_STREAM_struct::istream, ANTLR3_STRING_FACTORY_struct::newStr8, setupInputStream(), ANTLR3_INT_STREAM_struct::streamName, and ANTLR3_INPUT_STREAM_struct::strFactory.
ANTLR3_API ANTLR3_FDSC antlr3Fopen | ( | pANTLR3_UINT8 | filename, | |
const char * | mode | |||
) |
Open an operating system file and return the descriptor We just use the common open() and related functions here.
Later we might find better ways on systems such as Windows and OpenVMS for instance. But the idea is to read the while file at once anyway, so it may be irrelevant.
Referenced by antlr3read8Bit().
ANTLR3_API ANTLR3_UINT32 antlr3Fread | ( | ANTLR3_FDSC | fdsc, | |
ANTLR3_UINT32 | count, | |||
void * | data | |||
) |
ANTLR3_API ANTLR3_UINT32 antlr3Fsize | ( | pANTLR3_UINT8 | fileName | ) |
ANTLR3_API ANTLR3_UINT32 antlr3read8Bit | ( | pANTLR3_INPUT_STREAM | input, | |
pANTLR3_UINT8 | fileName | |||
) |
References ANTLR3_ERR_NOFILE, ANTLR3_ERR_NOMEM, ANTLR3_MALLOC, ANTLR3_SUCCESS, ANTLR3_TRUE, antlr3Fclose(), antlr3Fopen(), antlr3Fread(), antlr3Fsize(), ANTLR3_INPUT_STREAM_struct::data, ANTLR3_INPUT_STREAM_struct::isAllocated, and ANTLR3_INPUT_STREAM_struct::sizeBuf.
Referenced by antlr3CreateFileStream().
ANTLR3_API pANTLR3_INPUT_STREAM antlr3StringStreamNew | ( | pANTLR3_UINT8 | data, | |
ANTLR3_UINT32 | encoding, | |||
ANTLR3_UINT32 | size, | |||
pANTLR3_UINT8 | name | |||
) |
References antlr3CreateStringStream(), ANTLR3_INPUT_STREAM_struct::encoding, ANTLR3_INPUT_STREAM_struct::fileName, ANTLR3_INPUT_STREAM_struct::istream, ANTLR3_STRING_FACTORY_struct::newStr8, setupInputStream(), ANTLR3_INPUT_STREAM_struct::sizeBuf, ANTLR3_INT_STREAM_struct::streamName, and ANTLR3_INPUT_STREAM_struct::strFactory.
static void setupInputStream | ( | pANTLR3_INPUT_STREAM | input | ) | [static] |
Determine endianess of the input stream and install the API required for the encoding in that format.
References antlr38BitSetupStream(), ANTLR3_ENC_8BIT, ANTLR3_ENC_EBCDIC, ANTLR3_ENC_UTF16, ANTLR3_ENC_UTF16BE, ANTLR3_ENC_UTF16LE, ANTLR3_ENC_UTF32, ANTLR3_ENC_UTF32BE, ANTLR3_ENC_UTF32LE, ANTLR3_ENC_UTF8, ANTLR3_FALSE, ANTLR3_TRUE, antlr3EBCDICSetupStream(), antlr3UTF16SetupStream(), antlr3UTF32SetupStream(), antlr3UTF8SetupStream(), ANTLR3_INPUT_STREAM_struct::encoding, and ANTLR3_INPUT_STREAM_struct::nextChar.
Referenced by antlr3FileStreamNew(), and antlr3StringStreamNew().