问题标签 [lexical]

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

python - ply.lex 是否解析一次相同的令牌?

我正在阅读一个词法解析文档,以便我可以解析一些参数,并且我完全按照文档创建了一个解析器。这是整个代码:

我只是创建了一个示例参数列表,我得到了这个输出:

第一个和第二个示例参数被正确解析,但第三个不是。第三个示例参数是 EXPRESSION+LESS+NUMBER,而它必须是 EXPRESSION+MORE+NUMBER+AND+EXPRESSION+LESS+NUMBER。所以我认为可能存在这些问题之一:

  • ply.lex 只解析一个标记:在上面的代码中,ply.lex 无法解析两个单独的表达式,它返回最新的标记作为其类型。"[kare]>400&&[kare]" 是 EXPRESSION,因为它以第二个 [kare] 的最新 EXPRESSION 令牌结尾,而 800 是 NUMBER,因为它是最新的 NUMBER 令牌。

    !!!或者 !!!

  • t_EXPRESSION 变量中有一个错误:我将此变量定义为“[.*]”以获取这两个括号 ([]) 中的所有字符。第三个示例参数的第一个标记是“[kare]>400&&[kare]”,因为它只是以这些括号开始和结束,并且在其中包含 .*(每个字符),但我认为解释器会在第一个 ( ]) 字符由于是第一个。

所以我找不到解决方法,但在这里问。

总的来说,这就是我正在努力解决的问题

我明白了

但我期待的东西更像

0 投票
0 回答
74 浏览

c++ - 此函数或引用使用的向量是否泄漏内存?

我在清除指向使用此方法的根的指针映射时遇到问题。如果我不使用它,一切都很好。

我需要将从文件中读取的所需数字数量转换为双精度向量。

我的问题是这种方法会泄漏内存吗?

如果是这样,它是可以修复的还是我们有其他选择?

0 投票
0 回答
151 浏览

variables - 使用 B 访问词法范围的问题

出于调试目的,我想访问具有特定属性集的不同子例程的词法范围。这很好用。当第一个变量存储一个字符串时出现问题,然后我得到一个空字符串。我做这样的事情:

就像我在评论中所说的那样,评估是为了防止暂存器中 B::Special 对象的错误。输出:

第一个输出没问题,第二个应该输出“TEXT”而不是0。

我究竟做错了什么?

编辑:通过一点编码,我得到了变量的所有值,但没有存储在@varnames 和@varcontents 的相同索引中。所以现在的问题是如何(以何种顺序)将值存储在@varcontents 中。

EDIT2:添加了可运行脚本来演示该问题:变量名和变量值未存储在两个数组(@varnames 和 @varcontents)的同一索引中。

0 投票
0 回答
89 浏览

xcode - 测试 kit.h 文件中的词法和预处理器问题?Xcode 4 测试文件

我今年 14 岁,对 Xcode 4.6 还很陌生,所以我真的不太了解它。当我在开发我的应用程序时,我在我的 .h 测试文件中突然出现一个错误,说词法和预处理器问题。我没有在该文件上输入任何内容,每次重新开始时,它都会弹出。它还说找不到我的导入文件?除了项目之外,我没有导入任何东西。我如何解决它?

0 投票
1 回答
7681 浏览

caching - 从 R 中的缓存对象返回逆矩阵,检查输入矩阵是否未更改

披露:这是来自名为 R 编程的 Coursera 课程的编程作业。我最初拥有完整的代码,但由于我意识到我不允许上传我的完整代码(假设我上传的代码不起作用),所以我把它的一部分删除了。

该任务涉及可能需要较长计算时间的词法范围和缓存功能。具体来说,我使用solve() 来查找矩阵的逆矩阵并使用自由浮动变量对其进行缓存。我也在尝试缓存输入矩阵,以便我可以检索它并将其与任何新的输入矩阵进行比较。我在后者上返回一个错误,如下所述。

首先,我按照下面的代码同时运行 makeCacheMatrix 和 cacheSolve。

第一个函数 makeCacheMatrix 创建一个特殊的“矩阵”对象,可以缓存输入矩阵及其逆矩阵

第二个函数 cacheSolve 调用存储在 makeCacheMatrix(上图)返回的特殊“矩阵”中的函数。如果已经计算了逆(并且矩阵没有改变),则 cacheSolve 从缓存中检索逆。如果输入是新的,它会计算数据的逆并通过 setinverse 函数将逆设置在缓存中。

}

然后我使用以下代码对其进行测试:

正如预期的那样,这给出了相反的结果。

但是当我尝试通过再次运行相同的矩阵来测试缓存能力时。

它返回“x$setmatrix() 中的错误:缺少参数“y”,没有默认值。但是,我认为我在 makeCacheMatrix 的第二行中提供了默认的 NULL。我希望它给出消息“获取缓存的数据”然后反过来。

我究竟做错了什么?如何使用 setmatrix 缓存输入矩阵并提供默认 y?

0 投票
3 回答
1408 浏览

c++ - 词法和句法分析器软件

我正在设计一种基于 CSS-ish(CSS+自定义扩展)的自定义语言,它基本上可以像这样工作:

基本上,该语言允许检查某些条件(如果可以嵌套),然后将一些值应用于对象。没有循环。这将存储在纯文本文件中,并在启动时加载到应用程序 (C++) 中。

想法是将这个 CSS-ish 文件翻译成 C++ 树或类似的东西,可以在运行时进行评估

我正在考虑使用一些词法分析器和标记器(Yacc、Flex、Bison 等......)。

您对使用的工具/库有什么建议?

0 投票
1 回答
184 浏览

c++ - 为什么我的词法分析器无法识别引号“”

我希望有人可以帮助我解决这个问题。我正在用 C++ 创建一个 HTML 词法分析器。据老师说我应该有3个文件。一个标头和 2 个主 .cpp,它应该能够读取文件 这是我的文件 try.txt

这是我的标题

这是我的 main.cpp

这是我的 tokens.cpp 我打印结果的地方

程序读取 <>= 没有问题,但是当我尝试使用 cout << a[27]; 读取 '\"' 时,我得到这个: ? 如果我打印 cout << a; 我得到<<<<<Hello there <H1 style=”BOLD”&gt;header!!</H1> // 这是字符串我正在努力阅读

当我使用found = a.find('\"');它时给我一个-1 我的问题是为什么我的程序无法识别引号?这是我阅读文件的方式吗?

提前致谢

0 投票
1 回答
509 浏览

c++ - c++中的HTML词法分析器如何打印结果

我希望有人能再次帮助我解决这个问题。我正在用 C++ 创建一个 HTML 词法分析器。据老师说我应该有3个文件。一个标头和 2 个主 .cpp,它应该能够读取文件 这是我的文件 try.txt

这是我的标题

这是我的 main.cpp

这是我的 tokens.cpp 我打印结果的地方

老师希望程序只打印每个案例的最终值。但是,当我打印时,我得到了这个

有没有办法得到这样的东西?

提前致谢

0 投票
3 回答
137 浏览

java - 具有整数文字的解析器

我正在寻找一种简单有效的方法来在 java 的词法解析器中实现一组数字。例如我的输入代码如下:

输出必须有点像这样:

我遇到的问题是,除了按如下方式实现之外,我无法识别该数字:

这意味着我必须手动输入从 0 到 9 的每个数字,而且我不知道这种方法是否允许在我的输入中输入诸如 85 之类的数字。

顺便说一句,这是一个家庭作业,谢谢。

0 投票
1 回答
771 浏览

ios - 项目重命名时的词法和预处理器问题

我已经更改了我的项目架构的名称。项目之前运行成功,但现在它给出了词法和预处理器问题。我已经仔细检查了 buildphase 和 buildsetting 标头路径。cocos2d 子文件夹链接中出现错误。我一直陷入这个问题并试图从早上开始解决它,我也有一些懒惰的选择来解决这个问题,但我想知道到底错在哪里?任何帮助将不胜感激这是错误的快照

跟随错误