[13 - String Templates] Add "CC-Praxis-Antlr X Uebersetzer-Leer"
This commit is contained in:
@@ -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: ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user