问题标签 [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.

0 投票
1 回答
550 浏览

syntax-highlighting - Intellij 语言插件:使用 JFlex 词法分析器进行编辑时的语法高亮显示

我正在开发一个 Intellij Vala 插件。我坚持在编辑文件时使关键字突出显示工作。

当我打开文件时,所有关键字(到目前为止只是classref)都正确突出显示。但是,当我键入时class,它不会突出显示(仅在我重新打开文件后)。有趣的是,ref一切正常。

我设法调查,在输入每个字符时,我的词法分析器是在只有 4 个字符长的文本段上启动的。因此ref,比这更短的结果被突出显示,但class不是。字符串也是如此:如果它们短于 4 个字符(例如"a"),则会突出显示它们。我查看了 Intellij SDK 的源代码,每次更改文档时分析的文本长度是使用某种段计算的。我在 Intellij 架构方面经验不足,但无法理解它。有人可以帮忙吗?

我的插件的来源(到目前为止没什么特别的)在这里。我正在使用 Intellij Community build 139.225.3

0 投票
1 回答
124 浏览

java - 识别 JFlex 1.4.3 中的小数

在我的 SL.lex 文件中,我有这个小数的正则表达式:

然后在

但是每次我尝试识别一个带点的数字时,它都会失败并且我得到一个错误。

代替 '。' 我也试过,,,,\\.但每次都失败了\."."

0 投票
1 回答
625 浏览

flex-lexer - Flex 函数 unput(int cahr),在 JFlex 中同样的函数

我们知道在 C Flex 中有一个函数 unput(int c) 可以将字符 c 放回输入流中,我想知道 JFlex 中是否有类似的函数。谢谢!

0 投票
1 回答
517 浏览

flex-lexer - JFlex:从多个文件中读取

我最近开始使用 JFlex 并遇到需要以特定顺序读取多个输入文件。当它完成第一个文件时,我希望 Jflex 继续其当前状态,并且扫描仪从新文件继续。

到目前为止,当我只有 1 个输入文件时一切正常:

0 投票
1 回答
791 浏览

jflex - jFlex 方法 (yypushStream,yypopStream..) 在用户代码中触发“找不到符号”错误

我在 jFlex 中有一些从 yytext() 生成 BufferedReader 的用户代码,然后将其推入流堆栈。

但是,似乎 javac 无法识别 yypushStream()、yypopStream()、yymoreStreams() 方法,并且每当从用户代码中调用这些方法时都会触发“找不到符号”错误。

例如:

返回以下输出:

我也试过了Yylex.yyPopStream();%public没有效果。

是那些方法不能在用户代码中使用吗?

谢谢

0 投票
3 回答
1637 浏览

macos - 在 MAC 上安装 JFLEX

有人可以告诉我如何在我的 Mac 上安装 jflex(Java 的快速扫描仪生成器)吗?我在谷歌上到处搜索,我找不到它。

你能帮助我吗 ?

0 投票
1 回答
3478 浏览

java - 连接 CUP 和 jflex

我正在尝试使用
http://www2.cs.tum.edu/projects/cup/examples.php
http://www.cs.princeton.edu/~appel/的帮助来链接我的 parser.java 和 yylex.java现代/java/CUP/manual.html
http://jflex.de/manual.html

但我收到了这些错误。

错误:Yylex 不是抽象的,并且不会覆盖 Scanner 中的抽象方法 next_token()

错误:Yylex 中的 next_token() 无法在 Scanner 中实现 next_token()

如何解决它们?

我的 mini.flex 文件是:

我的 mini.cup 文件是:

我编译使用:

抛出的错误是:

Parser.java:19:警告:lr_parser 中的 [deprecation] lr_parser() 已弃用 public Parser() {super();}
^ Parser.java:22:警告:lr_parser 中的 [deprecation] lr_parser(Scanner) 已弃用public Parser(java_cup.runtime.Scanner s) {super(s);}
^ Parser.java:96: 警告:lr_parser 中的 [deprecation] lr_parser(Scanner) 已被弃用 public Parser (java.io.Reader input) { super (新的 Yylex(输入));}
^ Parser.java:137: 警告:[cast] 冗余转换为 Object Object start_val = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value ;
^ Yylex.java:12 :错误: Yylex 不是抽象的并且不会覆盖 Scanner
公共类中的抽象方法next_token () () in Scanner public int next_token() throws java.io.IOException { ^ return type int is not compatible with Symbol Yylex.java:631: error: in compatible types { return new java_cup.runtime.Symbol(sym.EOF); } ^ 必需:找到 int :符号3 个错误4 个警告









0 投票
2 回答
182 浏览

java - Javascript 到 Java 正则表达式不起作用

我的正则表达式如下:

该正则表达式的目标是查找“列表”是否存在。列表可能包含:空列表([]、数字、'方法,您可以在其中传递参数'、符号、简单引号之间的字符串、变量等......几乎任何东西)。

它必须匹配以下测试用例:(不包括逗号)

[], [hola, 23, "阿尔法"], [A,b,c(x), d]

我让它在 regexr.com 上工作,据我所知,它使用 js 正则表达式,但是当将正则表达式转换为 java 时,它无法识别相同的测试用例。关于为什么会发生这种情况的任何线索?

java转换的正则表达式↑(不包括开头和结尾的引用)

我使用 jflex 作为构建词法分析器的工具

0 投票
1 回答
686 浏览

jflex - 使用 JFlex 忽略 java 注释

嗨,我正在尝试使用 JFlex 忽略 java 注释,但我无法让它工作,我总是在执行时出错。我使用了这两行:

我也尝试过不同的事情,比如commentary = [/][/].*但没有成功。

0 投票
1 回答
1541 浏览

regex - 正则表达式将字符串文字与换行符和回车匹配

我很难将字符串文字与换行符(\n)和回车符(\r)匹配。例如:

我尝试的是

但是这个正则表达式只能匹配上面没有\r. 谁能帮我解决这个问题?

谢谢你。