Syntax 使用不支持的语言进行语法检查

Syntax 使用不支持的语言进行语法检查,syntax,ada,Syntax,Ada,我有一些文件具有与ada类似的特定语法(虽然不完全相同),但是我想在运行它们之前验证语法。这些文件没有编译器,所以我无法在使用它们之前检查它们。我尝试使用以下方法: gcc -c -gnats <file> gcc-c-gnats 然而,这表明编译单位的预期。我尝试了一些变化,但没有效果 我只是想在使用它之前确保文件在语法上是正确的,但我不知道如何做,我真的不想为此编写一个完整的语法检查器 是否有一些方法可以在不经过重新编译的情况下将其他不受支持的语言包含到gcc中?这仅仅是一个

我有一些文件具有与ada类似的特定语法(虽然不完全相同),但是我想在运行它们之前验证语法。这些文件没有编译器,所以我无法在使用它们之前检查它们。我尝试使用以下方法:

gcc -c -gnats <file>
gcc-c-gnats
然而,这表明编译单位的预期。我尝试了一些变化,但没有效果

我只是想在使用它之前确保文件在语法上是正确的,但我不知道如何做,我真的不想为此编写一个完整的语法检查器

是否有一些方法可以在不经过重新编译的情况下将其他不受支持的语言包含到gcc中?这仅仅是一个向gcc详细说明语法结构是什么或需要什么的文件吗?我不需要完整的编译,只需要语法检查

或者,我是否可以使用任何语法检查器来更新ada语法检查,只需对该语言进行少量更改


我已经将Ada列为一个标记,因为语法几乎相同,因此找到一些可以在不编译的情况下进行Ada语法检查的方法对我来说是一个90%的解决方案。

您可以先尝试通过
gnatchop
运行文件。GCCADA编译器非常独特,因为它希望文件名与文件中的主要单元名匹配。这可能就是您的错误消息想要说的

gnatchop
将检查您提供的任何文件,并写出具有适当名称的Ada源文件,以使gcc满意(如果需要,甚至可以将文件拆分为多个文件)


您可能感兴趣的另一个选项是。它是一个解析器构造工具包,用Ada编写,允许您相当轻松地构建自己的解析器。它为Ada提供了一个语法识别器,因此您可以根据自己的需要对其进行一些调整。

在我等待的时候,我开始寻找并找到了这个“antlr”程序,但不幸的是,我很难跟上大部分教程。我将试着花一些时间看看这个OpenToken,看看它是否更容易理解。@onaclov2000-我很害怕。使用解析器时,“Close”并不总是足够好。告诉我OpenToken对你有什么好处。这实际上是我的一个老项目,但现在其他人已经在运行这个项目好几年了。@onaclov2000-顺便说一句:实际上我自己也是一个Antlr迷。然而,一般来说,对于那些知道自己在做什么的人来说,手工编写词法分析器和解析器是一个更好的主意。如果您不知道如何正确地执行此操作,最好使用可用的最简单工具(在您的情况下可能是OpenToken)。Antlr和lex/yacc存在于(IMHO)一种不愉快的中间地带。堆栈溢出是否有消息传递系统?(除了我们在这里所做的以外),我只是想问你几个次要问题。这个类似ada的语法/语言有名字吗?