2013-05-06 80 views
0

是否可以从Fortran内部获取Fortran模块中定义的所有函数和sobroutines的列表?例如,在python中,我可以这样做:列出Fortran模块中的所有子例程

import math 
dir(math) 

我得到了数学模块中所有名称的列表。我正在寻找类似于fortran的东西(尽管我不屏住呼吸)。

+0

'grep子程序文件名.f'? – 2013-05-06 19:47:46

回答

2

的“Fortran的”外,一些编译器可以可能被解析,以获得该信息输出符号表。在某些情况下,编译器通过编译模块生成的mod文件本身可能会被解析。还有一些可以改编的源代码分析工具。

+0

所以唯一的选择是以某种方式编写解析器? – Tor 2013-05-07 04:52:33

+0

对于您提出的具体问题 - 是的。无论这是你要做什么来解决原始问题,激发你去问这个具体问题是另一回事 - 我们需要更多关于原始问题的信息...... – IanH 2013-05-07 06:38:54

+0

我只是在哲学上思考为什么没有这是一个纯粹在Fortran中编写的fortran单元测试框架。例如,我看了FRUIT,它使用ruby和rakefiles来解析代码并创建一个将运行所有测试的fortran文件,以及fQunit,我认为它使用C++解析器和makefile来实现相同目的。 – Tor 2013-05-07 10:58:36

0

Fortran 90中和以后一个可以使用语法

函数foo() ... 结束函数foo

和子程序类似的东西。然后可以grep找到函数和子程序名称。

+0

“grep”我假设你是指命令行的意思?我想在Fortran程序中这样做,这就是我的意思是“从Fortran内部”。 – Tor 2013-05-07 04:51:06