问题标签 [parsing]

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 投票
2 回答
8346 浏览

parsing - 解决 yacc/ocamlyacc 中的 reduce/reduce 冲突

我正在尝试解析 ocamlyacc 中的语法(与常规 yacc 几乎相同),它支持没有运算符的函数应用程序(如在 Ocaml 或 Haskell 中),以及二进制和一元运算符的正常分类。我遇到了与“-”运算符的减少/减少冲突,该运算符可用于减法和求反。这是我正在使用的语法示例:

问题是当你得到一个像“a - b”这样的表达式时,解析器不知道它是否应该被简化为“a(-b)”(b的否定,然后是应用程序)或“a - b”(减法)。减法减法是正确的。我如何解决冲突以支持该规则?

0 投票
1 回答
1715 浏览

unicode - 如何在我的 Antlr 语法中添加 unicode 字符?

我正在尝试使用以下内容构建语法:

数字:整数 | 浮动 | 无限 | PI ... INFINITY: '∞' PI: 'π'

但是 Antlr 拒绝加载语法。

0 投票
6 回答
4814 浏览

ant - 我从哪里获得 Antlr Ant 任务?

我试图在我的 Ant build.xml 中调用 Antlr 任务,如下所示:

但是 Ant 找不到任务定义。我已将以下所有内容放入其中dir.lib.build

  • antlr-3.1.jar
  • antlr-2.7.7.jar
  • antlr-runtime-3.1.jar
  • stringtemplate-3.2.jar

但这些似乎都没有任务定义。(我也试过把这些罐子放在我的 Ant 类路径中;同样的问题。)

0 投票
3 回答
3712 浏览

java - 你在 Java 中推荐了哪些 HTML 解析库

我想解析一些 HTML 以找到一些属性/标签等的值。

你推荐什么 HTML 解析器?有什么优点和缺点吗?

0 投票
24 回答
94076 浏览

algorithm - 具有优先级的方程(表达式)解析器?

我使用简单的堆栈算法开发了一个方程解析器,该算法将处理二进制(+、-、|、&、*、/ 等)运算符、一元(!)运算符和括号。

然而,使用这种方法,所有东西都具有相同的优先级——不管运算符如何,它都是从左到右评估的,尽管可以使用括号来强制执行优先级。

所以现在“1+11*5”返回 60,而不是人们可能期望的 56。

虽然这适用于当前项目,但我希望有一个通用例程,可用于以后的项目。

为清楚起见进行了编辑:

什么是优先解析方程的好算法?

我对一些易于实现和理解的东西感兴趣,我可以自己编写代码以避免可用代码出现许可问题。

语法:

我不明白语法问题 - 我是手写的。这很简单,我认为不需要 YACC 或 Bison。我只需要用诸如“2+3 * (42/13)”之类的等式计算字符串。

语言:

我在 C 中这样做,但我对算法感兴趣,而不是特定于语言的解决方案。C 足够低级,如果需要,它可以很容易地转换为另一种语言。

代码示例

我发布了上面提到的简单表达式解析器的测试代码。项目需求发生了变化,因此我不需要针对性能或空间优化代码,因为它没有被合并到项目中。它是原始的详细形式,应该很容易理解。如果我在运算符优先级方面对其进行进一步处理,我可能会选择宏 hack,因为它与程序的其余部分相匹配。但是,如果我在实际项目中使用它,我会选择更紧凑/更快的解析器。

相关问题

数学解析器的智能设计?

-亚当

0 投票
8 回答
47549 浏览

xml - 使用 unix 终端解析 XML

有时我需要从 XML 文件中快速提取一些任意数据以放入 CSV 格式。在 Unix 终端中执行此操作的最佳实践是什么?我会喜欢一些代码示例,例如如何解决以下问题?

示例 XML 输入:

我想要的 CSV 输出:

0 投票
12 回答
4956 浏览

parsing - 解析,在哪里可以了解

我被赋予了将一种语言“翻译”成另一种语言的工作。对于使用正则表达式的简单逐行方法来说,源代码过于灵活(复杂)。我在哪里可以了解更多关于词法分析和解析器的信息?

0 投票
8 回答
38153 浏览

python - 用于在 python 中进行词法分析、标记化和解析的资源

人们可以向我指出有关使用 Python 进行词法分析、解析和标记化的资源吗?

我正在对一个开源项目 ( hotwire ) 进行一些修改,并希望对输入其中的命令进行lexesparse 和 tokenise的代码进行一些更改。由于它是真正的工作代码,它相当复杂并且有点难以解决。

我以前没有处理过 lex/parse/tokenise 的代码,所以我想一种方法是在这方面完成一两个教程。我希望能学到足够的知识来浏览我真正想要更改的代码。有什么适合的吗?(理想情况下可以在一个下午完成,而不必先购买和阅读龙书……)

编辑:(2008 年 10 月 7 日)以下答案都没有完全给出我想要的。有了它们,我可以从头开始生成解析器,但我想学习如何从头开始编写自己的基本解析器,而不是使用 lex 和 yacc 或类似工具。完成后,我可以更好地理解现有代码。

那么有人能指点我一个教程,我可以从头开始构建一个基本的解析器,只使用 python 吗?

0 投票
11 回答
7818 浏览

c# - C# 是否具有解析页码字符串的内置支持?

C# 是否具有对解析页码字符串的内置支持?我所说的页码是指您可能会进入打印对话框的格式,它是逗号和破折号分隔的混合格式。

像这样的东西:

真正好的解决方案是让我返回某种由字符串表示的所有页码的列表。在上面的例子中,像这样得到一个列表会很好:

如果有一种简单的方法,我只想避免自己动手。

0 投票
12 回答
8791 浏览

compiler-construction - 解析器、解释器和编译器的学习资源

一段时间以来,我一直想尝试编写自己的语言(表面上是为了学习经验),因此需要在解析器、解释器和编译器的构建方面相对扎实。所以:

  • 有谁知道有关构建解析器、解释器和编译器的任何好的资源?

编辑:我不是在寻找编译器编译器/解析器编译器,例如 Lex、Yacc 和 Bison ......