问题标签 [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 投票
5 回答
6093 浏览

perl - 为什么 Programming Perl 使用本地(不是我的)文件句柄?

当我通读Programming Perl,第 2 版,第 51 页时,有些事情让我感到困惑:

我知道,为什么我们不推荐使用我的?到目前为止,我看不出如果我们使用 my() 会出什么问题。

谢谢!

0 投票
3 回答
2934 浏览

perl - 什么时候应该使用包变量和词法变量(有什么区别)?

我正在查看Perl Monks上的一些较旧的 Perl 代码,以了解如何使用 Win32::OLE 和 MS Word 进行编程。分散在整个代码中的是名称如$MS::Word之类的变量,它们的声明中没有包含“ my ”。在 Google 上阅读了一下之后,我了解到这些被称为“包变量”与使用my .

我的第一个问题是'包变量有什么用?'。我(认为)我了解词法变量是什么,但我不了解包变量的用途或它们的使用与词法有何不同,所以我的第二个问题是,'词法变量和包变量有什么区别?'

0 投票
3 回答
414 浏览

compiler-construction - 在 C 中构建 Pascal 编译器时的指针问题

我在编译器的词法分析中遇到了一些问题,我声明了以下指针

然后我尝试在函数中使用它

但是我在尝试执行时收到以下错误:

关于 (line message = &words[handle];) : 警告 C4047: '=' : 'char [30]' 与 'char ** ' 的间接级别不同

关于 (line message = &words[handle];) : 错误 C2106: '=' : 左操作数必须是左值

关于 (line message='words';) : error C2015: too many characters in constant

关于(line message='words';):错误 C2106:'=':左操作数必须是左值

我不能那样使用指针吗?你有什么建议吗?

0 投票
1 回答
733 浏览

c - 在 Lex 的输入文件中插入文本(使用 C)

我正试图帮助一位朋友完成大学作业,但我有点忘记了很多 C 和 Lex。

问题是,我们正在尝试解析 HTML 和对应的 CSS 文件并将其样式添加到标签中。

例如:

HTML

CSS

修改后的 HTML


所有的正则表达式都完成了,宏也完成了。

问题:输入的 HTML 和修改后的 HTML 必须是同一个文件。我们尝试将yyinyyout重定向到同一个文件...然后使用 fputs(text, yyout); 其中 text 是带有所有样式信息(和 style="")的 char *。它不起作用。

所以……你们能帮帮他吗?

重要的是不要丢失文件中的位置概念(因此 style="" 转到正确的标签)。

谢谢

0 投票
3 回答
699 浏览

compiler-construction - 词法分析器阶段可以在编译期间检查语法规则吗?

抱歉这个愚蠢的问题,但我和我的朋友就词汇分析发生了争执,我们决定询问社区。

问题是:语句“int some_variable = ;”是否 在词法分析阶段或 C 语法的语法分析阶段将被解释为无效。谢谢

0 投票
4 回答
934 浏览

perl - 为什么我不能使用 Perl 变量的值来访问词法变量名?

为什么会打印 42:

但这不是:

0 投票
1 回答
145 浏览

xml - Xs:XML 中的模式解释

如何解释以下 xml 元素?

0 投票
1 回答
771 浏览

php - 数据库中的单词 - 通过词汇词典搜索(语义相似性)

我正在实现一个小型字典数据库,我想根据它们之间的词汇/语义相似性进行搜索..

例如,beer有“姐妹词”,例如soda, lemonade, wine, champagne每个“不同”的“不同方向”(例如:前两个是“啤酒”概念的“温和”版本,而后两个是“更极端”的版本)

我知道 WordNet 有一个 API,但我字典中的大多数单词(和短语)都以更非正式的方式相关

(另一个例子。“gangster”与[ nun, orphan, rebel] { criminal, mafia boss, murderer}相关,其中极点从左到右变化,[]中的被认为是“正极点”,而{}中的那些是“负极点”)

使用中:

  1. 用户输入搜索输入(一个词)
  2. 词与姊妹词相匹配。
  3. 用户有机会通过在至少 2 个方向上改变肢体来“微调单词”,例如上面的示例。

实现这种搜索的最佳方式是什么——上面的步骤 2 和 3?

我正在考虑使用 PHP/MySQL,因为这是我熟悉的,但有什么更好的选择?再次 - 请记住,这不是一本大字典。这只是一些常用词的选择。


这是我回答这个问题的尝试 - 这是非常非常基本的......欢迎改进建议:

MySQL表字:

给定一个 $word 查询和 $direction:

"SELECT relatedword FROM words WHERE word='$word' AND direction=$direction ORDER BY relationscore DESC"

0 投票
4 回答
884 浏览

perl - Perl 5.10+ 中词法 $_ 的优缺点

从 Perl 5.10 开始,现在可以对上下文变量进行词法范围$_,无论是显式地作为my $_;还是在given / when构造中。

有没有人发现词汇的好用处$_?它是否使任何构造更简单/更安全/更快?

让情况变得更复杂的情况呢?词法是否在$_您的代码中引入了任何错误?(因为写入的控制结构$_将使用词法版本,如果它在范围内,如果它包含任何子例程调用(由于失去动态范围),这可能会改变代码的行为)

最后,我想构建一个列表,以阐明何时$_用作词法、全局或根本无关紧要。


注意:这些实验性perl5-5.24功能不再是 perl 的一部分

0 投票
2 回答
1646 浏览

parsing - 如何在 Scala 解析器组合器中组合正则表达式和关键字

我见过两种在 Scala 中构建解析器的方法。

第一个是从 RegexParsers 扩展并定义您赢得的词汇模式。我看到的问题是我并不真正了解它如何处理关键字歧义。例如,如果我的关键字与 idents 匹配相同的模式,那么它将关键字作为 idents 处理。

为了解决这个问题,我看到过类似这样的帖子,其中展示了如何使用 StandardTokenParsers 来指定关键字。但是,我不明白如何指定正则表达式模式!是的,StandardTokenParsers 带有“ident”,但它没有附带我需要的其他内容(复杂的浮点数表示、特定的字符串文字模式和转义规则等)。

您如何同时获得指定关键字的能力和使用正则表达式指定标记模式的能力?