问题标签 [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.
syntax-highlighting - Intellij 语言插件:使用 JFlex 词法分析器进行编辑时的语法高亮显示
我正在开发一个 Intellij Vala 插件。我坚持在编辑文件时使关键字突出显示工作。
当我打开文件时,所有关键字(到目前为止只是class
和ref
)都正确突出显示。但是,当我键入时class
,它不会突出显示(仅在我重新打开文件后)。有趣的是,ref
一切正常。
我设法调查,在输入每个字符时,我的词法分析器是在只有 4 个字符长的文本段上启动的。因此ref
,比这更短的结果被突出显示,但class
不是。字符串也是如此:如果它们短于 4 个字符(例如"a"
),则会突出显示它们。我查看了 Intellij SDK 的源代码,每次更改文档时分析的文本长度是使用某种段计算的。我在 Intellij 架构方面经验不足,但无法理解它。有人可以帮忙吗?
我的插件的来源(到目前为止没什么特别的)在这里。我正在使用 Intellij Community build 139.225.3
java - 识别 JFlex 1.4.3 中的小数
在我的 SL.lex 文件中,我有这个小数的正则表达式:
然后在
但是每次我尝试识别一个带点的数字时,它都会失败并且我得到一个错误。
代替 '。' 我也试过,,,,\\.
但每次都失败了\.
。"."
flex-lexer - Flex 函数 unput(int cahr),在 JFlex 中同样的函数
我们知道在 C Flex 中有一个函数 unput(int c) 可以将字符 c 放回输入流中,我想知道 JFlex 中是否有类似的函数。谢谢!
flex-lexer - JFlex:从多个文件中读取
我最近开始使用 JFlex 并遇到需要以特定顺序读取多个输入文件。当它完成第一个文件时,我希望 Jflex 继续其当前状态,并且扫描仪从新文件继续。
到目前为止,当我只有 1 个输入文件时一切正常:
jflex - jFlex 方法 (yypushStream,yypopStream..) 在用户代码中触发“找不到符号”错误
我在 jFlex 中有一些从 yytext() 生成 BufferedReader 的用户代码,然后将其推入流堆栈。
但是,似乎 javac 无法识别 yypushStream()、yypopStream()、yymoreStreams() 方法,并且每当从用户代码中调用这些方法时都会触发“找不到符号”错误。
例如:
返回以下输出:
我也试过了Yylex.yyPopStream();
,%public
没有效果。
是那些方法不能在用户代码中使用吗?
谢谢
macos - 在 MAC 上安装 JFLEX
有人可以告诉我如何在我的 Mac 上安装 jflex(Java 的快速扫描仪生成器)吗?我在谷歌上到处搜索,我找不到它。
你能帮助我吗 ?
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 个警告
java - Javascript 到 Java 正则表达式不起作用
我的正则表达式如下:
该正则表达式的目标是查找“列表”是否存在。列表可能包含:空列表([]、数字、'方法,您可以在其中传递参数'、符号、简单引号之间的字符串、变量等......几乎任何东西)。
它必须匹配以下测试用例:(不包括逗号)
[], [hola, 23, "阿尔法"], [A,b,c(x), d]
我让它在 regexr.com 上工作,据我所知,它使用 js 正则表达式,但是当将正则表达式转换为 java 时,它无法识别相同的测试用例。关于为什么会发生这种情况的任何线索?
java转换的正则表达式↑(不包括开头和结尾的引用)
我使用 jflex 作为构建词法分析器的工具
jflex - 使用 JFlex 忽略 java 注释
嗨,我正在尝试使用 JFlex 忽略 java 注释,但我无法让它工作,我总是在执行时出错。我使用了这两行:
我也尝试过不同的事情,比如commentary = [/][/].*
但没有成功。
regex - 正则表达式将字符串文字与换行符和回车匹配
我很难将字符串文字与换行符(\n)和回车符(\r)匹配。例如:
我尝试的是
但是这个正则表达式只能匹配上面没有\r
. 谁能帮我解决这个问题?
谢谢你。