parsing - ANTLR 有帮助吗?不同的建议?

标签 parsing antlr antlrworks

在深入研究 ANTLR 之前(因为 it is apparently not for the faint of heart ),我只想确保我对其使用做出了正确的决定。

我想创建一个语法,它将在带有预定义标签的文本文件中进行解析,以便我可以在我的应用程序中填充值。 (文本文件是由另一个应用程序生成的。)因此,本质上,我希望能够解析如下内容:

Name: TheFileName
Values: 5 3 1 6 1 3
Other Values: 5 3 1 5 1

在我的应用程序中,TheFileName 存储为字符串,并且两组值都存储到数组中。 (这只是一个示例,文件要复杂得多。)无论如何,我至少走上了 ANTLR 的正确道路吗?还有其他建议吗?

编辑 这些文件由用户创建,并通过标签定义区域。所以,它可能看起来像这样。

Name: <string>TheFileName</string>
Values: <array>5 3 1 6 1 3</array>
Important Value: <double>3.45</double>

类似的事情。

最佳答案

基本问题是文件如何变得更加复杂?它基本上是相同的,带有标签、冒号和一个或多个值,还是其他行的基本结构更复杂?如果它基本上只是更多相同,那么识别和读取数据的代码就非常简单,并且解析器生成器不太可能获得太多好处。如果其他线路具有显着不同的结构,则主要取决于它们的不同之处。

编辑:根据您添加的内容,我会更进一步,将您的文件格式化为 XML。然后,您可以使用现有的 XML 解析器(等)来读取文件、提取数据、验证它们是否适合指定的格式等。

关于parsing - ANTLR 有帮助吗?不同的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1768314/

相关文章:

java - ANTLR 不会在无效输入上抛出错误

ios - 从 String 转换为 Double 导致 Swift 崩溃

c++ - 消除 spirit x3 解析器规则中的左递归

iphone - 使用 NSDateFormatter 解析 RFC 822 日期

c - 如何在 C 中安全地缩小 JSON 文件?

antlr - 如何使用跳过规则跳过 "and"?

java - 未使用的解析器规则导致错误,具体取决于定义 - 为什么?

java - 如何在 Antlr 分词器中进行 Unicode 转义解码

ANTLRWorks 1.4.3 无法正确读取扩展 ASCII 字符

java - 强制 ANTLR 仅读取输入文件中的第一个注释部分并跳过其余注释