问题标签 [parser-generator]
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.
java - 支持后缀协议的解析器生成器或库
我正在研究某种语言的句法解析器。但是这种语言对后缀协议的要求很高。例如,在英语中,动词必须与代词一致,如 I、we、you-do 或 he、she、it、this-does 等。在这种语言中,动词对每个代词都有不同的形式。我在文献中知道这是通过统一方法处理的。但是我在Java中找不到它的任何实现。我还研究了斯坦福解析器和 ANTLR,但我找不到任何证据表明它们支持后缀协议。
那么哪个工具或lib。你会在这种情况下提供给我吗?
提前致谢。
parsing - 解析中使用的 FIRST 和 FOLLOW 集是什么?
什么是 FIRST 和 FOLLOW 集?它们在解析中用于什么?它们是用于自上而下还是自下而上的解析器?
谁能向我解释以下一组语法规则的 FIRST 和 FOLLOW SETS:
actionscript-3 - 多级解析算法
改写...
我想知道如何最好地解析函数/条件。所以如果你有类似的东西:[if {a} is {12 or 34}][if {b} not {55}] show +c+ [/if][/if]
这是条件中的条件。看起来我不能只用正则表达式来做到这一点。
原始问题
现在我有一个非常简单的方法来通过 actionscript 解析一些命令。
我正在使用正则表达式来查找标签、命令和操作数...
我当前的算法将开始标签[**]
与第一个结束标签匹配,[/**]
即使它不匹配。这意味着我不能做类似的事情[ifempty +val_2+][ifnotempty +val_2]+val_3+[/ifnotempty]+val_4+[/ifempty]
- 基本上将一个条件放入另一个条件中。
我正在使用一种内联的解析方式,它根据这个正则表达式将字符串拆分为一个字符串数组\[[^\/](?:[^\]])*\](?:[^\]])*\[\/(?:[^\]])*\]
任何人都可以建议一个更强大的算法和更强大的解析约定/标准吗?特别是对于 as3。
pdf - 从 PDF 文件中提取文本数据
是否可以在 R 中解析 PDF 文件中的文本数据?似乎没有用于此类提取的相关软件包,但有没有人尝试或看到在 R 中完成此操作?
在Python 中有 PDFMiner,但如果可能的话,我想把这个分析全部保存在 R 中。
有什么建议么?
c# - How to PARSE HTML Files and SUBMIT information programmatically
ASP.NET 4 & C# and
I would like to know which CODE, Classes could be useful for creating a WEB APPLICATION that could:
Also how to implement:
I am interested in understanding Classes and general practice and CODE for accomplish this task.
If you have any idea please let me know. Thanks guys once again for your support! :-)
php - Lemon Parser-Generator:不评估非终结符吗?
我尝试学习解析器。因为我的 C 技能相当低,我用谷歌搜索了一个PHP Lemon来学习解析器生成器。无论如何,这里的代码对于普通的柠檬朋友也应该是可读的。
与处理解析问题时一样,我首先尝试制作一个简单的计算器。
所以我的第一步很简单:
解析第一个测试的内容:
...结果:
所以,一切如预期。现在我们尝试准备一个最终允许我们处理操作的步骤,即expression
:
当我现在运行相同的测试时,我希望看到相同的输出,加上一行说got a value: 13
. 但我只是得到这个:
嗯,发生了什么事?为什么结果行是空的?显然expr
评估为VALUE
“13”。柠檬不关心评价吗?我必须以某种方式自己做吗?但是,如果我在这一点上一无所获呢?
compiler-construction - 自上而下的解析器希望在“代码”中有不错的案例示例左递归
你好,堆栈的流成员。
我正在学习编译器类。我确实理解 Top-Down Parser 应该避免左递归,并转换为右递归方式。
问题是,
a)我是否理解正确的 Top-Down Parser 等于 LL 而 Bottom-Up Parser 等于 LR ?
b) 我发现左递归是自称 ex) Expr :== Expr '+' Term | 可以导致无限循环查找 Expr 的项。但无论如何,任何考虑输入 C 或 Java 的示例代码?(我不想要解析器或扫描仪代码)我需要的是带有句子形式的案例代码示例,通过左递归发生无限循环。
c) 在自顶向下解析器中使用右递归实际上有什么不同?
ANS c) 无需回溯。但还有别的吗?
ANS b)x - 2 * y
还有别的东西吗?因为这个适用于回溯的解析方式。
我发现了非左递归和左递归的案例示例。
左递归语法
非左递归语法
两者都进入无限循环。
谢谢你,感谢你所有的专家。
parsing - 编写 BNF 时 { 和 } 之间有什么?
我在使用 BNF 时遇到了一些问题。我不知道什么似乎是标准的做事方式(如果有的话),以及是否有像 char 或 int 这样的类型或任何已经内置的类型。
但是,我的主要问题是不了解大括号中的 BNF 部分是如何工作的。
给定类似的东西:
(这是从某个地方随便偷来的,用于 yacc / C)
花括号中的内容实际上是在说什么?我也为快乐的解析器生成器看过类似的东西,并且同样感到困惑。
c++ - 如何解释自定义语言
我有一个 C++ 应用程序,它实际上处理一个二进制文件。二进制文件是事件的集合,例如 A/B/C,在文件中检测到事件 A 时,应用程序会在“处理程序 A”中处理事件。
现在我需要用自定义语言编写另一个脚本,该脚本与二进制文件处理正交执行。脚本可以有类似的东西,
因此,当应用程序处理来自二进制文件的事件“A”时,应用程序必须解析此脚本文件,检查 OnA 并将 OnA proc 中的语句转换为应用程序支持的例程。例如,QueryVariable 应该将应用程序中定义的变量“cat”的值复制到变量“C”。该应用程序还应检查脚本中语言的语法/语义。我在哪里可以获得决定设计的最佳信息?我对解析树/语法的了解真的变弱了。
谢谢
parsing - LL 解析器比 LR 解析器有什么优势?
LL 解析器与 LR 解析器相比有哪些优势,以保证它们在当今的解析器生成器工具中相对受欢迎?
根据Wikipedia,LR 解析似乎比 LL 具有优势:
LR解析比LL解析可以处理更大范围的语言,并且在错误报告方面也更好,即当输入不符合语法时,它会尽快检测到语法错误。这与 LL(k)(或更糟糕的是,LL(*) 解析器)形成对比,后者可能会由于回溯而将错误检测推迟到语法的不同分支,这通常会使错误更难在具有长公共前缀的析取中定位.
注意:这不是家庭作业。当我发现 Antlr 是一个 LL 解析器生成器时,我感到很惊讶(尽管它的名字中有“LR”!)。