FlowProgram 与程序

FlowProgram vs. Program

我正在尝试使用提供给 TU Eindhoven 的 FlowGraphsAndClassDiagrams 框架。对于函数 buildGraph,应该给出一个 FlowProgram。我尝试 运行 以下内容:

m = createM3FromEclipseProject(|project://eLib|);
FlowProgram p = createOFG(|project://eLib|);
rel[loc from, loc to] relations = buildGraph(p);

这会产生错误消息:需要 FlowProgram,但得到了 Program。

那么,问题来了,什么是FlowProgram,它是在哪里定义的?它和createOFG创建的程序有什么区别?

好像有版本差异。 createOFG returns 以前版本 FlowProgram 中的 Program 类型。因此,如果您在代码中将 FlowProgram 更改为 Program,它将起作用。或者您可以完全忽略类型并使用 p = createOFG(|project://eLib|); 并且应该为您推断类型。

附加信息:

  • Programlang::ofg::ast::FlowLanguage 中定义为 data Program = program(set[Decl] decls, set[Stm] statements);