/** \brief Use the contents of an operating system file as the input * for an input stream. * * \param fileName Name of operating system file to read. * \return * - Pointer to new input stream context upon success * - One of the ANTLR3_ERR_ defines on error. */ ANTLR3_API pANTLR3_INPUT_STREAM antlr3AsciiFileStreamNew(pANTLR3_UINT8 fileName) { // Pointer to the input stream we are going to create // pANTLR3_INPUT_STREAM input; ANTLR3_UINT32 status; if (fileName == NULL) { return NULL; } // Allocate memory for the input stream structure // input = (pANTLR3_INPUT_STREAM) ANTLR3_CALLOC(1, sizeof(ANTLR3_INPUT_STREAM)); if (input == NULL) { return NULL; } // Structure was allocated correctly, now we can read the file. // status = antlr3readAscii(input, fileName); // Call the common 8 bit ASCII input stream handler // Initializer type thingy doobry function. // antlr3AsciiSetupStream(input, ANTLR3_CHARSTREAM); // Now we can set up the file name // input->istream->streamName = input->strFactory->newStr(input->strFactory, fileName); input->fileName = input->istream->streamName; if (status != ANTLR3_SUCCESS) { input->close(input); return NULL; } return input; }
/** \brief Use the contents of an operating system file as the input * for an input stream. * * \param fileName Name of operating system file to read. * \return * - Pointer to new input stream context upon success * - One of the ANTLR3_ERR_ defines on error. */ ANTLR3_API pANTLR3_INPUT_STREAM antlr3AsciiFileStreamNew(pANTLR3_UINT8 fileName) { /* Pointer to the input stream we are going to create */ pANTLR3_INPUT_STREAM input; ANTLR3_UINT64 status; /* Allocate memory for the input stream structure */ input = (pANTLR3_INPUT_STREAM) ANTLR3_MALLOC(sizeof(ANTLR3_INPUT_STREAM)); if (input == NULL) { return (pANTLR3_INPUT_STREAM) ANTLR3_ERR_NOMEM; } input->fileName = ANTLR3_STRDUP(fileName); /* Structure was allocated correctly, now we can read the file. */ status = antlr3readAscii(input); if (status != ANTLR3_SUCCESS) { ANTLR3_FREE(input->fileName); ANTLR3_FREE(input); return ANTLR3_FUNC_PTR(status); } /* Call the common 8 bit ASCII input stream handler * intializer type thingy doobry function. */ antlr3AsciiSetupStream(input, ANTLR3_CHARSTREAM); return input; }