lexer相关内容

生成PHP源文件的AST

我想将PHP源文件解析为AST(最好是嵌套的指令数组). 我基本上想转换诸如此类的东西 f($a, $b + 1) 变成类似 array( 'function_call', array( array( 'var', '$a' ), array( 'expression', array( ..
发布时间:2020-05-25 00:31:37 PHP

您将如何解析缩进(Python样式)?

您将如何定义解析器和词法分析器规则,以解析使用缩进定义范围的语言. 我已经在Google上进行了搜索,并找到了一种聪明的方法来解析它,方法是在词法分析器中生成INDENT和DEDENT令牌. 如果我遇到有趣的事情,我会更深入地解决这个问题并发布答案,但是我希望看到解决该问题的其他方法. 编辑: 正如查理(Charlie)指出的那样,已经有了另一个非常相似的线程,如果没有的话一样. ..
发布时间:2020-05-25 00:29:38 Python

解析器/词法分析器规则的Antlr v3错误

我的Antlr语法有问题.我正在尝试为'typedident'编写一个解析器规则,该规则可以接受以下输入: 'int a'或'char a' 变量名"a"来自我的词法分析器规则"IDENT",其定义如下: IDENT : (('a'..'z'|'A'..'Z') | '_') (('a'..'z'|'A'..'Z')|('0'..'9')| '_')*; 我的"typedid ..
发布时间:2020-05-25 00:18:56 其他开发

解析数字和字符串是Lexer的工作吗?

解析数字和字符串是否是词法研究人员的工作? 考虑到我要问 lexer 是否应该 parse 输入这一事实,这听起来可能有些愚蠢.但是,我不确定这实际上是词法分析器的工作还是解析器的工作,因为为了正确地进行词法分析,词法分析器首先需要解析字符串/数字,因此如果解析器执行此操作,似乎代码将被复制. 这确实是词法学家的工作吗?还是词法分析器应该简单地将像123.456这样的字符串分解为字符串 ..
发布时间:2020-05-25 00:13:04 其他开发

寻找关于什么是“令牌化器",“解析器"的明确定义.和“词法分析器"是什么以及它们如何相互关联和使用?

我正在寻找"tokenizer","parser"和"lexer"分别是什么以及它们之间如何关联的明确定义(例如,解析器是否使用标记器,反之亦然)?我需要创建一个程序,该程序将通过c/h源文件提取数据声明和定义. 我一直在寻找示例并可以找到一些信息,但是我真的很难掌握语法规则,语法分析树和抽象语法树等基本概念以及它们之间的相互关系.最终,这些概念需要存储在实际的程序中,但是1)它们的外观如何 ..
发布时间:2020-05-25 00:10:12 其他开发

lexers vs解析器

词法分析器和解析器在理论上真的有很大不同吗? 讨厌正则表达式似乎很流行:编码恐怖,另一篇博客文章. 但是,流行的基于词法的工具:色素,什么时候足够词汇,何时需要EBNF? 有没有人将这些词法分析器产生的令牌与bison或antlr解析器生成器一起使用? 解决方案 解析器和词法分析器的共同点是 他们从输入中读取某些字母的符号. 提示:字母不一定必须是字母.但它 ..
发布时间:2020-05-25 00:07:18 其他开发

Oracle文本包含和技术内容

我正在搜索技术字"AN-XYZ99".所以我用 SELECT * FROM foo WHERE CONTAINS(bar, 'AN{-}XYZ99') > 0 但是我也得到了类似"FO-XYZ99"或"BAR-XYZ99"的结果.我该怎么做才能确保预期结果? 我用过 BEGIN CTX_DDL.CREATE_PREFERENCE('FOO','BASIC_LEXER' ..
发布时间:2020-05-22 02:46:31 数据库

C#中的Lexing部分SQL

我需要解析部分SQL查询(用于SQL注入审核工具).例如 '1' AND 1=1-- 应分解为类似令牌 [0] => [SQL_STRING, '1'] [1] => [SQL_AND] [2] => [SQL_INT, 1] [3] => [SQL_AND] [4] => [SQL_INT, 1] [5] => [SQL_COMMENT] [6] => [SQL_QUERY_EN ..
发布时间:2020-05-15 04:24:44 C#/.NET

在哪里可以找到MATLAB的正式语法?

我想编写一个词法生成器,将MATLAB语言的基本子集转换为C#,C ++等.为了帮助我做到这一点,我想找到一个包含MATLAB形式语法的文档.花了一些时间对此进行了调查,看来Mathworks没有提供它. 有人知道我在哪里可以找到这样的文件吗? 解决方案 编写自己的形式语法的绝佳机会:) 如果您应该选择自己写语法,我可以推荐如果没有其他要求,则指向BNFC的链接包含一些帮助和有 ..
发布时间:2020-05-06 13:28:06 其他开发

匹配Lua的“长括号"字符串语法

我正在为Lua编写jFlex lexer,但在设计正则表达式以匹配语言规范的特定部分时遇到了问题: 也可以使用长括号括起来的长格式来定义文字字符串.我们将级别n的开头长括号定义为开头方括号,后跟n个等号,再后面是另一个开头方括号.因此,级别0的左括号被写成[[,级别1的左括号被写成[= [,依此类推.相似地定义了一个长括号.例如,级别4的右方括号写为] ====].长字符串以任何级别的开头长 ..
发布时间:2020-05-04 07:11:04 其他开发

ANTLR Lua长字符串语法规则

我正在尝试为Lua创建ANTLR解析器.因此,我学习了Nicolai Mainero制作的语法(可在ANTLR的站点上下载,Lua 5.1语法)并开始工作. 语法很好.一件事不起作用:长字符串. Lua规范规则:文字 字符串也可以使用 用长括号括起来的长格式. 我们定义了一个 级别n作为开方括号 紧接着是n个等号,然后是 另一个开口方括号.所以, 级别0的长括号是 写为[[,长括 ..
发布时间:2020-05-04 07:05:57 其他开发

如何检测未完成的部分令牌并将其从输入的两个后续部分中获得的碎片连接起来?

我正在编写玩具终端,在其中我使用Flex来解析从tty获得的常规文本和控制序列. Cocoa机制的一个细节是,它从tty中读取1024个字节的块,以便随时在我的.lex文件中描述的任何令牌都可以分为两部分:令牌的某些字节是前1024个块的最后一个字节,其余字节是下一个1024字节块的头几个字节. 所以我需要某种方式: 首先检测到这种情况:将令牌拆分为两个1024字节的块时. 记住令牌 ..
发布时间:2020-04-30 10:12:41 其他开发

lex程序上没有注释行数

这里程序不计算注释行,单行注释和多行注释的数目,并给出以file.txt作为输入的总注释输出 file.txt //hellow world /*hello world1*/ /*hello world2 */ /*hello world3 hello world3.1*/ #include count.l %{ #include ..
发布时间:2020-04-30 10:11:58 其他开发

ANTLR lexer根本无法超前

我有以下语法: rule: 'aaa' | 'a' 'a'; 它可以成功解析字符串'aaa',但无法解析'aa'并显示以下错误: line 1:2 mismatched character '' expecting 'a' 仅供参考,这是词法分析器的问题,而不是解析器的问题,因为我什至不调用解析器.主要功能如下: @members { public stat ..
发布时间:2020-04-30 10:09:52 其他开发

在哪里可以学习编写词法分析器的基础知识?

我想学习如何编写词法分析器.我的大学课程分配了一个任务,我们必须编写一个解析器(和一个词法分析器一起使用),但这是在没有指示或反馈的情况下(超出标准)提供给我们的,所以我并没有从中学到太多. 在搜索了该主题之后,我只能找到相当高级的文章,这些文章着重于我认为比我所处的位置要走几步的领域.我想讨论一种为非常简单的语言编写词法分析器的基础知识,我可以以此为基础来研究对更复杂的语言进行标记化. ..
发布时间:2020-04-27 03:45:17 其他开发