能否从gcc或clang获取Lexer输出?

13

是否可以让clang或gcc显示词法分析阶段的结果?


1
现代编译器实际上没有单独的词法分析阶段,而是与语法分析耦合在一起。 - Some programmer dude
6
虽然有专门用于词法分析的源文件,但实际的词法分析是“即时进行”的。当解析器需要一个标记时,它会向词法分析器请求,然后词法分析器实际上提取出标记并将其返回给解析器。单独的词法分析阶段只在计算机内存很少时需要,因此词法分析器作为一个单独的程序运行以节省解析器的内存。这现在已成为计算历史的一部分。 - Some programmer dude
1
显示结果是什么意思? - didierc
1
编写一个“解析器模拟器”应该非常简单,它只需重复调用词法分析器,从而产生一系列词元。 - Ira Baxter
1
我听说IBM 1401计算机(60年代中期的老式计算机,是的,我实际上为其中一个编写了一些代码)有一个17遍的COBOL编译器,因为它没有太多的内存。我没有特别听说它有一个单独的词法分析器,但我也没有问过。所以,也许吧。但是,如果真的有关于单独的词法分析器的说法,那么这个消息已经相当老了。 - Ira Baxter
显示剩余5条评论
1个回答

16

2
为了避免输出中出现“error: linker command failed”,命令应该是:clang -fsyntax-only -Xclang -dump-tokens code.c - codeman48
2
gcc是否有类似的命令? - Mehdi Charife

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接