diff options
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+=")"; |