diff options
author | AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> | 2021-11-20 02:24:52 +0000 |
---|---|---|
committer | AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> | 2021-11-20 02:24:52 +0000 |
commit | 68f651f90ac9bb42e6fcb461f72f82ee74df1fdd (patch) | |
tree | a94d69ae43cdc92395f1dbac3160bb4d45baa570 /src/Compiler/Translator.java | |
parent | 286e177e603d57d445393a0f4899bf7a17a4c31d (diff) | |
download | esotericFORTRAN-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.java | 9 |
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": |