问题标签 [jflex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - JFlex - “箭头”的正则表达式
因此,如果我想通过 JFlex 的正则表达式键入箭头字符 -->,我会认为它只是字符串“-->”。但是,如果我尝试这样做,我总是会收到无法匹配输入错误。
不工作。据我所知,转义某些字符的组合也没有。我知道这些字符中的每一个在 flex 中都是特殊的,而且我知道 /-->/ 在其他语言中工作的文字方式在 Java 中是不会的。
我错过了什么?
java - JFlex 错误:意外字符:YYINITIAL
我正在尝试将 JFlex 与以下输入文件一起使用:
(它还没有 100% 完成,我只是想看看我是否有任何错误)
无论如何,当我尝试使用 JFlex 时,它给了我以下错误:
我以为扫描仪是从哪里开始的,并且默认情况下总是声明它?我错过了什么吗?
谢谢您的帮助。
java - JAVA 文件中的 JFlex 编译错误
我是 JFlex 的初学者。我正在使用 Ubuntu 并安装了 Java 和 JFlex。java 和 jflex 命令都在工作意味着正确设置了 PATH 变量。当我运行我的 jflex 文件时,它运行时没有错误,但是在运行 .java 文件时,它给出了一堆关于 sym 的错误。我的执行行如下...
错误如下:
java - 是否可以使用字符串构造 Yylex 对象?
最近我一直在使用 Jflex,我注意到当我尝试构造 Yylex 对象时,它只接受java.io.Reader
and java.io.InputStream
。如果我只想通过仅使用字符串来构建对象,我该怎么办?,像这样:
在我正在尝试构建的系统中,我希望用户写一些东西,然后将 Yylex 方法应用于它。在我看到的与我的想法相似的模型中,用户输入一个字符串,然后将其写入 Yylex 将读取的文件中。
有可能这样做吗?还是我误解了什么?除了 Jflex,您还推荐其他工具吗?
谢谢!
computer-science - 结合语法中缀后缀前缀
我正在使用 Jflex 和 CUP 编写某种计算器,我能够为中缀、后缀和前缀表示法制作语法,如下所示,如果我只使用每种语法而不将它们组合起来,它们就可以很好地工作。
现在的问题是如何将它们组合起来而不会出现减少/移位错误,我已经做了几天了,但我真的无法弄清楚。主要问题是当 F --> NUMBER 和 E --> NUMBER 时它们会出现 reduce/shift 错误,我还尝试添加更多规则来尝试减轻 reduce/shift 错误,但我没有正确理解。另请注意,我能够组合其中两个但不是其中三个的任意组合。
我所做的一种方法是尝试通过将 E 更改为 T 并创建新的规则 T --> E|Number 来将我的前缀和后缀合并到我的中缀,但我仍然
如果有人可以解释我如何尝试将它们结合起来,那将非常有帮助。
这是我的语法
jflex - 无法让 JFlex 输出编译
我必须为 C 的一个子集制作一个编译器,我决定使用 JFlex 和 Cup。但是,当我创建我的.jflex
文件时,它可以使用 JFlex 正常编译,但输出(.java 文件)将无法编译。
目录:
所以我执行的命令如下:
我不断收到以下错误:
基本上它不知道sym
类,我想。我正在尝试通过以下示例使基本版本正常工作,但我无法管理。任何指针?
编辑:
我从 JFlex 手册中输入了示例并尝试编译该示例,但它也给了我同样的错误。所以我一定做错了什么。任何指针?
tinyc.jflex:
jflex - 在 CUP 中解析 EOF 令牌
我无法让我的 CUP 解析器解析 EOF 令牌。我在文档中读到,在我的 Jflex 代码中使用该%cup
标志意味着存在如下内容:
这一切都很好,但是当我在我的语法(CUP 文件)中尝试以下第一条规则时:
我收到 CUP 未声明 EOF 的错误消息。
好的,所以我将以下内容添加到我的 CUP 文件中:
不,因为 CUP 告诉我:
但是,在没有定义终端 EOF 的情况下,我查看了sym.java
Cup 生成的类,我发现:
所以我很不知道如何解决这个问题。两者的文档在这个问题上真的很模糊。
编辑:我想解析 EOF 令牌的主要原因是因为我想最后打印出我的符号表和其他用于调试目的的东西。
jflex - 这个最简单的 jflex 代码有什么问题?
我正在学习 jflex,并编写了一个最简单的 jflex 代码,它生成了一个字符#
:
然后我生成一个PubspecLexer
类,并尝试它:
但它打印 3null
秒:
为什么它既不返回Comment
也不返回BadCharacter
?
regex - 如何在 jflex(flex) 词法分析器中使用“\S”?
我想匹配非空格字符,所以我用 JFlex 定义了 flex 文件:
然后我尝试生成的java代码来分析字符串“abc”,但我得到:
如果我将声明更改为:
然后我可以得到预期的结果:
为什么\S
不工作?这不是“非空白”的意思吗?
yaml - 使用 JFlex/flex 为 YAML 编写词法分析器是一个不错的选择吗?
我正在尝试使用 JFlex 为 YAML 编写词法分析器,但发现它很难,因为:
- YAML 中的缩进很敏感
有多行字符串,如:
很难实施。
我不知道如何为他们确定并返回正确的令牌类型。
我徘徊使用JFlex是一个不错的选择吗?或者我需要一些其他的 YAML 工具吗?