如何让lex接受指定的字符串?
一般用Lex的时候,都是从命令行,或文件中取得要分析的文本。请问如果我现在想在我的程序上下文中指定一个字符串char * a,让lex分析字符串a,怎么办?
好像有用input宏的方法,但是我编译《lex&yacc》中的ch2-05.l源代码,没有成功,错误如下:
ch2-05.l:36: error: redefinition of 'input '
请各位高手能给我写一个实现我所要功能的小的示例代码吗?
其实我主要想知道的是,像mysql,sqlite那样,用了lex,yacc,或者lemon的代码,它们用这些东西的方式当然不会是把命令行的东西直接作为lex的输入吧?应该是先收集命令行的东西,在“凡调用”lex,yacc的功能,我就是想知道具体是如何实现这个功能的
多谢
[解决办法]
呵呵,等我喊个高手给你看看
[解决办法]
#define YY_INPUT( buf , result , max_size ) result = $YOURINPUTMETHOD( buf , max_size )
[解决办法]
如果是简单的,用re2c就很不错.