[13 - String Templates] Add "CC-Praxis-Antlr X Uebersetzer-Leer"

This commit is contained in:
2020-06-10 10:20:02 +02:00
parent bfb63b182d
commit 76597fb4a9
41 changed files with 7720 additions and 10 deletions

View File

@@ -0,0 +1,63 @@
tree grammar XOptimizer;
options {
language = Java;
output = AST;
tokenVocab = XTypeCheck;
ASTLabelType = XTree;
filter=true;
}
@header {
package de.dhbw.compiler.antlrxcompiler;
}
@members {
private String addString(String first, String last) {
return first.substring(0, first.length()-1)+last.substring(1);
}
private String opInt(String first, String last, char op) {
int firstValue = 0;
int lastValue = 0;
try {
firstValue = Integer.parseInt(first);
lastValue = Integer.parseInt(last);
} catch (Exception e) {
e.printStackTrace();
}
switch (op) {
case '+': return Integer.toString(firstValue+lastValue);
case '-': return Integer.toString(firstValue-lastValue);
case '*': return Integer.toString(firstValue*lastValue);
case '/': return Integer.toString(firstValue/lastValue);
default: return "";
}
}
private String opFloat(String first, String last, char op) {
double firstValue = 0.0;
double lastValue = 0.0;
try {
firstValue = Double.parseDouble(first);
lastValue = Double.parseDouble(last);
} catch (Exception e) {
e.printStackTrace();
}
switch (op) {
case '+': return Double.toString(firstValue+lastValue);
case '-': return Double.toString(firstValue-lastValue);
case '*': return Double.toString(firstValue*lastValue);
case '/': return Double.toString(firstValue/lastValue);
default: return "";
}
}
}
bottomup: ;