Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ANTLRv4的C语法_C_Parsing_Antlr_Antlr4 - Fatal编程技术网

ANTLRv4的C语法

ANTLRv4的C语法,c,parsing,antlr,antlr4,C,Parsing,Antlr,Antlr4,我想知道除了Github上的C语法外,是否还有其他人可以使用ANTLRv4的C语法 我根本无法让现有的一个运行,它甚至无法解析示例文件。也许我遗漏了一些东西,但我对其他语法没有任何问题 我正在考虑修改现有的一个/写我自己的,但我真的没有时间-我在这个项目上的工作时间有限 非常感谢您的帮助 谢谢 Katy所以你不能在几个月内创建一个有效的C语法,而且它比看起来更复杂。我的观点是,解析所有C语言(没有预处理器)需要6个月的时间 例如,第一印象是C语法是上下文无关的,但实际上它是上下文敏感的 采用IS

我想知道除了Github上的C语法外,是否还有其他人可以使用ANTLRv4的C语法

我根本无法让现有的一个运行,它甚至无法解析示例文件。也许我遗漏了一些东西,但我对其他语法没有任何问题

我正在考虑修改现有的一个/写我自己的,但我真的没有时间-我在这个项目上的工作时间有限

非常感谢您的帮助

谢谢


Katy

所以你不能在几个月内创建一个有效的C语法,而且它比看起来更复杂。我的观点是,解析所有C语言(没有预处理器)需要6个月的时间

例如,第一印象是C语法是上下文无关的,但实际上它是上下文敏感的


采用ISO标准附录A中的官方语法,并从中开始实现子语言,逐个插入非终结符。

您应该描述示例文件中存在的问题。可能问题不在于语法,而在于示例文件或生成解析器的方式?您不想编写自己的或调试其他人的C解析器。C语言在实践中很难解析。请看,您可以为C定义一个上下文无关的解析器,然后对其进行解析。使用ANTLR或其他较旧的解析技术无法做到这一点。您可以通过黑客攻击解析器来考虑accounk密钥上下文敏感性,但这是一种黑客攻击。看见是的,那么您需要做更多的工作来处理解析C源代码的所有其他复杂性。上下文敏感部分在C文献中命名为lexer hack.,事实上,该标准的语法在某些部分需要一些回溯,但不太具有符号化。或者您可以生成两个解析树,并消除最后带有歧义的解析树,等等。想法是C语法很复杂,不是@OP:
的解决方案,我真的没有时间
。。。