在深入研究 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/