我可以使用LLVM解析Fortran吗?

Li *_*ong 6 parsing fortran llvm abstract-syntax-tree

我是LLVM的新手.我的基本需求是解析Fortran代码.通过查看LLVM网站,LLVM似乎可以用作解析代码的库.那么我可以用它来解析Fortran代码,并提取有关代码的信息(AST?)?

Eli*_*sky 12

LLVM是一个编译器后端.它唯一知道如何解析的是LLVM IR - 一种旨在从编程语言前端发出的中间语言.LLVM的官方前端是Clang,它可以处理C,C++和ObjC.如果您对其他语言感兴趣,还有DragonEgg,它是gcc的LLVM插件.它使用gcc的前端和LLVM作为后端,因此它可以解析gcc知道如何解析的任何内容.我知道正在努力使其从Ada和Fortran生成正确的代码.这是摘自其页面的摘录:

当前状态

  • 最适合gcc-4.6.
  • Fortran非常好用.Ada,C和C++也运行良好.Ada与gcc-4.7的效果很差.
  • 它可以编译合理数量的Obj-C,Obj-C++和Go.
  • 它可以编译简单的Java程序,但是它们没有正确执行(这是java前端不支持GCC的LTO的结果).
  • 调试信息很差.

  • @LiDong:如果您只需解析Fortran并获取符号信息,您甚至可能不需要DragonEgg或LLVM.也许你只需要gcc来转储其前端数据.我会四处寻找有关使用gcc进行此操作的文档. (2认同)