fsource is a collection of tools allowing you to parse Fortran 77 through Fortran 2008 programs. It is written in pure Python and has no external dependencies.
You install fsource via pip (you may want to append --user
flag to install
it just for you or --prefix=/install/path
to choose the installation location):
$ pip install fsource
You can also simply download the source, since there are no external dependencies.
$ git clone github.com/mwallerb/fsource
$ cd fsource
In this case you should run bin/fsource
instead of fsource
, which augments the
python path with the downloaded source files.
fsource currently features a command line interface:
-
a parser, which takes a Fortran file and outputs an abstract syntax tree (for the definitions) allowing you to extract modules, subprograms, derived types, parameters, etc.:
$ fsource parse FILE.f90
-
a wrapper, which builds on the Fortran parser to extract module variables, types and subroutines which can be interfaced with C and generates header files for them:
$ fsource wrap FILE.f90
-
a line splicer and a lexer, low-level tools which split a Fortran file into a set of logical lines and tokens, respectively. This allows you to set up your parsing infrastructure on top of fsource:
$ fsource splice FILE.f90 $ fsource lex FILE.f90