问题标签 [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.
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]”,因为它只是以这些括号开始和结束,并且在其中包含 .*(每个字符),但我认为解释器会在第一个 ( ]) 字符由于是第一个。
所以我找不到解决方法,但在这里问。
总的来说,这就是我正在努力解决的问题
我明白了
但我期待的东西更像
c++ - 此函数或引用使用的向量是否泄漏内存?
我在清除指向使用此方法的根的指针映射时遇到问题。如果我不使用它,一切都很好。
我需要将从文件中读取的所需数字数量转换为双精度向量。
我的问题是这种方法会泄漏内存吗?
如果是这样,它是可以修复的还是我们有其他选择?
variables - 使用 B 访问词法范围的问题
出于调试目的,我想访问具有特定属性集的不同子例程的词法范围。这很好用。当第一个变量存储一个字符串时出现问题,然后我得到一个空字符串。我做这样的事情:
就像我在评论中所说的那样,评估是为了防止暂存器中 B::Special 对象的错误。输出:
第一个输出没问题,第二个应该输出“TEXT”而不是0。
我究竟做错了什么?
编辑:通过一点编码,我得到了变量的所有值,但没有存储在@varnames 和@varcontents 的相同索引中。所以现在的问题是如何(以何种顺序)将值存储在@varcontents 中。
EDIT2:添加了可运行脚本来演示该问题:变量名和变量值未存储在两个数组(@varnames 和 @varcontents)的同一索引中。
xcode - 测试 kit.h 文件中的词法和预处理器问题?Xcode 4 测试文件
我今年 14 岁,对 Xcode 4.6 还很陌生,所以我真的不太了解它。当我在开发我的应用程序时,我在我的 .h 测试文件中突然出现一个错误,说词法和预处理器问题。我没有在该文件上输入任何内容,每次重新开始时,它都会弹出。它还说找不到我的导入文件?除了项目之外,我没有导入任何东西。我如何解决它?
caching - 从 R 中的缓存对象返回逆矩阵,检查输入矩阵是否未更改
披露:这是来自名为 R 编程的 Coursera 课程的编程作业。我最初拥有完整的代码,但由于我意识到我不允许上传我的完整代码(假设我上传的代码不起作用),所以我把它的一部分删除了。
该任务涉及可能需要较长计算时间的词法范围和缓存功能。具体来说,我使用solve() 来查找矩阵的逆矩阵并使用自由浮动变量对其进行缓存。我也在尝试缓存输入矩阵,以便我可以检索它并将其与任何新的输入矩阵进行比较。我在后者上返回一个错误,如下所述。
首先,我按照下面的代码同时运行 makeCacheMatrix 和 cacheSolve。
第一个函数 makeCacheMatrix 创建一个特殊的“矩阵”对象,可以缓存输入矩阵及其逆矩阵
第二个函数 cacheSolve 调用存储在 makeCacheMatrix(上图)返回的特殊“矩阵”中的函数。如果已经计算了逆(并且矩阵没有改变),则 cacheSolve 从缓存中检索逆。如果输入是新的,它会计算数据的逆并通过 setinverse 函数将逆设置在缓存中。
}
然后我使用以下代码对其进行测试:
正如预期的那样,这给出了相反的结果。
但是当我尝试通过再次运行相同的矩阵来测试缓存能力时。
它返回“x$setmatrix() 中的错误:缺少参数“y”,没有默认值。但是,我认为我在 makeCacheMatrix 的第二行中提供了默认的 NULL。我希望它给出消息“获取缓存的数据”然后反过来。
我究竟做错了什么?如何使用 setmatrix 缓存输入矩阵并提供默认 y?
c++ - 词法和句法分析器软件
我正在设计一种基于 CSS-ish(CSS+自定义扩展)的自定义语言,它基本上可以像这样工作:
基本上,该语言允许检查某些条件(如果可以嵌套),然后将一些值应用于对象。没有循环。这将存储在纯文本文件中,并在启动时加载到应用程序 (C++) 中。
想法是将这个 CSS-ish 文件翻译成 C++ 树或类似的东西,可以在运行时进行评估。
我正在考虑使用一些词法分析器和标记器(Yacc、Flex、Bison 等......)。
您对使用的工具/库有什么建议?
c++ - 为什么我的词法分析器无法识别引号“”
我希望有人可以帮助我解决这个问题。我正在用 C++ 创建一个 HTML 词法分析器。据老师说我应该有3个文件。一个标头和 2 个主 .cpp,它应该能够读取文件 这是我的文件 try.txt
这是我的标题
这是我的 main.cpp
这是我的 tokens.cpp 我打印结果的地方
程序读取 <>= 没有问题,但是当我尝试使用 cout << a[27]; 读取 '\"' 时,我得到这个: ? 如果我打印 cout << a; 我得到<<<<<Hello there <H1 style=”BOLD”>header!!</H1>
// 这是字符串我正在努力阅读
当我使用found = a.find('\"');
它时给我一个-1 我的问题是为什么我的程序无法识别引号?这是我阅读文件的方式吗?
提前致谢
c++ - c++中的HTML词法分析器如何打印结果
我希望有人能再次帮助我解决这个问题。我正在用 C++ 创建一个 HTML 词法分析器。据老师说我应该有3个文件。一个标头和 2 个主 .cpp,它应该能够读取文件 这是我的文件 try.txt
这是我的标题
这是我的 main.cpp
这是我的 tokens.cpp 我打印结果的地方
老师希望程序只打印每个案例的最终值。但是,当我打印时,我得到了这个
有没有办法得到这样的东西?
提前致谢
java - 具有整数文字的解析器
我正在寻找一种简单有效的方法来在 java 的词法解析器中实现一组数字。例如我的输入代码如下:
输出必须有点像这样:
我遇到的问题是,除了按如下方式实现之外,我无法识别该数字:
这意味着我必须手动输入从 0 到 9 的每个数字,而且我不知道这种方法是否允许在我的输入中输入诸如 85 之类的数字。
顺便说一句,这是一个家庭作业,谢谢。
ios - 项目重命名时的词法和预处理器问题
我已经更改了我的项目架构的名称。项目之前运行成功,但现在它给出了词法和预处理器问题。我已经仔细检查了 buildphase 和 buildsetting 标头路径。cocos2d 子文件夹链接中出现错误。我一直陷入这个问题并试图从早上开始解决它,我也有一些懒惰的选择来解决这个问题,但我想知道到底错在哪里?任何帮助将不胜感激这是错误的快照