summaryrefslogtreecommitdiffstats
path: root/src/Compiler/Translator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compiler/Translator.java')
-rw-r--r--src/Compiler/Translator.java10
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+=")";