Tag: bison

如何在Windows上编译LEX / YACC文件?

我有Lex和YACC文件来parsing我的文件( .l文件和.y文件)。 如何编译这些文件,以及如何在Windows平台上为他们制作等效的.c文件?

input到flex词法分析器的string

我想创build一个使用flex / bison分析器的read-eval-print循环。 麻烦的是,flex生成的词法分析器需要FILE *types的input,我希望它是char *。 有没有办法做到这一点? 一个build议是创build一个pipe道,给它提供string并打开文件描述符并发送给词法分析器。 这是相当简单的,但它感觉错综复杂,不是平台独立。 有没有更好的办法?

问题调用std :: max

我编译我的野牛生成的文件在Visual Studio中,并得到这些错误: … \ position.hh(83):error C2589:'(':'::'右侧的非法令牌 … \ position.hh(83):错误C2059:语法错误:'::' … \ position.hh(83):error C2589:'(':'::'右侧的非法令牌 … \ position.hh(83):错误C2059:语法错误:'::' 相应的代码是: inline void columns (int count = 1) { column = std::max (1u, column + count); } 我认为这个问题是与std :: max; 如果我将std :: max更改为等效代码,那么就没有问题了,但有没有更好的解决scheme而不是更改生成的代码? 这里是我写的野牛档案: // // bison.yy // %skeleton "lalr1.cc" %require "2.4.2" %defines %define parser_class_name "cmd_parser" %locations %debug %error-verbose […]

Flex / Lex和Yacc / Bison有什么区别?

Flex&Lex和Yacc&Bison有什么区别? 我疯狂地search了互联网,我没有find任何可靠的答案。 我可以在Ubuntu上安装纯Lex和Yacc,或者我只能安装flex和bison。 我很困惑。 Lex或Yacc仍然由某人维护? 他们都是免费的吗? 如果Lex不是免费的,我为什么要将它安装在我的Ubuntu发行版上? lex –version lex 2.5.35

在8位embedded式系统上可以使用flex / bison吗?

我正在使用avr-gcc工具链为C语言的AVR微控制器编写一个简单的BASIC语言的解释器。 不过,我想知道是否有任何开源工具可以帮助我编写词法分析器。 如果我写这个在我的Linux机器上运行,我可以使用flex / bison。 现在我把自己限制在一个8位的平台上,我必须全部手工完成,否则呢?