summaryrefslogtreecommitdiffstats
path: root/src/Compiler/Translator.java
diff options
context:
space:
mode:
authorAidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com>2021-11-20 02:24:52 +0000
committerAidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com>2021-11-20 02:24:52 +0000
commit68f651f90ac9bb42e6fcb461f72f82ee74df1fdd (patch)
treea94d69ae43cdc92395f1dbac3160bb4d45baa570 /src/Compiler/Translator.java
parent286e177e603d57d445393a0f4899bf7a17a4c31d (diff)
downloadesotericFORTRAN-68f651f90ac9bb42e6fcb461f72f82ee74df1fdd.tar.gz
esotericFORTRAN-68f651f90ac9bb42e6fcb461f72f82ee74df1fdd.zip
Added initial support for do while loops
Diffstat (limited to 'src/Compiler/Translator.java')
-rw-r--r--src/Compiler/Translator.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Compiler/Translator.java b/src/Compiler/Translator.java
index 4c5da89..c5c5bc7 100644
--- a/src/Compiler/Translator.java
+++ b/src/Compiler/Translator.java
@@ -56,6 +56,9 @@ public class Translator{
case "doStmt":
evalDoStatement((DoStatement)statement);
break;
+ case "dowhileStmt":
+ evalDoWhileStatement((DoWhileStatement)statement);
+ break;
}
}
private void evalExpressionStatement(ExpressionStatement stmt){
@@ -137,6 +140,12 @@ public class Translator{
CCode.add("}");
}
+ private void evalDoWhileStatement(DoWhileStatement dowhilestatement){
+ CCode.add("while("+evaluateExpression(dowhilestatement.condition)+"){");
+ evaluateStatement(dowhilestatement.codeBlock);
+ CCode.add("}");
+ }
+
private String evaluateExpression(Expression expression){
switch(expression.getExpressionType()){
case "binary":