【问题标题】:Using Fable to convert from Fortran 77 to C++使用 Fable 将 Fortran 77 转换为 C++
【发布时间】:2014-11-05 08:22:57
【问题描述】:

我只是尝试使用 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 

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

【问题讨论】:

    标签: c++ fortran converter fable


    【解决方案1】:

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

    更新:确实,在 Fortran 77 中,所有内容都必须以 with just END 结尾:

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

    END 语句的形式为:

    结束

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 2011-05-17
        • 1970-01-01
        • 2013-10-02
        • 1970-01-01
        相关资源
        最近更新 更多