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(特定于域的语言)所取代,以指定令牌。只是因为它是代码的一部分,而不使用外部实用程序,只需遵循一系列规则来指定语法。 |
![]() |
Community wiki · 需要改变的用户界面模式? 1 年前 |
![]() |
LITzman · 使用状态处理颜色主题更改 1 年前 |
![]() |
Community wiki · 进程。退出(0):输出消失? 1 年前 |
![]() |
arsaces · 将文本添加到特定文件的末尾 2 年前 |
![]() |
YGranja · 库<图形。h> MinGW-W64缺少 2 年前 |
![]() |
Felipe Palermo · Ctrl键仍被按下,按键事件() 2 年前 |
![]() |
HCJ · win cmd中的批处理脚本循环 2 年前 |