- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我打算定义一个类似于 Open Sound Control 的协议(protocol), 但有点不同。
这个想法很复杂,我不会在这里尝试描述它。
假设我要使用 libev 和主题行中的一种工具来实现一个 OSC 库。
人们会推荐什么,为什么?
Ragel看起来很诱人,虽然ANTLR可能也是对的。然而,坚持传统的 UNIX 事物也是一个好主意(即 lex/yacc)。
此外,我最感兴趣的是什么最适合嵌入式平台(比如运行 Linux 的 200MHz ARM 芯片)。
最佳答案
Wikipedia 有一个列表,其中包括 ANTLR、Lemon、Flex、Bison、Ragel 等。
http://en.wikipedia.org/wiki/Comparison_of_parser_generators .
关于c - 在哪里可以找到 Flex/Bison、Ragel、ANTLR 等的比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162299/
是否有更好的方法来要求 Ragel 消耗所有输入?这是我现在使用的: =begin %%{ machine my_lexer; # ... # extract tokens and sto
我正在考虑使用 Ragel 在嵌入式系统中为 NMEA GPS 数据生成词法分析器。我会有一个任意大小的缓冲区,我可以在其中读取来自 UART 的数据块,并且对于每次读取,我都会将该数据传递给词法分析
我正在为相当简单的二进制协议(protocol)编写 Ragel 机器,我在这里展示的是更简化的版本,没有任何错误恢复,只是为了演示我试图解决的问题。 因此,这里要解析的消息如下所示: 机器看起
假设我们想要在用户输入 JTextField 时验证用户输入。为了验证用户输入,我想知道我是否可以使用 Ragel。 假设输入应该遵循这个例子的正则表达式: [a-z]{2,5}ABC[0-9]+ 我
我正在尝试实现一种语言,我正在使用 Ragel 作为词法分析器(并将 bison 作为解析器)。我希望能够在我的语言中支持字符串插值,但我不确定如何做到这一点。 我的词法分析器对语言的主要部分使用如下
我一直在研究简单模板语言的解析器。我用的是拉格尔。 要求并不高。我试图找到可以嵌入输入字符串中任何位置的 [[tags]]。 我正在尝试解析一种简单的模板语言,这种语言可以在 HTML 中嵌入诸如 {
我是 Ragel 的新手,一直在尝试解析 Regex 表达式的特定模式。如果找到匹配项,我希望执行操作 done ,如果没有匹配项,即使缺少任何单个字符,我也希望执行 parse_error 。 这是
我有两个状态;一个是另一个更一般的状态的特定实例。我相信避免同时进入两种状态的正确方法是使用 k>1 实现前瞻,但我找不到任何示例说明如何执行此操作。 Ragle 用户指南说: In both the
%%{ machine microscript; action ClearNumber { currentNumber = 0; } action RecordDigit {
我正在创建一个相当简单的解析器,它没有递归结构或任何太具有挑战性的东西。 我想做的是,当我遇到一个“命令”时,我想调用一个单独的解析函数(以宿主语言),例如 parseCommandType1,然后根
这是语法的起点: %%{ machine xo; char = "x" | "o"; group = "(" char* ")"; main := group; }%% 例如,它处理
我正在尝试为我出于个人原因而设计的 C/C++/C#/Java/D 之类的编程语言编写扫描仪。对于这个任务,我使用 Ragel 来生成我的扫描仪。我无法准确理解许多操作符何时触发 Action ,可能
我正在尝试使用 Ragel 来实现一个简单的是/否 fsm。不幸的是,语言规范由大约一千个正则表达式的并集组成,其中 * 运算符在大多数表达式中出现一次或多次。因此,可能状态的数量激增,似乎不可能使用
更新 2 原始问题:如果我不需要回溯,我可以避免使用 Ragel 的 |**| 吗? 更新的答案:是的,如果您不需要回溯,您可以使用 ()* 编写一个简单的分词器。 更新 1 我意识到询问 XML 标
我是编译器世界的新手,最近听说了一种叫做解析器生成器的东西。根据我(认为)我所理解的,解析器生成器接收一个语法文件并输出一个源代码文件,该文件可以使用给定的语法解析文件。 几个问题: 我理解正确吗?
过去 2 天我一直在努力学习 Ragel,但一直面临一些与 Ragel 语法相关的问题。我的目标是编写一个解析器,以 C++ 作为宿主语言来识别 Regex 命令。现在我正在尝试使用解析器识别以下命令
我继承了一个使用 Ragel 进行字符串解析的 C++ 项目。 这是我第一次看到这样做,我想了解为什么有人会使用 Ragel 而不是 C++ 来解析字符串? 最佳答案 parser generator
我正在与 Ragel 合作评估 FSA,我想嵌入一个用户操作,该操作在我的机器完成输入测试时运行。无论机器是否以接受状态结束,我都需要运行此操作。我从 Ragel 指南中获取了这个经过修改的示例,它说
我在 Go 中使用 Ragel 6.10。我确定这可能是我的代码有问题,但是当我尝试将堆栈与扫描仪 block 一起使用时,我遇到了一些奇怪的错误。我正在尝试设置括号匹配,我的代码大致如下所示; Ob
函数模板如下: func GetIntersection(firstRegex string, secondRegex string) string { ... } 我正在尝试使用 Ragel
我是一名优秀的程序员,十分优秀!