1

我只是想使用 fable 将一个基本的 helloworld.f 程序转换为 C++(为以后更大的程序做准备)。我收到一个错误,但上面写着:

fable.read.Error: Missing END for PROGRAM:
  at hello.f(1):
  |      program HelloWorld|

我不明白,因为它可以编译并正常运行。该程序只是:

  program HelloWorld
  implicit none
     write (*,*) 'Hello, world!'   ! This is an inline comment
  end program HelloWorld 

有人看到寓言发现的问题吗?我以前从未使用过它,所以我只是想看看它是如何工作的。提前感谢您的帮助!

4

2 回答 2

1

我认为它无法解析end program HelloWorld。尝试将其更改为end program或仅更改为end.

更新:确实,在 Fortran 77 中,一切都必须END结尾:

END 语句表示程序单元(3.5)的语句序列和注释行的结束。如果在函数或子程序子程序中执行,它具有 RETURN 语句(15.8)的效果。如果在主程序中执行,它将终止可执行程序的执行。

END 语句的形式为:

结尾

END 语句只写在初始行的第 7 列到第 72 列中。END 语句不能继续。程序单元中的任何其他语句都不能有一个看起来是 END 语句的初始行。 每个程序单元的最后一行必须是 END 语句

于 2014-09-11T11:50:05.670 回答
0

在 python 2.7.7 上使用 fable 进行测试,您可以使用end或结束程序end program,但不能使用end program XXXXX. 据我所知,这是由于该程序解析器的工作方式以及将匹配项解释program <something>为起始程序块的方式,即使前面有end.

于 2014-09-11T13:20:44.990 回答