问题标签 [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 回答
422 浏览

macos - IntelliJ 社区 12 CE + JFlex

我正在按照教程为IntelliJ 12创建自定义语言插件,但我遇到了关于jFlex 插件的几个问题。

安装插件时(通过 IntelliJ 插件浏览器),它配置了以下路径:

  • 柔性:/Applications/IntelliJ IDEA 12 CE.app/tools/jflex
  • 弹性骨架:/Applications/IntelliJ IDEA 12 CE.app/tools/jflex/idea-flex.skeleton

IntelliJ 警告我它找不到 jFlex 应用程序,所以我zip从 jflex.de 下载了最新的包并将其解压缩。我在 IntelliJ 中更新了 jFlex 插件配置,并在尝试构建时出现新错误:./lib/jflex.jar路径上未配置。

  • 柔性:/Users/skyler/jflex-1.4.3/jflex-1.4.3/bin
  • 弹性骨架:/Users/skyler/jflex-1.4.3/jflex-1.4.3/src/default.skeleton

我确实确认 jar 存在于/Users/skyler/jflex-1.4.3/jflex-1.4.3/lib. 当然,错误中引用的路径不会找到 jar。

所以这是我的问题:

  1. 文件在哪里idea-flex.skeleton?我找不到它了。
  2. 我是否需要更新jflex可执行文件以使路径正确,或者移动文件,并且使用jflex进行语言插件开发是否会因此更改而出现任何问题?
0 投票
1 回答
139 浏览

tokenize - 行为不端的 JFlex 规则 - 匹配错误的规则

我正在编写一个(简单的?)JFlex 标记器,其目标是获取一个字符串,并将中文(或者更确切地说使用汉文)的块和拉丁文的部分分开。标记器应用于品牌名称,在我的用例中,品牌名称可能同时包含拉丁和中文名称,例如“联想联想”。

品牌名称还可以包含数字 (7up)、连字符 (Hewlett-Packard)、& 符号 (P&G) 等。我的标记器主要工作,除了中文和非中文名称没有任何空格或分隔符写在一起的情况。具体来说,这些是成功和不成功的解析示例:

  • “Calvin Klein 卡尔文.克莱” - 成功拆分为“Calvin Klein”和“卡尔文.克莱”,并被标记为具有预期脚本(拉丁文和汉文)

  • “圣威廉SAINT WILLIAM” - 错误地拆分为“圣威廉SAINT”(标记为汉字)和“WILLIAM”(标记为拉丁文)。

  • “史努比SNOOPY”——被误认为是单汉代币。

我认为我的规则非常明确,但结果似乎表明并非如此。这是我的规则集:

我究竟做错了什么?

谢谢!!

编辑

我询问了 SourceForge JFlex 邮件列表上的人,其中一位回复了我 - 结果表明 JFlex 1.4.* 无法处理无法以 16 位表示的 Unicode 字符。由于我在上面为汉字指定的某些字符范围超过了 16 位值,因此 JFlex 会感到困惑。从正则表达式中删除那些使它一切正常。

供参考:http: //jflex.de/manual.html#SECTION000101000000000000000

0 投票
1 回答
3056 浏览

java - Jflex 正则表达式

我正在尝试编写一个识别字符串文字的 .flex 文件,该字符串是由双引号括起来的字符序列。没有转义字符,但我无法识别它们,这是我的最新尝试。

有什么建议么

0 投票
1 回答
96 浏览

java - How to create regex to match "String""" as two strings

I need to match "String""" as two strings.

I'm using this for my school project (Lexer implementation) and I'm having a problem with situation when I get something like "Something""" being matched as one string Something""

Thank you guys in advance!

0 投票
1 回答
121 浏览

regex - Jflex 捕捉比赛

我正在使用JFlex,我想匹配类似的东西:

我的模式:

但它匹配管道“ |”以及前面的行(空格)。我尝试使用捕获,但无法使其正常工作。有什么建议么 ?

0 投票
2 回答
305 浏览

jflex - JFlex 和 NUL 字符

有人知道如何在 java JFlex 中处理 '\0' 吗?我尝试将编码作为正则表达式进行匹配

\0 { /* 什么都不做 */ }

但它没有用。该文档不提供任何信息。我需要这个的原因是因为我正在处理一些来自 C/C++ 源的字符串。

问候。

0 投票
1 回答
170 浏览

jflex - JFLEX 安装错误

我正在尝试在我的 Windows 8 64 位桌面上安装 JFLEX,以便完成一些大学课程。

我已经下载了文件,然后执行了以下步骤:

打开名为 JFLEX 的批处理文件,地址如下:

我右键单击并选择要编辑的选项,打开记事本:

然后我更改了以下两行:

第二行是包含该文件的文件夹:

然后我保存并关闭了这个文件并双击我刚刚编辑的批处理文件。

它会打开一个命令提示符,上面写着:

然后此窗口立即关闭

任何想法我做错了什么?

0 投票
1 回答
1639 浏览

intellij-idea - 自定义语言的 BNF 规则语法高亮

我正在尝试使用 Grammar-Kit 插件为 IntelliJ 开发自定义语言插件。我可以轻松地为定义的标记提供语法突出显示,但我无法弄清楚如何在元素或标记父级别突出显示。

这是一个快速而肮脏的示例语言 - https://github.com/carymrobbins/intellij-plugin-example

解决方案

正如@ignatov 建议的那样,扩展 Annotator 类并将其注册到您的plugin.xml. 在下面的示例中,我们command通过定义visitCommand方法来突出显示元素。

0 投票
1 回答
2432 浏览

jflex - JFlex - 如何测试扫描仪

我刚刚开始学习 JFlex。我正在研究一个官方的 Jflex 示例,它是 Java 语言的扫描器。在自述文件中它说:

但是当我在 cmd 中尝试这个时,我收到一条错误消息,说“找不到或加载主类 TestLexer”。有人知道为什么吗?先感谢您。

0 投票
1 回答
75 浏览

regex - pos 的正则表达式。十进制整数,将是数字的倍数

我写的是..

假设我们找到一个 7 的正则表达式,那么 reg exp 中 7 的倍数将是 [7|14|21|28]

这看起来合理吗?请告诉我..