Compare commits

2 Commits

Author SHA1 Message Date
364176057d add java compiler classes 2024-05-15 22:12:06 +02:00
d5c0717763 testing with compiler without java classpath 2024-05-15 22:08:37 +02:00
1153 changed files with 50365 additions and 6843 deletions
.gitignoreJavaTXCompiler.jarJavaTXcompiler.jarREADME.mdapplyLambda.javcompile.sherrorsfunnclass
java-compiler-classes
Main.class
de
dhbwstuttgart
bytecode
core
environment
exceptions
parser
JavaTXParser.classNullToken.classSourceLoc.class
SyntaxTreeGenerator
antlr
Java17Lexer.classJava17Parser$AltAnnotationQualifiedNameContext.classJava17Parser$AndexpressionContext.classJava17Parser$AnnotationConstantRestContext.classJava17Parser$AnnotationContext.classJava17Parser$AnnotationMethodOrConstantRestContext.classJava17Parser$AnnotationMethodRestContext.classJava17Parser$AnnotationTypeBodyContext.classJava17Parser$AnnotationTypeDeclarationContext.classJava17Parser$AnnotationTypeElementDeclarationContext.classJava17Parser$AnnotationTypeElementRestContext.classJava17Parser$AnnotationvarmodContext.classJava17Parser$ArgumentsContext.classJava17Parser$ArrayCreatorRestContext.classJava17Parser$ArrayInitializerContext.classJava17Parser$ArrayaccessexpressionContext.classJava17Parser$AssertstmtContext.classJava17Parser$AssignexpressionContext.classJava17Parser$BitwiseandexpressionContext.classJava17Parser$BitwiseorexpressionContext.classJava17Parser$BitwisexorexpressionContext.classJava17Parser$BlockContext.classJava17Parser$BlockStatementContext.classJava17Parser$BlockstmtContext.classJava17Parser$BoolLiteralContext.classJava17Parser$BreakstmtContext.classJava17Parser$CastexpressionContext.classJava17Parser$CatchClauseContext.classJava17Parser$CatchTypeContext.classJava17Parser$CharLiteralContext.classJava17Parser$ClassBodyContext.classJava17Parser$ClassBodyDeclarationContext.classJava17Parser$ClassCreatorRestContext.classJava17Parser$ClassDeclarationContext.classJava17Parser$ClassOrInterfaceContext.classJava17Parser$ClassOrInterfaceModifierContext.classJava17Parser$ClassOrInterfaceTypeContext.classJava17Parser$ClassTypeContext.classJava17Parser$ClassblockContext.classJava17Parser$ClassorinterfacedeclContext.classJava17Parser$ConditionalassignexpressionContext.classJava17Parser$ConditionalstmtContext.classJava17Parser$ConstDeclarationContext.classJava17Parser$ConstantDeclaratorContext.classJava17Parser$ConstructorContext.classJava17Parser$ConstructorDeclarationContext.classJava17Parser$ConstructordeclContext.classJava17Parser$ContinuestmtContext.classJava17Parser$CreatedNameContext.classJava17Parser$CreatorContext.classJava17Parser$CreatorreferenceexpressionContext.classJava17Parser$DefaultValueContext.classJava17Parser$DottedexpressionContext.classJava17Parser$DowhileloopContext.classJava17Parser$ElementValueArrayInitializerContext.classJava17Parser$ElementValueContext.classJava17Parser$ElementValuePairContext.classJava17Parser$ElementValuePairsContext.classJava17Parser$EmptyclassbodyContext.classJava17Parser$EmptyinterfaceContext.classJava17Parser$EmptymethodContext.classJava17Parser$EnclosedPatternContext.classJava17Parser$EnhancedForControlContext.classJava17Parser$EnumBodyDeclarationsContext.classJava17Parser$EnumConstantContext.classJava17Parser$EnumConstantsContext.classJava17Parser$EnumDeclarationContext.classJava17Parser$EqualityexpressionContext.classJava17Parser$ExceptionListContext.classJava17Parser$ExplicitGenericInvocationContext.classJava17Parser$ExplicitGenericInvocationSuffixContext.classJava17Parser$ExpressionContext.classJava17Parser$ExpressionListContext.classJava17Parser$ExtendsWildcardTypeContext.classJava17Parser$FieldDeclarationContext.classJava17Parser$FinallyBlockContext.classJava17Parser$FinalvarmodContext.classJava17Parser$FloatLiteralContext.classJava17Parser$FltLiteralContext.classJava17Parser$ForControlContext.classJava17Parser$ForInitContext.classJava17Parser$ForloopContext.classJava17Parser$FormalParameterContext.classJava17Parser$FormalParameterListContext.classJava17Parser$FormalParametersContext.classJava17Parser$GPatternContext.classJava17Parser$GenericConstructorDeclarationContext.classJava17Parser$GenericDeclarationListContext.classJava17Parser$GenericInterfaceMethodDeclarationContext.classJava17Parser$GenericMethodDeclarationContext.classJava17Parser$GenericTypeVarContext.classJava17Parser$GenericconstructorContext.classJava17Parser$GenericinterfacemethodContext.classJava17Parser$GenericmethodContext.classJava17Parser$GuardedPatternContext.classJava17Parser$IdentifierContext.classJava17Parser$ImportDeclarationContext.classJava17Parser$InnerCreatorContext.classJava17Parser$InstanceofexpressionContext.classJava17Parser$IntLiteralContext.classJava17Parser$IntegerLiteralContext.classJava17Parser$InterfaceBodyContext.classJava17Parser$InterfaceBodyDeclarationContext.classJava17Parser$InterfaceCommonBodyDeclarationContext.classJava17Parser$InterfaceDeclarationContext.classJava17Parser$InterfaceMemberDeclarationContext.classJava17Parser$InterfaceMethodDeclarationContext.classJava17Parser$InterfaceMethodModifierContext.classJava17Parser$InterfaceconstContext.classJava17Parser$InterfacememberContext.classJava17Parser$InterfacemethodContext.classJava17Parser$LabeledRuleDefaultContext.classJava17Parser$LabeledRuleExprListContext.classJava17Parser$LabeledRuleNullContext.classJava17Parser$LabeledRulePatternContext.classJava17Parser$LabeledstmtContext.classJava17Parser$LambdaBodyContext.classJava17Parser$LambdaExpression2Context.classJava17Parser$LambdaExpressionContext.classJava17Parser$LambdaLVTIListContext.classJava17Parser$LambdaLVTIParameterContext.classJava17Parser$LambdaParametersContext.classJava17Parser$LastFormalParameterContext.classJava17Parser$LiteralContext.classJava17Parser$LocalTypeDeclarationContext.classJava17Parser$LocalVariableDeclarationContext.classJava17Parser$MathaddsubexpressionContext.classJava17Parser$MathmuldivmodexpressionContext.classJava17Parser$MemberDeclarationContext.classJava17Parser$MemberclassorinterfaceContext.classJava17Parser$MemberconstructorContext.classJava17Parser$MemberdeclContext.classJava17Parser$MemberfieldContext.classJava17Parser$MembermethodContext.classJava17Parser$MethodBodyContext.classJava17Parser$MethodCallContext.classJava17Parser$MethodContext.classJava17Parser$MethodDeclarationContext.classJava17Parser$MethodHeaderContext.classJava17Parser$MethodblockContext.classJava17Parser$MethodcallexpressionContext.classJava17Parser$MethoddeclContext.classJava17Parser$MethodorcreatorreferenceexpressionContext.classJava17Parser$MethodreferenceexpressionContext.classJava17Parser$ModifierContext.classJava17Parser$ModuleBodyContext.classJava17Parser$ModuleDeclarationContext.classJava17Parser$ModuleDirectiveContext.classJava17Parser$ModuledeclContext.classJava17Parser$NewinstanceexpressionContext.classJava17Parser$NoclassorinterfaceContext.classJava17Parser$NonWildcardTypeArgumentsContext.classJava17Parser$NonWildcardTypeArgumentsOrDiamondContext.classJava17Parser$NullLiteralContext.classJava17Parser$OrexpressionContext.classJava17Parser$PPatternContext.classJava17Parser$PackageDeclarationContext.classJava17Parser$ParExpressionContext.classJava17Parser$PatternContext.classJava17Parser$PostfixexpressionContext.classJava17Parser$PrefixexpressionContext.classJava17Parser$PrimaryClassrefContext.classJava17Parser$PrimaryContext.classJava17Parser$PrimaryExpression2Context.classJava17Parser$PrimaryExpressionContext.classJava17Parser$PrimaryIdentifierContext.classJava17Parser$PrimaryInvocationContext.classJava17Parser$PrimaryLiteralContext.classJava17Parser$PrimaryPatternContext.classJava17Parser$PrimarySuperContext.classJava17Parser$PrimaryThisContext.classJava17Parser$PrimitiveTypeContext.classJava17Parser$QualifiedNameContext.classJava17Parser$QualifiedNameListContext.classJava17Parser$RPatternContext.classJava17Parser$ReceiverParameterContext.classJava17Parser$RecordBodyContext.classJava17Parser$RecordComponentContext.classJava17Parser$RecordComponentListContext.classJava17Parser$RecordComponentPatternElementContext.classJava17Parser$RecordComponentPatternListContext.classJava17Parser$RecordDeclarationContext.classJava17Parser$RecordHeaderContext.classJava17Parser$RecordPatternContext.classJava17Parser$RecordStructurePatternContext.classJava17Parser$RefType2Context.classJava17Parser$RefTypeContext.classJava17Parser$RefvoidContext.classJava17Parser$RelationalexpressionContext.classJava17Parser$RequiresModifierContext.classJava17Parser$ResourceContext.classJava17Parser$ResourceSpecificationContext.classJava17Parser$ResourcesContext.classJava17Parser$ReturnstmtContext.classJava17Parser$SemistmtContext.classJava17Parser$ShiftexpressionContext.classJava17Parser$SourceFileContext.classJava17Parser$SrcfileContext.classJava17Parser$StatementContext.classJava17Parser$StmtexpressionContext.classJava17Parser$StringLiteralContext.classJava17Parser$SubclassorinterfaceContext.classJava17Parser$SuperSuffixContext.classJava17Parser$SuperWildcardTypeContext.classJava17Parser$SwitchBlockStatementGroupContext.classJava17Parser$SwitchExpression2Context.classJava17Parser$SwitchExpressionContext.classJava17Parser$SwitchLabelCaseContext.classJava17Parser$SwitchLabelConstContext.classJava17Parser$SwitchLabelContext.classJava17Parser$SwitchLabelDefaultContext.classJava17Parser$SwitchLabelEnumContext.classJava17Parser$SwitchLabelPatternContext.classJava17Parser$SwitchLabeledRuleContext.classJava17Parser$SwitchRuleOutcomeContext.classJava17Parser$SwitchstmtContext.classJava17Parser$SynchronizedstmtContext.classJava17Parser$TPatternContext.classJava17Parser$TextBlockContext.classJava17Parser$ThrowstmtContext.classJava17Parser$TrycatchblockContext.classJava17Parser$TrycatchresourceContext.classJava17Parser$TypeArgumentContext.classJava17Parser$TypeArgumentsContext.classJava17Parser$TypeArgumentsOrDiamondContext.classJava17Parser$TypeBoundContext.classJava17Parser$TypeIdentifierContext.classJava17Parser$TypeListContext.classJava17Parser$TypePatternContext.classJava17Parser$TypeTypeContext.classJava17Parser$VariableDeclaratorContext.classJava17Parser$VariableDeclaratorIdContext.classJava17Parser$VariableDeclaratorsContext.classJava17Parser$VariableInitializerContext.classJava17Parser$VariableModifierContext.classJava17Parser$WhileloopContext.classJava17Parser$WildcardTypeContext.classJava17Parser$YieldstmtContext.classJava17Parser.classJava17ParserBaseListener.classJava17ParserListener.class
scope
syntaxtree
ASTVisitor.classAbstractASTWalker.classClassOrInterface.classConstructor.classExceptionList.classExpressionPattern.classField.classFieldDeclaration.classFormalParameter.classGenericDeclarationList.classGenericTypeVar.classGuardedPattern.classMethod.classParameterList.classPattern.classRecord.classRecordPattern.classSourceFile.classStatementVisitor.classSyntaxTreeNode.classTypeScope.class
factory
statement
type
visual
target
generate
tree
MethodParameter.classTargetClass.classTargetConstructor.classTargetField.classTargetGeneric.classTargetInterface.classTargetMethod$Signature.classTargetMethod.classTargetRecord.classTargetStructure.class
expression
TargetAssign.classTargetBinaryOp$Add.classTargetBinaryOp$And.classTargetBinaryOp$BAnd.classTargetBinaryOp$BOr.classTargetBinaryOp$Div.classTargetBinaryOp$Equal.classTargetBinaryOp$Greater.classTargetBinaryOp$GreaterOrEqual.classTargetBinaryOp$Instof.classTargetBinaryOp$Less.classTargetBinaryOp$LessOrEqual.classTargetBinaryOp$Mul.classTargetBinaryOp$NotEqual.classTargetBinaryOp$Or.classTargetBinaryOp$Rem.classTargetBinaryOp$Shl.classTargetBinaryOp$Shr.classTargetBinaryOp$Sub.classTargetBinaryOp$TargetRelationalOp.classTargetBinaryOp$UShr.classTargetBinaryOp$XOr.classTargetBinaryOp.classTargetBlock.classTargetBreak.classTargetCast.classTargetClassName.classTargetComplexPattern.classTargetContinue.classTargetExpression.classTargetFieldVar.classTargetFor.classTargetForEach.classTargetGuard.classTargetIf.classTargetInstanceOf.classTargetLambdaExpression.classTargetLiteral$BooleanLiteral.classTargetLiteral$CharLiteral.classTargetLiteral$DoubleLiteral.classTargetLiteral$FloatLiteral.classTargetLiteral$IntLiteral.classTargetLiteral$LongLiteral.classTargetLiteral$Null.classTargetLiteral$StringLiteral.classTargetLiteral.classTargetLocalVar.classTargetMethodCall.classTargetNew.classTargetPattern.classTargetReturn.classTargetStatementExpression.classTargetSuper.classTargetSwitch$Case.classTargetSwitch.classTargetTernary.classTargetThis.classTargetThrow.classTargetTypePattern.classTargetUnaryOp$Add.classTargetUnaryOp$Negate.classTargetUnaryOp$Not.classTargetUnaryOp$PostDecrement.classTargetUnaryOp$PostIncrement.classTargetUnaryOp$PreDecrement.classTargetUnaryOp$PreIncrement.classTargetUnaryOp.classTargetVarDecl.classTargetWhile.classTargetYield.class
type
typedeployment
typeinference
util
javatx-src-old/main
antlr4
de
dhbwstuttgart
java
Main.java
de
dhbwstuttgart
bytecode
core
environment
exceptions
parser
syntaxtree
target
typedeployment
typeinference
util
javatx-src/main/java/de/dhbwstuttgart
lib
classes
dependencies
resources
AllgemeinTest
bytecode
javFiles
AA.javAccess.javAddLong.javAnnotation.javAssignToLit.javBB.javBinaryInMeth.javBox.javBox.javaBug112.javBug122.javBug123.javBug125.javBug285.javBug290A.javBug290B.javBug293.javBug295.javBug296.javBug297.javBug298.javBug300.javBug301.javBug302.javBug306.javBug307.javBug309.javBug310.javBug311.javBug312.javBug314.javBug325.javBug326.javBug328.javBug328B.javaBug98.javBugXXX.javCC.javChain.javClassGenLam.javCycle.javDD.javDuMethod.javEmptyClass.javEmptyMethod.javExample.javExceptions.javExpressions.javFC_Matrix.javFac.javFaculty.javFaculty2.javFacultyIf.javFacultyTyped.javField.javFieldAccess.javFieldTph.javFieldTph2.javFieldTphConsMeth.javFieldTphMMeth.javFields.javFor.javForEach.javFunOL.javFunctionalInterface.javGen.javGenerics.javGenerics2.javGenerics3.javGenerics4.javGreaterEqual.javGreaterThan.javHelloWorld.javId.javIfTest.javImport.javInf.javInfimum.javInherit.javInherit2.javInstanceOf.javInterface1.javInterfaces.javKompTph.javLamRunnable.javLambda.javLambda2.javLambda3.javLambda4.javLambdaCapture.javLambdaField.javLambdaRunnable.javLambdaVoid.javLessEqual.javLessThan.javListenerOverload.javLiteral.javMatrix.javMatrixOP.javMerge.javMeth_Gen.javMethodCallGenerics.javMethodWildcardGen.javMethods.javMethodsEasy.javOL.javOLConstructor.javOLFun.javOLFun2.javOp.javOp1.javOp2.javOverlaodGen.javOverloadPattern.javOverloading.javOverrideEquals.javOverrideRoot.javaPackage.javPair.javPairNoGenerics.javPlus.javPostIncDec.javPreInc.javPut.javRecordTest.javRecursiveMeth.javRelOps.javReturnMethod.javScalar.javSimpleCycle.javSorting.javStatic.javStaticM.javSubMatrix.javSubclass.javSuperCall.javSuperclass.javSwitch.javSwitch2.javSwitchString.javTXGenerics.javTernary.javTph.javTph2.javTph3.javTph4.javTph5.javTph6.javTph7.javTypeCast.javTypedID.javVector.javVectorAdd.javVectorSuper.javVoidMeth.javWC.javWhile.javWildcards.javY.javfc.javmathStruc.javmathStrucInteger.javmathStrucMatrixOP.javtest.javtest1.jav
insertGenerics
packageTest
syntaxtreegenerator
test.sh
tests

7
.gitignore vendored

@@ -4,7 +4,7 @@
# But do not ignore .class files in resources/bytecode/javFiles (necessary for tests)
!/resources/bytecode/javFiles/**/*.class
!/lib/classes/**/*.class
!/java-compiler-classes/**/*.class
# Log file
*.log
@@ -30,7 +30,4 @@ replay_pid*
#compiled files
out
logFiles
*.iml
.idea/
logFiles

Binary file not shown.

@@ -11,7 +11,7 @@ To remove all compile files, use
./compile.sh clean
```
To run all junit tests on the files, use
```
./test.sh
```

@@ -3,7 +3,7 @@ class Apply { }
public class applyLambda {
public m () {
m () {
var lam1 = (x) -> {
return x;
};

@@ -3,10 +3,9 @@
SRCDIR="javatx-src/main/java"
DESTDIR="out/src"
TESTDESTDIR="out/tests"
DEPENDENCIES="dependencies/*"
DEPENDENCIES="dependencies"
JAVAC_FLAGS="-g:none -nowarn"
JAVATX_COMPILER_PATH="JavaTXcompiler.jar"
COMPILED_CLASSES="lib/classes"
JAVATX_COMPILER_PATH="JavaTXCompiler.jar"
#remove all files, if the script is called with parameter "clear"
if [ "$1" = "clean" ]; then
@@ -14,7 +13,7 @@ if [ "$1" = "clean" ]; then
exit 0
fi
if [ "$1" != "debug" ] && [ "$1" != "" ]; then
if [ "$1" != "" ]; then
echo "invalid argument: $1"
exit 1
fi
@@ -62,23 +61,29 @@ for file in "${JAV_FILES[@]}"; do
fi
done
if [ "$1" == "debug" ]; then
echo "-d \"$(realpath $DESTDIR)\" -cp \"$(realpath $SRCDIR):$(realpath $DESTDIR):$(realpath $COMPILED_CLASSES)\" $(realpath ${JAV_CHANGED[@]})"
exit 0
fi
if [ "${#JAV_CHANGED[@]}" -ne 0 ]; then
echo "java -jar $JAVATX_COMPILER_PATH -d $DESTDIR -cp "$SRCDIR:$DEPENDENCIES:$COMPILED_CLASSES" ${JAV_CHANGED[@]}"
java -jar $JAVATX_COMPILER_PATH -d $DESTDIR -cp "$SRCDIR:$DEPENDENCIES:$COMPILED_CLASSES" "${JAV_CHANGED[@]}"
echo "java -jar $JAVATX_COMPILER_PATH -d $DESTDIR -cp "$SRCDIR:dependencies/" ${JAV_CHANGED[@]}"
java -jar $JAVATX_COMPILER_PATH -d $DESTDIR -cp "$SRCDIR:dependencies/:java-compiler-classes/" "${JAV_CHANGED[@]}"
if [ $? -ne 0 ]; then
echo "Fehler beim Kompilieren der Jav-Dateien. Beende das Skript."
exit 1
fi
fi
#if [ "${#JAV_CHANGED[@]}" -ne 0 ]; then
# for ((i = 0; i < "${#JAV_CHANGED[@]}"; i++)); do
# echo "java -jar $(realpath $JAVATX_COMPILER_PATH) -d $(realpath "$DESTDIR") -cp "$(realpath $SRCDIR):$(realpath $DESTDIR):$(realpath "target/dependencies/")" ${JAV_CHANGED[i]}"
# java -jar $JAVATX_COMPILER_PATH -d "$DESTDIR" -cp "$SRCDIR:$DESTDIR:target/dependencies/" "${JAV_CHANGED[i]}"
# if [ $? -eq 1 ]; then
# exit 1;
# fi
# done
#fi
if [ "${#JAVA_CHANGED[@]}" -ne 0 ]; then
echo "javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:$DEPENDENCIES" $JAVAC_FLAGS ${JAVA_CHANGED[@]}"
javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:$DEPENDENCIES" $JAVAC_FLAGS "${JAVA_CHANGED[@]}"
echo "javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:dependencies/*:java-compiler-classes/*" $JAVAC_FLAGS ${JAVA_CHANGED[@]}"
javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:dependencies/*:java-compiler-classes/*" $JAVAC_FLAGS "${JAVA_CHANGED[@]}"
fi
# if [ $? -eq 0 ]; then

232
errors Normal file

File diff suppressed because one or more lines are too long

3470
funnclass Normal file

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More