ragel

    0热度

    1回答

    我使用Ragel和C++作为主机来解析一些命令。这些命令从文件中读取,然后使用以下语法进行分析。 该命令的语法如下::后或信号名后加逗号, example: #1 Signal_representation{ #2 Activity: #3 Button_Active, #4 Buttons_Inactive; #5 Switch: #6 Horn, #7 Up_Arr

    0热度

    2回答

    我正在测试Ragel中的状态和状态行为的功能。我有以下Ragel程序: ragelScaffolding.rl: #include <stdio.h> #include <stdbool.h> #include <string.h> char *p, *pe; int cs; void runRagelMachine(char instructions[], int instruct

    0热度

    1回答

    我想了解过去2天的Ragel,并且一直面临着与Ragel语法相关的一些问题。我的目标是编写一个解析器,以C++作为宿主语言识别Regex命令。现在我想认识与分析器以下命令 - :LoadSdf [0-9]+ 下面是下面的代码我想: #include <iostream> #include <string.h> #include <stdio.h> %%{ action done { p

    0热度

    1回答

    我是Ragel的新手,一直试图解析正则表达式的特定模式。如果发现匹配,我想要执行动作done,如果没有匹配,即使对于任何单个字符丢失,也要执行parse_error。 这是我写的代码: #include <iostream> #include <string.h> #include <stdio.h> %%{ action done { printf("done\n"); }

    2热度

    1回答

    我正在创建一个相当简单的解析器,它没有递归结构或任何太具有挑战性。 我想要做的是当我跑到一个“命令”我想调用一个单独的解析函数(主机语言),如parseCommandType1,然后将有一个单独的返回类型等取决于命令。然后该函数将调用它自己的Ragel机器来解析命令的内容。 如果我想在一个Ragel解析器中完成所有这些,逻辑会非常快速地变得非常难看,因为基于命令类型,我需要以不同方式解释数据并创建

    1热度

    1回答

    在以下情况下捕获内部文本的最佳方式是什么? inner_text = any*; tag_cdata = '<![CDATA[' inner_text >cdata_start %cdata_end ']]>'; 的问题是,它似乎像cdata_end动作闪光几次由于事实inner_text可以匹配]。

    0热度

    1回答

    我试图解析命令:LoadSdf 12 abc.ldf 我想在命令的每个阶段(:LoadSdf,12,abc.ldf)来获取错误。 但是我得到了不同的问题,如问题的后面部分所示。 以下是我Ragel伪代码 %% machine ldf; LOAD_CMD = ":LoadSdf" $!(cmd_error); CHANNEL_NR = [digit]+ $!(chan

    0热度

    1回答

    所以我有一个简单的字符串,我希望能通过ragel状态机运行。 key1 = value1; KEY2 = “VALUE2”; KEY3 =值3 这里是我的ragel的简化版本 # Key Value Parts name = (token+) %on_name ; value = (ascii+ -- (" " | ";" | "," | "\r" | "\n" | "\\" | "\""))

    0热度

    2回答

    我正在写我的第一个Ragel程序。我的目标是编写一个四功能计算器。请不要将您的代码发送给我。这是为了我的学习体验。 我想要做的是匹配一个正则表达式与一个浮点数并打印出来的值。 Ragel程序和C/CPP代码编译,但是我的返回值始终为零,并且print语句从不执行。以下是我的代码。我做错了什么? /* * This is a four function calculator. */ #inc

    0热度

    1回答

    Ragel 6.10手册中有很多关于其生成的FSM的插图。其中一些显示状态DEF。 尽我所能说这是从来没有定义/讨论。 什么是DEF状态? 它有什么含义?例如如果它出现在你的FSM ABC应该做 在此先感谢