问题标签 [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.
grammar - 语法的词汇元素
语法有4个词汇元素
其中 G = 语法,S = 起始符号,N = 非终结符,T = 终结符,P = 生产规则
我想知道 N 是否总是与 P 相等,因为我知道 P 是词位,可以用其他词位代替
所以在这个例子中:
是对的吗?
compiler-construction - SICP第5章词法寻址有什么好处?
我现在正在阅读 SICP,并不太了解 5.5.6 SICP 的词法寻址中描述的词法寻址的必要性。
因为它说“因为我们的语言是词法范围的,所以任何表达式的运行时环境都将具有与出现表达式的程序的词法结构平行的结构”,我认为在运行中搜索变量的成本相同 -编译环境中搜索的时间环境。为什么我们要费心去实现一个编译环境?我认为编译环境将具有与程序的词法结构平行的相同结构,这与运行时环境相同,不是吗?
sorting - 我可以在查询时更改 SOLR 搜索的排序顺序吗?让 SOLR 使用 52734 而不是 12345?
我在具有类别属性的索引中有文档。
每个类别都有优先级,如下所示:
我希望能够在查询时更改 SOLR 按类别属性排序的方式,以便我可以决定类别 4 应该是优先级 1,而不必重新索引所有文档。
例如,像这样:
然后,如果一个文档的类别为 4,它将位于类别为 1 的文档之前。
这在 SOLR 中可能吗?
另外,我使用此优先级对文档组进行排序,而不是整体排序。
javascript - 需要帮助理解 Javascript 中的(词法)变量范围
我有一个使用 NodeJS 执行的 .js 文件。这是我的文件的内容:
当我运行这个文件时,我希望看到“God Bless America”,但相反,我看到了“God Bless undefined”。
如果我注释掉内部 var ctry = 行,我得到“上帝保佑美国”,如果我将内部 var ctry = 行移到 console.log 上方,我得到“上帝保佑加拿大”。最后两种情况看起来合乎逻辑,但为什么在 console.log 之后的 var ctry 的定义会导致 ctry 在上面的代码中被设置为 underfined?
c++ - 将双精度转换为字符串。Boost 库似乎不起作用,并且 sstream 导致“SEG FAULT”
我有一个简单的问题,我认为我只是在做一些导致 SEGFAULT 的愚蠢行为。
我只是想将双变量转换为字符串,然后将它们“strcat()”放在一起,并将生成的串联字符串放入 GTK 标签中。(应该很简单吧?!)
这是我的代码的一部分:
为什么它不能工作?!:(
我尝试使用 Boost::Lexical_Cast 东西,但没有奏效:
任何帮助是极大的赞赏。如果任何一种方法都有效,那将是很棒的,但我并不真正关心如何去做,只要我能用字符串得到一个双倍的 cat !
iphone - 词法或预处理器问题错误(未找到 UIKit/UIKit.h 文件)
我已经阅读了有关词汇和预处理器问题的另一个问题,并且我尝试使用有助于解决他们问题的方法。不幸的是,这些解决方案都没有帮助解决这个问题。这个错误突然出现,我不确定除了读取的内容之外我还能做什么来解决这个问题。请帮忙!
这是我收到错误的代码:
perl - 这里的适当关闭是什么意思
这是直接从Perl Cookbook中提取的代码:
其目的是形成 6 个不同颜色的子程序。在解释部分,书中写道:
这些函数看起来都是独立的,但真正的代码实际上只编译了一次。这种技术节省了编译时间和内存使用。要创建正确的闭包,匿名子例程中的任何变量都必须是词法。这就是循环迭代变量上 my 的原因。
适当的闭包是什么意思,如果my
省略了会发生什么?另外,即使不能为词法变量定义 typeglob 并且应该抛出错误,typeglob 怎么会与词法变量一起工作?
.net - 如何在不同的词法范围内声明和设置 DateTime 对象的值?
我阅读了这个问题和答案,如果您需要修改(或移动)对象的时间,则必须在其中创建一个新的 DateTime 对象,因为 DateTime 是一种不可变的对象类型。
如果正在声明变量并且在相同的词法范围内设置值,那很好。除了我在不同的词法范围内声明和设置值。通常我会做“DateTime from_instant = null;” 所以它至少有一个价值,所以我可以在设置后使用它。但是,对于 DateTime,一旦设置了值,它就是不可变的。那么如何通过执行“from_instant.AddHours(-10);”来调整对象的值?例如,在它被声明的词法范围之外?
在我下面的例子中,每当我重置“from_instant”时,它都不会改变。我希望能够改变它。由于它是不可变的,您通常如何重置该值?
c++ - 我可以在 C++ 中使用哪些正则表达式,使用正则表达式来解析分隔符、运算符、标识符和实数?
我正在编写一个用于对包含 c++ 代码的简单文本文件进行词法分析的 c++ 程序。例如
然后,程序从文件中提取代码后,将输出到控制台:
为了让您了解我的正则表达式的实际代码是什么样的,这里是。
我正在寻找可以在 c++ 中与正则表达式一起使用的正则表达式,所以单词:"(\w+)" integers:"(\d+)" separators: ? 运营商:?实数:?