问题标签 [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.
parsing - 使用 Byacc 解析文本
Higuys,我想使用 Byacc 解析文本。文本由空格和换行清楚地构成。您如何看待这些规则来解析一个文本?
记号 TEXT 在 Jflex 文件中,它代表一个单词。其他两个规则,空白和行已关闭:
我的“文本”规则错了吗?塔克斯
flex-lexer - JFLEX AND CUP,无法使其正常工作
我正在使用 jflex 和 cup,试图制作一个 html 解析器,但无法使其正常工作,
Netbeans,编译过程不会停止,总是在继续,无法在解析树中正确添加更多“令牌”,也无法在“TEXTO”中添加空格,这会破坏整个树
词典
sintaticoh.cup
java 主程序
谢谢
comments - JFlex 将嵌套注释匹配为一个标记
在 Mathematica 中,注释以开头(*
和结尾,*)
并且注释可以嵌套。我目前使用 JFlex 扫描评论的方法包含以下代码
其中方法yypushstate
和yypopstate
定义为
让我有机会跟踪我正在处理的嵌套评论级别。
不幸的是,这会导致COMMENT
一个评论有多个标记,因为我必须匹配嵌套的评论开始和评论结束。
问题: JFlex 是否有可能将其 API 与诸如yypushback
or之类的方法一起使用,advance()
以在整个评论范围内准确返回一个标记,即使评论是嵌套的?
regex - JFlex 正则表达式中的特殊字符
我想在 JFlex 的正则表达式中包含所有特殊字符。所以我准备了一份如下。
有人可以告诉我有没有其他方法可以以更优化的方式覆盖所有特殊字符?
您还可以指出上面的正则表达式有什么问题,因为它给了我“行尾未终止的字符串”。编译错误?
java - 使用 byaccj 构建 ast 时出错
我正在使用 jflex 和 byaccj 来构建 AST。我无法解决错误并且我使用了类型转换,但错误仍然存在
对于语法中的以下规则:
我已经在我的.java
文件中声明了这一点
错误是:
java - 用于 CAD NC 程序的 Lexer
我正在评估使用不同格式的nc 程序作为输入来跟踪工具移动的可能性。使用词法分析器将不同的程序类型标记为元层,其中只存在统一的工具和点等似乎是个好主意。
但,
- 我对词法分析一无所知。有没有一种简单的方法来创建词法分析器?也许出于EBNF?
- 您如何看待我的方法,您是否看到一种更可行的方法来提取数据并支持多种 nc 文件格式?
附加信息
- 关于提供哪种具体类型的 NC 程序的信息是预先知道的。
- 我不必检查 NC 程序的语法。我认为它们是有效的,因为它们已经在生产中使用。
flex-lexer - Jflex Unexpected Character error
I started studying jflex. When i try to generate output using jflex for the following code I keep getting an error
Code trying to run
Can someone please help me figure out, what is causing the issue. The pattern is also unindented properly. thanks for your help.
parsing - Java CUP 和 JFlex 交互
我正在考虑将 CUP 解析器生成器用于项目。为了正确解析我将要编译的语言的一些结构,我需要词法分析器(由 JFlex 生成)来使用符号表中的信息(不是解析表——我的意思是我将存储的表有关标识符的信息),以便在调用其 next_token() 方法时生成正确的令牌类型。由于符号表中的信息静态依赖于程序文本,因此只有在使用解析器“同步”调用 next_token() 方法时才会起作用。换句话说,如果解析器在需要另一个标记时调用词法分析器,这将起作用,但如果(例如)有一个并行线程正在调用词法分析器并缓冲队列中的标记,则不会。
因此问题是:CUP 如何调用词法分析器?它是否在需要下一个令牌时调用它?我当然可以只编写一个 CUP 语法规范并检查生成的解析器的源文件以查看发生了什么,但这可能比必要的工作更多。我在相关网站上找不到这方面的任何信息。
非常感谢您提供的任何帮助!
intellij-idea - JFlex:如何让 yytext 在匹配期间继续
我正在尝试为 IntelliJ 语言插件编写词法分析器。在 JFLex手册中有一个可以使用 lex 字符串文字的示例。然而在这个例子中,他们使用一个 StringBuffer 来插入 lexed 字符的每个部分,并不断地构建一个字符串。这种方法的问题是它创建了正在读取的字符的副本,我不知道如何将该示例与 IntelliJ 集成。在 IntelliJ 中,总是返回一个 IElementType,然后使用函数 yytext() 从 yytext() 中获取相关文本getTokenStart()
,getTokenEnd()
这样整个标记的开始和结束就直接映射到输入字符串。
所以我希望能够返回一个令牌,并且关联的yytext()
应该跨越整个文本,因为上次返回另一个令牌。例如,在字符串文字示例中,我将读取\"
标记文字开始的标记,然后我更改为状态STRING
,当我\"
再次读取时,我更改回另一个状态并返回字符串文字标记。那时我希望 yytext() 包含整个字符串文字。
JFlex 可以做到这一点吗?如果不是,那么建议在匹配跨越多个操作的令牌后将内容从 StringBuffer 传递到 IntelliJ API 的原因是什么。
java - RSyntaxTextArea 自定义语言 JFlex
我正在尝试使用 JFlex 将自定义语言突出显示添加到 RSyntaxTextArea。但是,当我输入一个字符时,我得到一个 Index Out of Bounds 异常:
http://pastie.org/private/ygjyj4y5nludeu3dn1xug
即使我使用此处提供的示例 JFlex 代码也会发生这种情况:https ://github.com/bobbylight/RSyntaxTextArea/wiki/Adding-Syntax-Highlighting-for-a-new-Language
我不确定是什么原因造成的。有人能指出我正确的方向吗?