|
22
|
| John Knoeller · 技术社区 · 15 年前 |
|
|
1
11
Ragel: http://www.complang.org/ragel/ 它符合你的大多数要求。
它生成的代码对程序的干扰很小。代码也非常快,而且Ragel语法比我见过的任何代码都更灵活和可读。这是一个坚如磐石的软件。它可以生成表驱动的解析器或goto驱动的解析器。 |
|
|
2
6
boost.spirit.qi(解析器标记器)或boost.spirit.lex(仅标记器)。我绝对喜欢qi,lex也不坏,但我只是倾向于把qi作为我的解析需求… Qi唯一的真正缺点往往是编译时间的增加,而且它的运行速度比手工编写的解析代码稍慢。不过,它通常比用regex解析要快得多。 http://www.boost.org/doc/libs/1_41_0/libs/spirit/doc/html/index.html |
|
3
5
Flex也有一个C++输出选项。
只需将以下内容添加到lex文件的头部:
那么在你的资料中,它是:
|
|
|
4
5
我想到了两个工具,尽管你需要自己找出合适的, Antlr 和 GoldParser . 在两种工具中都有可用的语言绑定,其中可以插入到C++运行时环境中。 |
|
|
5
2
boost.spirit 和 Yard parser 我想起来了。注意,具有词素生成器的方法被C++内部DSL(特定于域的语言)所取代,以指定令牌。只是因为它是代码的一部分,而不使用外部实用程序,只需遵循一系列规则来指定语法。 |
|
AstralHex · 矩阵乘法代码工作不正常 8 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 8 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 8 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 8 月前 |