package org.overture.codegen.vdm2java; import org.overture.codegen.ir.declarations.ADefaultClassDeclIR; import org.overture.codegen.ir.declarations.AMethodDeclIR; import org.overture.codegen.ir.types.AVoidTypeIR; public class JavaMainTag { private boolean isVoidRun; public JavaMainTag(ADefaultClassDeclIR classCg) { checkRunReturnType(classCg); } private void checkRunReturnType(ADefaultClassDeclIR classCg) { isVoidRun = false; for (AMethodDeclIR m : classCg.getMethods()) { if (m.getName().equals("Run") && m.getMethodType().getResult() instanceof AVoidTypeIR) { isVoidRun = true; } } } public String getMainMethod() { String body; if (isVoidRun) { body = "Run();IO.println(Utils.toString(Utils.VOID_VALUE));"; } else { body = "IO.println(Utils.toString(Run()));"; } return "public static void main(String[] args){ " + body + " }"; } }