⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 antlr3parser.c

📁 ANTLR(ANother Tool for Language Recognition)它是这样的一种工具
💻 C
字号:
/** \file * Implementation of the base functionality for an ANTLR3 parser. */#include    <antlr3parser.h>/* Parser API  */static void			setTokenStream		    (pANTLR3_PARSER parser, pANTLR3_TOKEN_STREAM);static pANTLR3_TOKEN_STREAM	getTokenStream		    (pANTLR3_PARSER parser);static void			freeParser		    (pANTLR3_PARSER parser);ANTLR3_API pANTLR3_PARSERantlr3ParserNew		(ANTLR3_UINT32 sizeHint){    pANTLR3_PARSER	parser;    /* Allocate memory     */    parser	= (pANTLR3_PARSER) ANTLR3_MALLOC(sizeof(ANTLR3_PARSER));    if	(parser == NULL)    {	return	(pANTLR3_PARSER) ANTLR3_ERR_NOMEM;    }    /* Install a base parser     */    parser->rec =  antlr3BaseRecognizerNew(ANTLR3_TYPE_PARSER, sizeHint);    if	(parser->rec == (pANTLR3_BASE_RECOGNIZER) ANTLR3_ERR_NOMEM)    {	parser->free(parser);	return	(pANTLR3_PARSER) ANTLR3_ERR_NOMEM;    }    parser->rec->super	= parser;    /* Parser overrides     */    parser->rec->exConstruct	=  antlr3MTExceptionNew;    /* Install the API     */    parser->setTokenStream		=  setTokenStream;    parser->getTokenStream		=  getTokenStream;    parser->free			=  freeParser;    return parser;}ANTLR3_API pANTLR3_PARSERantlr3ParserNewStream	(ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream){    pANTLR3_PARSER	parser;    parser  = antlr3ParserNew(sizeHint);    if	(parser == (pANTLR3_PARSER) ANTLR3_ERR_NOMEM)    {	return	(pANTLR3_PARSER) ANTLR3_ERR_NOMEM;    }    /* Everything seems to be hunky dory so we can install the      * token stream.     */    parser->setTokenStream(parser, tstream);    return parser;}static void		freeParser			    (pANTLR3_PARSER parser){    if	(parser->rec != NULL)    {	    if	(parser->rec->following != NULL)	    {		parser->rec->following->free(parser->rec->following);		parser->rec->following = NULL;	    }	    parser->rec->free(parser->rec);	    parser->rec	= NULL;    }    ANTLR3_FREE(parser);}static void			setTokenStream		    (pANTLR3_PARSER parser, pANTLR3_TOKEN_STREAM tstream){    parser->tstream = tstream;    parser->rec->reset(parser->rec);}static pANTLR3_TOKEN_STREAM	getTokenStream		    (pANTLR3_PARSER parser){    return  parser->tstream;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -