ANTLRv4的C语法
我想知道除了Github上的C语法外,是否还有其他人可以使用ANTLRv4的C语法 我根本无法让现有的一个运行,它甚至无法解析示例文件。也许我遗漏了一些东西,但我对其他语法没有任何问题 我正在考虑修改现有的一个/写我自己的,但我真的没有时间-我在这个项目上的工作时间有限 非常感谢您的帮助 谢谢ANTLRv4的C语法,c,parsing,antlr,antlr4,C,Parsing,Antlr,Antlr4,我想知道除了Github上的C语法外,是否还有其他人可以使用ANTLRv4的C语法 我根本无法让现有的一个运行,它甚至无法解析示例文件。也许我遗漏了一些东西,但我对其他语法没有任何问题 我正在考虑修改现有的一个/写我自己的,但我真的没有时间-我在这个项目上的工作时间有限 非常感谢您的帮助 谢谢 Katy所以你不能在几个月内创建一个有效的C语法,而且它比看起来更复杂。我的观点是,解析所有C语言(没有预处理器)需要6个月的时间 例如,第一印象是C语法是上下文无关的,但实际上它是上下文敏感的 采用IS
Katy所以你不能在几个月内创建一个有效的C语法,而且它比看起来更复杂。我的观点是,解析所有C语言(没有预处理器)需要6个月的时间 例如,第一印象是C语法是上下文无关的,但实际上它是上下文敏感的
采用ISO标准附录A中的官方语法,并从中开始实现子语言,逐个插入非终结符。您应该描述示例文件中存在的问题。可能问题不在于语法,而在于示例文件或生成解析器的方式?您不想编写自己的或调试其他人的C解析器。C语言在实践中很难解析。请看,您可以为C定义一个上下文无关的解析器,然后对其进行解析。使用ANTLR或其他较旧的解析技术无法做到这一点。您可以通过黑客攻击解析器来考虑accounk密钥上下文敏感性,但这是一种黑客攻击。看见是的,那么您需要做更多的工作来处理解析C源代码的所有其他复杂性。上下文敏感部分在C文献中命名为lexer hack.,事实上,该标准的语法在某些部分需要一些回溯,但不太具有符号化。或者您可以生成两个解析树,并消除最后带有歧义的解析树,等等。想法是C语法很复杂,不是@OP:
的解决方案,我真的没有时间
。。。