forked from JavaTX/JavaCompilerCore
replace makefile (which never worked very well) with custom bash script to generate class files and rollback some migrations to .jav which broke code
This commit is contained in:
parent
427e568ff8
commit
2b767f1f4f
59
compile.sh
Executable file
59
compile.sh
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SRCDIR="/home/julian/Dokumente/Programming/Java/Studienarbeit/JavaTXCompilerInJavaTX/javatx-src/main/java"
|
||||||
|
DESTDIR="/home/julian/Dokumente/Programming/Java/Studienarbeit/JavaTXCompilerInJavaTX/out"
|
||||||
|
JAVAC_FLAGS="-g:none -nowarn"
|
||||||
|
JAVATX_COMPILER_PATH="/home/julian/Dokumente/Programming/Java/Studienarbeit/JavaTXCompilerInJavaTX/JavaTXcompiler-1.1-jar-with-dependencies.jar"
|
||||||
|
|
||||||
|
#remove all files, if the script is called with parameter "clear"
|
||||||
|
if [ "$1" = "clear" ]; then
|
||||||
|
rm -r "$DESTDIR"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#find all .java/.jav files recursively and store them i an array
|
||||||
|
JAVA_FILES=($(find "$SRCDIR" -name "*.java"))
|
||||||
|
JAV_FILES=($(find "$SRCDIR" -name "*.jav"))
|
||||||
|
|
||||||
|
#create empty arrays for .class file paths
|
||||||
|
JAVA_CLASSES=()
|
||||||
|
JAV_CLASSES=()
|
||||||
|
|
||||||
|
JAVA_CHANGED=()
|
||||||
|
JAV_CHANGED=()
|
||||||
|
|
||||||
|
mkdir -p $DESTDIR
|
||||||
|
|
||||||
|
#fill class files arrays by subsituting .java/.jav -> .class for each file
|
||||||
|
for file in "${JAVA_FILES[@]}"; do
|
||||||
|
class_name="$DESTDIR${file#$SRCDIR}"
|
||||||
|
class_name="${class_name%.java}.class"
|
||||||
|
if [ ! -f "$class_name" ] || [ "$(stat -c "%Y" "$file")" -gt "$(stat -c "%Y" "$class_name")" ]; then
|
||||||
|
JAVA_CHANGED+=("$file")
|
||||||
|
JAVA_CLASSES+=("$class_name")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for file in "${JAV_FILES[@]}"; do
|
||||||
|
class_name="$DESTDIR${file#$SRCDIR}"
|
||||||
|
class_name="${class_name%.jav}.class"
|
||||||
|
if [ ! -f "$class_name" ] || [ "$(stat -c "%Y" "$file")" -gt "$(stat -c "%Y" "$class_name")" ]; then
|
||||||
|
JAV_CHANGED+=("$file")
|
||||||
|
JAV_CLASSES+=("$class_name")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if [ "${#JAV_CHANGED[@]}" -ne 0 ]; then
|
||||||
|
for ((i = 0; i < "${#JAV_CHANGED[@]}"; i++)); do
|
||||||
|
java -jar $JAVATX_COMPILER_PATH -d "${JAV_CLASSES[i]%/*}" -cp "$SRCDIR:$DESTDIR:target/dependencies/" ${JAV_CHANGED[i]}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${#JAVA_CHANGED[@]}" -ne 0 ]; then
|
||||||
|
javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/*" $JFLAGS ${JAVA_CHANGED[@]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,8 +3,11 @@ package de.dhbwstuttgart.syntaxtree.type;
|
|||||||
import de.dhbwstuttgart.syntaxtree.ASTVisitor;
|
import de.dhbwstuttgart.syntaxtree.ASTVisitor;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.typeinference.result.ResultSetVisitor;
|
import de.dhbwstuttgart.typeinference.result.ResultSetVisitor;
|
||||||
|
import de.dhbwstuttgart.syntaxtree.type.TypeVisitor;
|
||||||
import org.antlr.v4.runtime.Token;
|
import org.antlr.v4.runtime.Token;
|
||||||
|
|
||||||
|
import java.lang.Object;
|
||||||
|
|
||||||
public abstract class RefTypeOrTPHOrWildcardOrGeneric extends SyntaxTreeNode{
|
public abstract class RefTypeOrTPHOrWildcardOrGeneric extends SyntaxTreeNode{
|
||||||
public RefTypeOrTPHOrWildcardOrGeneric(Token offset) {
|
public RefTypeOrTPHOrWildcardOrGeneric(Token offset) {
|
||||||
super(offset);
|
super(offset);
|
||||||
|
@ -10,16 +10,9 @@ import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|||||||
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Void;
|
import de.dhbwstuttgart.syntaxtree.type.Void;
|
||||||
import de.dhbwstuttgart.typeinference.constraints.GenericsResolver;
|
import de.dhbwstuttgart.typeinference.constraints.GenericsResolver;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.Assumption;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.FunNClass;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.GenericDeclarationList;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class MethodAssumption extends Assumption{
|
public class MethodAssumption extends Assumption{
|
||||||
private ClassOrInterface receiver;
|
private ClassOrInterface receiver;
|
||||||
@ -27,7 +20,8 @@ public class MethodAssumption extends Assumption{
|
|||||||
List<? extends RefTypeOrTPHOrWildcardOrGeneric> params;
|
List<? extends RefTypeOrTPHOrWildcardOrGeneric> params;
|
||||||
private final Boolean isInherited;
|
private final Boolean isInherited;
|
||||||
|
|
||||||
public MethodAssumption(receiver, retType, params, scope, isInherited){
|
public MethodAssumption(ClassOrInterface receiver, RefTypeOrTPHOrWildcardOrGeneric retType,
|
||||||
|
List<? extends RefTypeOrTPHOrWildcardOrGeneric> params, TypeScope scope, Boolean isInherited){
|
||||||
super(scope);
|
super(scope);
|
||||||
this.receiver = receiver;
|
this.receiver = receiver;
|
||||||
this.retType = retType;
|
this.retType = retType;
|
||||||
@ -42,31 +36,28 @@ public class MethodAssumption extends Assumption{
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public getReceiver(){
|
public ClassOrInterface getReceiver(){
|
||||||
return receiver;
|
return receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public getReturnType() {
|
public RefTypeOrTPHOrWildcardOrGeneric getReturnType() {
|
||||||
return retType;
|
return retType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public getArgTypes(){
|
public List<? extends RefTypeOrTPHOrWildcardOrGeneric> getArgTypes(){
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
public getReturnType(resolver) {
|
public RefTypeOrTPHOrWildcardOrGeneric getReturnType(GenericsResolver resolver) {
|
||||||
return resolver.resolve(retType);
|
return resolver.resolve(retType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getArgTypes(resolver) {
|
public List<RefTypeOrTPHOrWildcardOrGeneric> getArgTypes(GenericsResolver resolver) {
|
||||||
|
|
||||||
List<RefTypeOrTPHOrWildcardOrGeneric> ret = new ArrayList<>();
|
List<RefTypeOrTPHOrWildcardOrGeneric> ret = new ArrayList<>();
|
||||||
|
for(RefTypeOrTPHOrWildcardOrGeneric param : params){
|
||||||
for(param : this.params){
|
|
||||||
param = resolver.resolve(param);
|
param = resolver.resolve(param);
|
||||||
ret.add(param);
|
ret.add(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,11 +66,10 @@ public class MethodAssumption extends Assumption{
|
|||||||
* @param resolver
|
* @param resolver
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public getReceiverType(resolver) {
|
public RefTypeOrTPHOrWildcardOrGeneric getReceiverType(GenericsResolver resolver) {
|
||||||
|
|
||||||
if (receiver == null) return null;
|
if (receiver == null) return null;
|
||||||
List<RefTypeOrTPHOrWildcardOrGeneric> params = new ArrayList<>();
|
List<RefTypeOrTPHOrWildcardOrGeneric> params = new ArrayList<>();
|
||||||
for(gtv : receiver.getGenerics()){
|
for(GenericTypeVar gtv : receiver.getGenerics()){
|
||||||
//Die Generics werden alle zu TPHs umgewandelt.
|
//Die Generics werden alle zu TPHs umgewandelt.
|
||||||
params.add(resolver.resolve(new GenericRefType(gtv.getName(), new NullToken())));
|
params.add(resolver.resolve(new GenericRefType(gtv.getName(), new NullToken())));
|
||||||
}
|
}
|
||||||
@ -93,7 +83,7 @@ public class MethodAssumption extends Assumption{
|
|||||||
return receiverType;
|
return receiverType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public isInherited() {
|
public Boolean isInherited() {
|
||||||
return isInherited;
|
return isInherited;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user