语法与支持语言

问题描述:

我有一些文件有一个特定的语法类似于ADA(虽然不完全相同)检查,但我想才去运行它们来验证语法。这些文件没有编译器,所以在使用它们之前我无法检查它们。我试图使用以下内容:语法与支持语言

gcc -c -gnats <file> 

但是这说编译单元的预期。我已经尝试了一些这方面的变化,但无济于事。

我只是想确保文件是使用它之前语法正确的,但我不知道该怎么做了,我真的不想写一个完整的语法检查只是为了这个。

有一些办法,包括额外的不支持的语言,而无需通过重新编译去的gcc?此外,这只是一个文件,详细说明gcc语法构造是什么,或者会引起什么?我不需要完整的编译,只需要一个语法检查。

或者,是否有任何语法检查,我可以使用,我可以更新与少数的这种语言需要改变的ADA语法检查?

我列出阿达作为标记,因为语法几乎是相同的,而找到的东西,会做ADA语法编译的情况将是我90%的溶液检查。

+0

这个ada像语法/语言有一个名字吗? – NWS 2011-04-05 11:40:16

您可以尝试先通过gnatchop运行文件。 GCC Ada编译器相当独特,因为它希望文件名与文件内的主要单元名称相匹配。这可能是你的错误信息试图说的。

gnatchop将会通过您提供的任何文件,并使用适当的名称写出Ada源文件以使gcc开心(甚至在需要时将文件拆分为多个文件)。

您可能感兴趣的另一选项是OpenToken。它是一个用Ada编写的解析器构建工具包,可以让您轻松构建自己的解析器。它附带了Ada的语法识别器,因此您可能只需稍微调整一下即可满足您的需求。

+0

当我在等待的时候,我开始寻找并发现了这个“antlr”程序,但是大部分的教程让我很难过。我会试着花一些时间看看这个OpenToken,看看它是否更容易遵循。 – onaclov2000 2011-04-04 16:03:12

+0

用gnatchop,这个特定的语言似乎不太正确... – onaclov2000 2011-04-04 16:04:20

+0

@ onaclov2000 - 我害怕这一点。解析器“关闭”并不总是足够好。告诉我OpenToken如何为你工作。这实际上是我的一个旧项目,但其他项目现在已经运行了几年。 – 2011-04-04 17:38:47