case (x : ProducerStatement) => processStatement(x.toConcrete)
case (x : ForLoop) => processForLoop(x)
case (a : Assignment) => processAssignment(a)
+ case (i : IfStatement) => processIf(i)
case x => throw new UnimplementedException("Unknown statement type in FORTRAN generator: " + x.toString)
}
}
addLine("%s = %s".format(buildExpression(assignment.getLHS), buildExpression(assignment.getRHS)))
}
+ private def processIf(ifStatement: IfStatement) {
+ addLine("if (%s) then".format(buildExpression(ifStatement.getPredicate)))
+ in
+ processScope(ifStatement)
+ out
+ addLine("endif")
+ }
+
private def addLine(line: String) {
buffer += " "*indentLevel + line
}
package ofc.codegen
-class IfStatement(predicate: Expression[BoolType]) extends ScopeStatement
+class IfStatement(predicate: Expression[BoolType]) extends ScopeStatement {
+ def getPredicate : Expression[BoolType] = predicate
+}