问题标签 [quex]

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 回答
170 浏览

gpl - 由受 LGPL 覆盖的词法分析器 (Quex) 生成的程序是否需要采用 LGPL?

我想使用Quex作为扫描仪生成器,但我注意到 Quex 包含在 LGPL 中。这是否意味着我生成的二进制文件也将被 LGPL 覆盖?

(我希望这算作一个“编码”问题——我不知道要问哪个其他堆栈交换站点。)

0 投票
2 回答
102 浏览

c++ - 使用标记器时的 QUEX_PATH 问题

我正在尝试安装 trainable-tokenizer。我已经按照自述文件安装了所有依赖项。这是 trainable-tokenizer https://github.com/jirkamarsik/trainable-tokenizer。我已经使用来自 quex.org 的安装程序安装了 quex.deb,这是 trainable-tokenizer 的依赖项。

当我尝试这样做时sudo make install,出现以下错误

但我已经设置了 QUEX_PATH。

我还添加export QUEX_PATH=/opt/quex/quex-0.65.4/.bashrc

但我仍然得到同样的错误。

0 投票
1 回答
61 浏览

c++ - 将词法分析器移植到 Quex 的较新版本时出现问题

我曾经向我的 Quex 驱动的词法分析器提供一个std::basic_stringstream<char>发送到构造函数的信息,如下所示:

这工作 using Quex 0.64.8,但似乎 API 从那时起发生了变化,因为它似乎不适用于 version 0.67.4

任何关于我应该如何将我的代码移植到新版本的指针将不胜感激。

此致,

帕特里克·J

编辑:删除了关于字符串累加器的问题,它将作为一个单独的问题重新发布。

0 投票
1 回答
52 浏览

c++ - 将词法分析器字符串累加器移植到新版本的 Quex 时出现问题

在将我的词法分析器文件从 Quex 0.64.8 移植到 0.67.4 时,我遇到了字符串累加器的一些问题。我得到的问题如下所示:

我想Accumulator__clear问题的原因是双下划线。也许我需要为 Quex 提供一个新的开关,或者 API 在新版本中发生了变化。无论哪种方式,我都不知道如何解决这个问题。

以及来自我的词法分析器(.qx)的示例,它产生了问题:

任何解决此问题的帮助将不胜感激。

最好的问候,帕特里克 J

0 投票
1 回答
173 浏览

c++ - Quex:为标识符定义 UTF8 正则表达式

我正在升级以前使用的 Ecmascript Quex 0.64.8引擎Quex 0.67.5。我已经启动并运行了词法分析器,它现在似乎只能检测 ANSI 令牌,而不能像以前那样检测 UTF-8 令牌。

本质上,我所做的是--codec utf8在运行 Quex 时提供标志并使用以下代码来识别标识符:

这个想法是,而不是指定我定义的所有允许的令牌,而不是不可接受的,而是排除那些。新的词法分析器可以很好地检测诸如“test1”或“safari”之类的标识符,但似乎对“日本语”和“Örjan”有问题。我也只使用 utf-8,不使用 ICU 或 Iconv。

感觉好像我在这里误解了一些东西。任何解决此问题的帮助将不胜感激。

编辑:

知道我使用以下参数运行 Quex 可能很有用:

编辑2:

由于 utf-8 解析在示例中有效,因此我未能重新创建一个小示例。因此,我创建了我的 ecmascript 引擎的词法分析器部分的独立版本,希望更容易看出哪里出了问题。

我不再清楚我的问题是否实际上与解析 utf8 令牌有关。很可能在我的 .qx 文件中可能有问题......无论哪种方式,这是我的 ecmascript 词法分析器的独立版本。

CMakeLists.txt

ecmascript.qx

ecmascript_yacc.hpp

_main.cpp

id_test.js // 用于测试词法分析器

此致,

帕特里克·J

0 投票
1 回答
49 浏览

compiler-construction - Quex 0.69.4 generates include file that includes itself causing infinite loop

I work on inherited code base that uses Quex 0.65.7. It compiles, but requires -fpermissive during compilation, which isn't something that I'm willing to live with. As code requiring -fpermissive option in g++ lives in files provided as a base by Quex itself, I'm trying to build lexer using Quex 0.69.4, installed using quex_0.69.4-0_all.deb file from project's download page. Lexer definition is very simple. It lives in file lexer.qx, wholly pasted below:

From this, lexer is generated as follows:

File mentioned in --foreign-token-id-file option is equally simple:

Output from option --foreign-id-file-show indicates that all tokens were read and are understood:

Lexer generation finishes successfully, but among generated files is zs_expr_eng-token.hxx and its content is pasted below:

This is not everything, there are also 7 new line characters - so it is basically empty and includes itself without guards. This of course means that compiler fails to compile this source code:

Any ideas what should be done to prevent it? I don't think this is common occurrence as it would break all Quex-based projects.