解析源代码

| 我需要解析不同文件的源代码,每个文件都用不同的语言编写,我想使用C来做到这一点。 为此,我曾考虑使用
yacc
/
lex
,但是我发现它们很难理解,可能是由于完全缺乏体面的文档(要么如此,要么它们确实是神秘的)。 所以我的问题是:在哪里可以找到
yacc
/
lex
的一些好的文档,最好是教程风格的介绍?或者,在C语言中还有更好的方法吗?也许还有其他我可以用的东西,而不是
yacc
/use1ѭ,甚至还可以用其他语言编写?     
已邀请:
        
yacc
lex
是非常强大的工具,围绕用于编译器构造的理论构建。为了完全理解它们,您可能需要一些形式语言的基础知识,自动机理论和编译器构造。 龙书是这个主题的经典。     
        Kernighan和Pike的《 Unix编程环境》的后半部分是对使用lex和yacc编程解释器的扩展介绍。 lex的覆盖范围很小,因为它们大多使用自定义扫描仪。     
        如果您喜欢数学(此答案中最重要的子句),请编写自己的编译器,然后再使用该文件编写编译器。我这样做一次是因为我厌倦了为作为递归下降编译器而开始的所有编译器产品编写所有函数,因为2004年的可用选择并不令我满意,并且因为我有自由找工作的时间。我只在一个项目上使用了编译器,并且未必经过全面测试,因此不在github上。我对设计的语法文件语法感到非常满意。 如果今天有这样的需求,我可能会做出不同的决定。在过去的8年中,较新的尖端CC \似乎已经发生了很大变化。     

要回复问题请先登录注册