问题标签 [lr]
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.
parsing - 用于编写解析器生成器的在线资源
我想为教育目的编写一个解析器生成器,并且想知道是否有一些很好的在线资源或教程来解释如何编写一个。类似于 Jack Crenshaw 的“让我们构建编译器”的内容。
我想为 LR(1) 语法编写解析器生成器。
我对生成 action 和 goto 表背后的理论有很好的理解,但想要一些资源来帮助我实现它。
首选语言是 C/C++、Java,尽管其他语言也可以。
谢谢。
algorithm - LR、SLR 和 LALR 解析器有什么区别?
LR、SLR 和 LALR 解析器之间的实际区别是什么?我知道 SLR 和 LALR 是 LR 解析器的类型,但就它们的解析表而言,它们的实际区别是什么?
以及如何显示语法是 LR、SLR 还是 LALR?对于 LL 语法,我们只需要证明解析表的任何单元格都不应包含多个产生式规则。LALR、SLR 和 LR 是否有类似的规则?
例如,我们如何证明语法
是 LALR(1) 但不是 SLR(1)?
编辑(ybungalobill):对于 LALR 和 LR 之间的区别,我没有得到令人满意的答案。所以 LALR 的表尺寸更小,但它只能识别 LR 语法的一个子集。有人可以详细说明 LALR 和 LR 之间的区别吗?LALR(1) 和 LR(1) 足以回答。它们都使用 1 个令牌前瞻,并且都是表驱动的!它们有何不同?
parsing - LL 解析器比 LR 解析器有什么优势?
LL 解析器与 LR 解析器相比有哪些优势,以保证它们在当今的解析器生成器工具中相对受欢迎?
根据Wikipedia,LR 解析似乎比 LL 具有优势:
LR解析比LL解析可以处理更大范围的语言,并且在错误报告方面也更好,即当输入不符合语法时,它会尽快检测到语法错误。这与 LL(k)(或更糟糕的是,LL(*) 解析器)形成对比,后者可能会由于回溯而将错误检测推迟到语法的不同分支,这通常会使错误更难在具有长公共前缀的析取中定位.
注意:这不是家庭作业。当我发现 Antlr 是一个 LL 解析器生成器时,我感到很惊讶(尽管它的名字中有“LR”!)。
parsing - 如果语法不明确,那么每个句子形式都存在一个句柄。?
可以有两个产生式,我们可以从中进行归约。在根据需要给予优先级和关联后,将只有一个句柄。所以这句话是真的吗?
compiler-construction - 每个 LR(0) 语法都是 SLR(1) 但反之亦然不一定是真的,为什么?
每个 LR(0) 语法都是 SLR(1) 但反之亦然不一定是真的,为什么?
compiler-construction - Is every LL(1) grammar also an LR(1)?
Is every LL(1) grammar also an LR(1)?
parsing - 编写手动解析器
我需要手动编写解析器。不能在 LL(*) 和 LR 之间进行选择(也许试试 Earley?)。我应该使用自下而上的解析,因为 LL 的语法会相当困难吗?
load-testing - LR 自定义日志文件:如何从生成器机器中获取它们?
假设我有一个 VUGen C 测试,它将结果写入某个数据日志文件,即它列出了在初始化时创建(或附加)的文件中已处理的 ID 或类似的东西,在主操作中写入,并在关闭时关闭。
然后我想知道是否有 LR 功能允许我在控制器上找到包含该文件的所有 vuser 副本的合并目录结构?
据我所知,所有 vuser 实例都使用测试目录结构的一个通用副本,位于 temp 中的某个位置。所以 a) 我需要将 VUser ID 包含在我的自定义日志文件的名称中,并且 b) 我必须在场景执行后从负载生成器手动收集结果文件,这是一个笨拙的过程。
唯一舒适的选择是将所有已处理的 ID(或其他)报告到 VTS(HP 虚拟表服务器,似乎是免费软件)并从那里获取它们,对吗?然后我有额外的编码要做。会不会没有人错过 VUgen/LR 中的这样一个功能?
我希望这不是太离题,因为这个问题不一定与代码相关。
qtp - QTP LoadAndRunAction - 来自调用者运行结果的被调用者部分的事务时间?
如果我使用 调用另一个测试 A 中的操作 X LoadAndRunAction
,是否正确报告了被调用操作中收集的事务时间?
即,如果我将这样的调用者脚本 A 插入到 LoadRunner 场景中,LoadRunner 的结果报告是否会同时包含在测试 A 和操作 X 中测量的事务时间?
老实说,我只是问,因为我懒得测试这个临时的。
背景:我们有一些使用 QTP 脚本来模拟 GUI 用户活动的 LR 场景。那些 QTP 脚本非常大,并且一次又一次地部署到每个负载生成器。这个想法是手动部署一次大 QTP 测试,然后编写一个紧凑的 QTP 测试来调用大测试,然后将该紧凑的测试插入到 LR 场景中。
parsing - 尝试编写解析器
我正在尝试使用 Shutting Yard (SY) 算法解析语法。语法包括以下命令(不过还有很多其他命令!)
本质上, setxy 是一个函数,但它不需要任何函数参数分隔符。由于缺少括号和函数参数分隔符,这使得通过 SY 进行操作变得非常困难(不可能?)。
知道 SY 是否可用于解析无括号/函数参数无分隔符的函数,还是应该继续使用不同的解析算法?如果是这样,你会推荐哪一个?
谢谢!DJ22