diff options
author | AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> | 2021-12-07 23:07:23 +0000 |
---|---|---|
committer | AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> | 2021-12-07 23:07:23 +0000 |
commit | 5c4d41c63af3ef064090336a14efe91931051e7e (patch) | |
tree | ccb7cf199040b2c7c7a57ace1692dc0046afa1e4 /src/Compiler/Translator.java | |
parent | 6279da9b8ede22a77161e9504d2482aba33ec2e8 (diff) | |
download | esotericFORTRAN-5c4d41c63af3ef064090336a14efe91931051e7e.tar.gz esotericFORTRAN-5c4d41c63af3ef064090336a14efe91931051e7e.zip |
Fixed known issues
Diffstat (limited to 'src/Compiler/Translator.java')
-rw-r--r-- | src/Compiler/Translator.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/Compiler/Translator.java b/src/Compiler/Translator.java index 6f5f050..5b7d52e 100644 --- a/src/Compiler/Translator.java +++ b/src/Compiler/Translator.java @@ -236,6 +236,10 @@ public class Translator{ //Write each dimension of the array for(Expression expr:arraydec.dimensions){ + if(expr.getExpressionType()!="literal"){ + Language.displayError(arraydec.name, "Array sizes must be defined using constants"); + throw new Error(); + } arrayString+="["; arrayString+=evaluateExpression(expr); arrayString+="]"; @@ -293,6 +297,8 @@ public class Translator{ types+="%f"; } else if (exprType.equals("string")){ types+="%s"; + } else{ + Language.displayError("Unknown expression type in print statement"); } //Add the actual expression value values+=evaluateExpression(expr); @@ -527,11 +533,11 @@ public class Translator{ boolean first=true; //Write each argument of the function call - for(Token arg:expr.arguments){ + for(Expression arg:expr.arguments){ if(!first){ functioncall+=","; } - functioncall+=arg.text; + functioncall+=evaluateExpression(arg); first=false; } functioncall+=")"; |