9得票2回答
编写一个转译器直到实际映射发生的过程。

我希望能够理解转译器的工作原理,最好的方法当然是自己写一个。 我已经查阅了一些资料来理解这个过程的理论知识。我明白以下内容: 从我的理解中,我基本上需要编写两个类: 1. 词法分析器 2. 解析器 词法分析器 词法分析器将文件的源代码作为输入(输入流)。例如以下代码: if (so...

8得票3回答
ANTLR词法分析器规则中的句法谓词

介绍 观察文档,ANTLR 2 曾经有一种叫做predicated lexing的东西,它有像这个(灵感来自 Pascal)的示例: RANGE_OR_INT : ( INT ".." ) => INT { $setType(INT); } | ( INT ...

8得票1回答
如何在词法分析器生成器中高效实现最长匹配?

我想学习如何编写像flex这样的词法分析器生成器。我一直在阅读“编译原理:技术、原理和工具”(即“龙书”),对flex的工作原理有了基本的了解。 我的初始方法是:用户将提供一个正则表达式的哈希映射,将一个正则表达式映射到一个标记枚举。程序将按照给定顺序循环遍历每个正则表达式,并查看它们是否与...

8得票2回答
如何使用Flex实现双向扫描器?

作为一个宠物项目,我想尝试实现一种基本语言,可以用作 web 脚本语言。将 C++ 程序作为 Apache CGI 运行非常简单,因此真正的工作在于如何解析包含非代码(HTML/CSS 标记)和服务器端代码的输入文件。 在本科编译器课程中,我们使用 Flex 和 Bison 为简单语言生成扫...

8得票7回答
如何在不使用解析器生成器的情况下,用C或Objective-C编写解析器?

我是一名有帮助的助手,以下是您需要翻译的内容: 我正在尝试用C或Objective-C制作一个计算器,它接受类似于字符串 8/2+4(3*9)^2 并且返回答案2920。我不想使用像Lex或Yacc这样的生成器,所以我想从头开始编码。我该如何做到这一点?除了龙书之外,是否有任何推荐的文...

8得票6回答
C语言中什么会导致词法错误?

除了没有关闭注释 /*...,在C语言中什么构成了词法错误?

8得票1回答
在Ruby中解析结构化文本

在SO上有一些关于在Ruby中解析结构化文本的问题,但它们都不适用于我的情况。 我是Ruby Whois库的作者。该库包括几个解析器,用于解析WHOIS响应并从内容中提取属性。 到目前为止,我使用了两种方法: 正则表达式用于基本解析器(例如whois.aero) StringScann...

8得票1回答
ANTLR4:import和tokenVocab之间有什么区别?

import语句或tokenVocab选项可用于解析器语法中,以重用词法分析器语法。 Sam Harwell 建议始终使用tokenVocab而不是import [1]。 在import和tokenVocab之间有什么区别吗?如果没有区别(而Sam建议使用tokenVocab),那么为什么...

7得票2回答
Prolog DCG:编写编程语言词法分析器

目前我试图将词法分析器和语法分析器分开,基于书籍《Prolog and Natural Language Analysis》的建议,该书对词法分析/标记化并没有详细说明。所以我正在尝试,并且发现几个小问题,这表明我可能遗漏了一些显而易见的东西。 所有我的小型标记解析器似乎都工作得很好;目前这...

7得票3回答
FLEX:有没有一种方法可以同时返回多个标记?

在Flex中,我想为正则表达式的一个匹配返回多个标记。有没有办法做到这一点?