From 261cf2f6fad8a5570259324a2eb21efa801acc39 Mon Sep 17 00:00:00 2001 From: Jochen Seyfried Date: Thu, 2 May 2024 15:51:26 +0200 Subject: [PATCH 1/5] Added Classdiagram --- Source/Compilerbau Klassendiagramm.pdf | Bin 0 -> 58892 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Source/Compilerbau Klassendiagramm.pdf diff --git a/Source/Compilerbau Klassendiagramm.pdf b/Source/Compilerbau Klassendiagramm.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6784010a7ca6a33f2751781fb2f75e9793876613 GIT binary patch literal 58892 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 R*gSk3>|EIN^beGz{yzic)R+JO literal 0 HcmV?d00001 From bd3988004c1dcba5dcad27c408af91fb2dd7906a Mon Sep 17 00:00:00 2001 From: Jochen Seyfried Date: Sun, 5 May 2024 16:56:19 +0200 Subject: [PATCH 2/5] Added Bytecode generation Logic for datatypes and binary expressions --- .../Datatype/BoolDatatype.java | 10 ++ .../Datatype/CharDatatype.java | 10 ++ .../Datatype/IDatatype.java | 5 + .../Datatype/IntDatatype.java | 17 +++ .../abstractSyntaxTree/Datatype/RefType.java | 11 ++ .../Expression/BinaryExpression.java | 113 ++++++++++++++++++ .../Expression/IExpression.java | 2 + 7 files changed, 168 insertions(+) diff --git a/Source/abstractSyntaxTree/Datatype/BoolDatatype.java b/Source/abstractSyntaxTree/Datatype/BoolDatatype.java index 736606d..6f571fb 100644 --- a/Source/abstractSyntaxTree/Datatype/BoolDatatype.java +++ b/Source/abstractSyntaxTree/Datatype/BoolDatatype.java @@ -2,6 +2,7 @@ package abstractSyntaxTree.Datatype; import TypeCheck.AbstractType; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.*; public class BoolDatatype extends AbstractType implements IDatatype{ boolean value; @@ -14,4 +15,13 @@ public class BoolDatatype extends AbstractType implements IDatatype{ setTypeCheckResult(result); return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + if(value) { + mv.visitInsn(Opcodes.ICONST_1); // Pushes the int 1 on the stack (true) + } else { + mv.visitInsn(Opcodes.ICONST_0); // 0 for false + } + } } diff --git a/Source/abstractSyntaxTree/Datatype/CharDatatype.java b/Source/abstractSyntaxTree/Datatype/CharDatatype.java index ad598fc..12424fa 100644 --- a/Source/abstractSyntaxTree/Datatype/CharDatatype.java +++ b/Source/abstractSyntaxTree/Datatype/CharDatatype.java @@ -2,6 +2,7 @@ package abstractSyntaxTree.Datatype; import TypeCheck.AbstractType; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.MethodVisitor; public class CharDatatype extends AbstractType implements IDatatype{ char value; @@ -14,4 +15,13 @@ public class CharDatatype extends AbstractType implements IDatatype{ setTypeCheckResult(result); return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + + // Possible use of BIPUSH and SIPUSH if the value is small enough + //This saves space in the bytecode which is not very relevant at this point, but could be implemented anyway + + mv.visitLdcInsn((int)value); + } } diff --git a/Source/abstractSyntaxTree/Datatype/IDatatype.java b/Source/abstractSyntaxTree/Datatype/IDatatype.java index 16c73d1..0947c89 100644 --- a/Source/abstractSyntaxTree/Datatype/IDatatype.java +++ b/Source/abstractSyntaxTree/Datatype/IDatatype.java @@ -1,10 +1,15 @@ package abstractSyntaxTree.Datatype; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.MethodVisitor; public interface IDatatype { // typeCheck method TypeCheckResult typeCheck() throws Exception; // visit method for code generation + + void CodeGen(MethodVisitor mv) throws Exception; } + +//TODO: Check if we need to differentiate between primitive types and reference types --> for example in "==" \ No newline at end of file diff --git a/Source/abstractSyntaxTree/Datatype/IntDatatype.java b/Source/abstractSyntaxTree/Datatype/IntDatatype.java index 9f52ea1..a49c496 100644 --- a/Source/abstractSyntaxTree/Datatype/IntDatatype.java +++ b/Source/abstractSyntaxTree/Datatype/IntDatatype.java @@ -2,6 +2,8 @@ package abstractSyntaxTree.Datatype; import TypeCheck.AbstractType; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; public class IntDatatype extends AbstractType implements IDatatype{ int value; @@ -14,4 +16,19 @@ public class IntDatatype extends AbstractType implements IDatatype{ setTypeCheckResult(result); return result; } + + // visit method for code generation + + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + + //Example of using BIPUSH and SIPUSH for optimizing bytecode size + if (value >= Byte.MIN_VALUE && value <= Byte.MAX_VALUE) + mv.visitIntInsn(Opcodes.BIPUSH, value); + else if (value >= Short.MIN_VALUE && value <= Short.MAX_VALUE) + mv.visitIntInsn(Opcodes.SIPUSH, value); + else + mv.visitLdcInsn(value); + } } diff --git a/Source/abstractSyntaxTree/Datatype/RefType.java b/Source/abstractSyntaxTree/Datatype/RefType.java index 3077893..7090ee2 100644 --- a/Source/abstractSyntaxTree/Datatype/RefType.java +++ b/Source/abstractSyntaxTree/Datatype/RefType.java @@ -4,6 +4,8 @@ import TypeCheck.AbstractType; import TypeCheck.TypeCheckResult; import abstractSyntaxTree.Class.FieldDecl; import abstractSyntaxTree.Class.MethodDecl; +import jdk.jshell.spi.ExecutionControl; +import org.objectweb.asm.MethodVisitor; import java.util.List; @@ -31,4 +33,13 @@ public class RefType extends AbstractType implements IDatatype { setTypeCheckResult(result); return result; } + + // Method for code generation which iterates over all the field declarations + // and method declarations and calls their CodeGen methods + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + throw new ExecutionControl.NotImplementedException("CodeGen not implemented for RefType"); + } + + } diff --git a/Source/abstractSyntaxTree/Expression/BinaryExpression.java b/Source/abstractSyntaxTree/Expression/BinaryExpression.java index e5da3ec..990ebde 100644 --- a/Source/abstractSyntaxTree/Expression/BinaryExpression.java +++ b/Source/abstractSyntaxTree/Expression/BinaryExpression.java @@ -3,7 +3,9 @@ package abstractSyntaxTree.Expression; import TypeCheck.TypeCheckResult; import TypeCheck.TypeCheckHelper; import TypeCheck.AbstractType; +import org.objectweb.asm.*; +import java.beans.Expression; import java.util.Objects; public class BinaryExpression extends AbstractType implements IExpression{ @@ -54,4 +56,115 @@ public class BinaryExpression extends AbstractType implements IExpression{ setTypeCheckResult(result); return result; } + + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + // Label for the jump instruction + Label operationFalse = new Label(); //Operation is false + Label operationTrue = new Label(); //Operation is true + // Labels are placed at the end of this method + Label expressionEnd = new Label(); //End of the whole expression + + // Bytecode for the binary operation + switch (operator) { + case "&&": + left.CodeGen(mv); + mv.visitJumpInsn(Opcodes.IFEQ, operationFalse); // IFEQ --> "if equals to zero" (false) --> if left exp is false + + right.CodeGen(mv); + mv.visitJumpInsn(Opcodes.IFEQ, operationFalse); // If right exp is false, jump to the end of the whole expression + + mv.visitJumpInsn(Opcodes.GOTO, operationTrue); // If it reaches this point, the right exp is true + break; + + case "||": + left.CodeGen(mv); + mv.visitJumpInsn(Opcodes.IFNE, operationTrue); // IFNE --> "if not equals to zero" (true) --> if left exp is true + + right.CodeGen(mv); + mv.visitJumpInsn(Opcodes.IFNE, operationTrue); + break; + + case "==": + // Keep in mind that only primitive types are allowed in this case (at this time) + + left.CodeGen(mv); + right.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IF_ICMPEQ, operationTrue); // If the two values are equal, jump to the end of the expression + break; + + case "<": + left.CodeGen(mv); + right.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IF_ICMPLT, operationTrue); // Checks only on less than, not equal + break; + + case ">": + left.CodeGen(mv); + right.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IF_ICMPGT, operationTrue); // Checks only on greater than, not equal + break; + + case "<=": + left.CodeGen(mv); + right.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IF_ICMPLE, operationTrue); // Checks on less than OR equal + break; + + case ">=": + left.CodeGen(mv); + right.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IF_ICMPGE, operationTrue); // Checks on greater than OR equal + break; + + case "!=": + left.CodeGen(mv); + right.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IF_ICMPNE, operationTrue); // Checks on not equal + break; + + case "+": + left.CodeGen(mv); + right.CodeGen(mv); + mv.visitInsn(Opcodes.IADD); + break; + + case "-": + left.CodeGen(mv); + right.CodeGen(mv); + mv.visitInsn(Opcodes.ISUB); + break; + + case "*": + left.CodeGen(mv); + right.CodeGen(mv); + mv.visitInsn(Opcodes.IMUL); + break; + + case "/": + left.CodeGen(mv); + right.CodeGen(mv); + mv.visitInsn(Opcodes.IDIV); + break; + + default: + throw new Exception("Unknown operator: " + operator); + } + + mv.visitLabel(operationFalse); + mv.visitInsn(Opcodes.ICONST_0); // Push false on the stack + mv.visitJumpInsn(Opcodes.GOTO, expressionEnd); // Jump to the end of the expression (skip the true push) + + mv.visitLabel(operationTrue); + mv.visitInsn(Opcodes.ICONST_1); // Push true on the stack + + mv.visitLabel(expressionEnd); + } } diff --git a/Source/abstractSyntaxTree/Expression/IExpression.java b/Source/abstractSyntaxTree/Expression/IExpression.java index ba2b9c9..6ef53bd 100644 --- a/Source/abstractSyntaxTree/Expression/IExpression.java +++ b/Source/abstractSyntaxTree/Expression/IExpression.java @@ -1,10 +1,12 @@ package abstractSyntaxTree.Expression; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.MethodVisitor; public interface IExpression { // typeCheck method TypeCheckResult typeCheck() throws Exception; // visit method for code generation + void CodeGen(MethodVisitor mv) throws Exception; } From 95585d357a921f0ce061dbfd3f527895eac96184 Mon Sep 17 00:00:00 2001 From: Es war einmal ein Compilerbau-Kurs Date: Sun, 5 May 2024 21:09:45 +0000 Subject: [PATCH 3/5] Dateien nach "Source" hochladen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vollständige Grammatik nach Stand der Vereinbarung letzten Termines --- Source/Decaf.g4 | 125 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Source/Decaf.g4 diff --git a/Source/Decaf.g4 b/Source/Decaf.g4 new file mode 100644 index 0000000..f40a9f8 --- /dev/null +++ b/Source/Decaf.g4 @@ -0,0 +1,125 @@ +grammar Decaf; + +program: classdecl+; + +//class identifier{...} +classdecl: (AccessModifierPrivate|AccessModifierPublic|AccessModifierProtected)? 'class' Identifier OpenCurlyBracket (constuctorDecl|fieldDecl|methodDecl)* ClosedCurlyBracket; +constuctorDecl: (AccessModifierPrivate|AccessModifierPublic|AccessModifierProtected)? Identifier OpenRoundBracket parameterList? ClosedRoundBracket block; //Maybe not needed + +//Method and FieldVar +methodDecl: MainMethodDecl block | (AccessModifierPrivate|AccessModifierPublic|AccessModifierProtected)? (type | Void) Identifier OpenRoundBracket parameterList? ClosedRoundBracket block; +fieldDecl: (AccessModifierPrivate|AccessModifierPublic|AccessModifierProtected)? type Identifier Semicolon; + +//Parameters +parameterList: parameter(Comma parameter)*; +parameter: type Identifier; + +//property, object.a, 3+1, a = 3 +expression: subExpression | binaryExpr; +//subExpression to dissolve left-recusion +subExpression: This | Identifier | instVar | value | stmtExpr | notExpr | OpenRoundBracket expression ClosedRoundBracket; +notExpr: Not expression; +assignableExpr: Identifier | instVar; +instVar: This Dot Identifier | (This Dot)? (Identifier Dot)+ Identifier; + +//.trim().toLength().toLowerCase().count ... +methodCall: receiver? receivingMethod* Identifier OpenRoundBracket argumentList ClosedRoundBracket; +argumentList: expression? | expression (Comma expression)*?; + +binaryExpr: calcExpr | nonCalcExpr; + +calcExpr: calcExpr LineOperator dotExpr | dotExpr; +dotExpr: dotExpr DotOperator dotSubExpr | dotSubExpr; +dotSubExpr: IntValue | Identifier | instVar | methodCall | OpenRoundBracket calcExpr ClosedRoundBracket; +nonCalcExpr: subExpression nonCalcOperator expression; +nonCalcOperator: LogicalOpertor | ComparisonOperator; + +//Statement but also expression +//a = expr, new Object(), method(param1) +stmtExpr: assign | newDecl | methodCall; + +//Statements +//int a, {...}, while(a > 10){...}, if(...){...} else if{...} else{...} +statement: returnStmt Semicolon | localVarDecl Semicolon | block | whileStmt | ifElseStmt | stmtExpr Semicolon; +returnStmt: Return (expression)?; +localVarDecl: type Identifier (Assign expression)?; +block: OpenCurlyBracket statement* ClosedCurlyBracket; +whileStmt: While OpenRoundBracket expression ClosedRoundBracket block; +ifElseStmt: ifStmt elseStmt?; +ifStmt: If OpenRoundBracket expression ClosedRoundBracket statement; +elseStmt: Else statement; +assign: assignableExpr Assign expression; +newDecl: New Identifier OpenRoundBracket argumentList ClosedRoundBracket; +receiver: ((This | instVar | newDecl | Identifier) Dot); +receivingMethod: Identifier OpenRoundBracket argumentList ClosedRoundBracket Dot; +type: Int | Boolean | Char | Identifier; +value: IntValue | BooleanValue | CharValue | NullValue; + +//Access modifier +AccessModifierPublic : 'public' ; +AccessModifierPrivate : 'private'; +AccessModifierProtected : 'protected'; +MainMethodDecl : 'public static void main(String[] args)'; + +//Types +Void : 'void'; +Int : 'int'; +Boolean : 'bool'; +Char : 'char'; + +//Operators +DotOperator : Multipilkation | Division | Modulo; +LineOperator : Plus | Minus; +ComparisonOperator : Greater | Less | GreaterEqual | LessEqual | Equal | NotEqual; +LogicalOpertor : And | Or; + +Assign : '='; +Minus : '-'; +Plus : '+'; +Multipilkation : '*'; +Division : '/'; +Modulo : '%'; +Greater : '>'; +Less : '<'; +GreaterEqual : '>='; +LessEqual : '<='; +Equal : '=='; +NotEqual : '!='; +Not : '!'; +And : '&&'; +Or : '||'; + +//Symbols +Dot : '.'; +OpenRoundBracket : '('; +ClosedRoundBracket : ')'; +OpenCurlyBracket : '{'; +ClosedCurlyBracket : '}'; +Semicolon : ';'; +Comma : ','; + +//Keywords +Class : 'class'; +This : 'this'; +While : 'while'; +If : 'if'; +Else : 'else'; +For : 'for'; +Return : 'return'; +New : 'new'; + +//Identifier +fragment Alpabetic : [a-zA-Z]; +fragment Numeric: [0-9]; +fragment ValidIdentSymbols : Alpabetic|Numeric|'$'|'_'; +Identifier: Alpabetic ValidIdentSymbols*; + +//Values +IntValue : ('+'|'-')*[0-9]+; +CharValue: '\''~[\r\n]?'\''; +BooleanValue: 'true'|'false'; +NullValue: 'null'; + +//Whitespace? Right into the trash it gooeesss +WS : [ \t\r\n] -> skip; + From 2527d1546749d667e42f6f33bc16c594194ca67e Mon Sep 17 00:00:00 2001 From: Jochen Seyfried Date: Tue, 7 May 2024 13:50:51 +0200 Subject: [PATCH 4/5] Added Bytecodegeneration to the missing classes Also included some TODOs in areas where parameters and some connections are missing --- .../Expression/InstVarExpression.java | 22 ++++++++++++++++ .../Expression/UnaryExpression.java | 24 ++++++++++++++++++ .../Expression/VarRefExpression.java | 13 ++++++++++ .../Modifier/IModifier.java | 4 +++ .../Statement/BlockStatement.java | 10 ++++++++ .../Statement/EmptyStatement.java | 6 +++++ .../Statement/IStatement.java | 3 ++- .../Statement/IfElseStatement.java | 20 +++++++++++++++ .../Statement/IfStatement.java | 15 +++++++++++ .../Statement/ReturnStatement.java | 24 ++++++++++++++++++ .../Statement/WhileStatement.java | 25 +++++++++++++++++-- .../AssignStatementExpression.java | 19 ++++++++++++++ .../MethodCallStatementExpression.java | 20 +++++++++++++++ .../NewStatementExpression.java | 6 +++++ 14 files changed, 208 insertions(+), 3 deletions(-) diff --git a/Source/abstractSyntaxTree/Expression/InstVarExpression.java b/Source/abstractSyntaxTree/Expression/InstVarExpression.java index 8eee374..4cefa0c 100644 --- a/Source/abstractSyntaxTree/Expression/InstVarExpression.java +++ b/Source/abstractSyntaxTree/Expression/InstVarExpression.java @@ -1,10 +1,32 @@ package abstractSyntaxTree.Expression; import TypeCheck.TypeCheckResult; +import abstractSyntaxTree.Datatype.RefType; +import jdk.jshell.spi.ExecutionControl; +import org.objectweb.asm.MethodVisitor; public class InstVarExpression implements IExpression{ + + //TODO: We have to decide upon more parameters and where they come from, for + // example here we need the index of the field, the class reference and the field name + private RefType classRef; + private String fieldName; + +/* public InstVarExpression(RefType classRef, String fieldName){ + this.classRef = classRef; + this.fieldName = fieldName; + }*/ @Override public TypeCheckResult typeCheck() throws Exception { return null; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + throw new ExecutionControl.NotImplementedException("CodeGen not implemented for InstVarExpression"); + + //ALOAD the index of the var + //GETFIELD the field + //visitFieldInsn(Opcodes.GETFIELD, "class reference", "field name", type); + } } diff --git a/Source/abstractSyntaxTree/Expression/UnaryExpression.java b/Source/abstractSyntaxTree/Expression/UnaryExpression.java index 73e880b..890a43a 100644 --- a/Source/abstractSyntaxTree/Expression/UnaryExpression.java +++ b/Source/abstractSyntaxTree/Expression/UnaryExpression.java @@ -4,6 +4,8 @@ import TypeCheck.AbstractType; import TypeCheck.TypeCheckHelper; import TypeCheck.TypeCheckResult; import abstractSyntaxTree.Datatype.IDatatype; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; import java.util.Objects; @@ -38,4 +40,26 @@ public class UnaryExpression extends AbstractType implements IExpression{ setTypeCheckResult(result); return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + + operand.CodeGen(mv); + + switch (operator) { + case "!": + //XOR with 1 to get the negation + mv.visitInsn(Opcodes.ICONST_1); + mv.visitInsn(Opcodes.IXOR); + break; + case "-": + mv.visitInsn(Opcodes.INEG); + break; + case "+": + break; + + default: throw new Exception("Unknown operator :" + operator); + } + + } } diff --git a/Source/abstractSyntaxTree/Expression/VarRefExpression.java b/Source/abstractSyntaxTree/Expression/VarRefExpression.java index 2361d68..b94b166 100644 --- a/Source/abstractSyntaxTree/Expression/VarRefExpression.java +++ b/Source/abstractSyntaxTree/Expression/VarRefExpression.java @@ -1,10 +1,23 @@ package abstractSyntaxTree.Expression; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.MethodVisitor; + +import java.util.Map; public class VarRefExpression implements IExpression{ + + //Parameters that are needed here + private String varName; + private Map localVars; + @Override public TypeCheckResult typeCheck() throws Exception { return null; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + throw new Exception("CodeGen not implemented for VarRefExpression"); + } } diff --git a/Source/abstractSyntaxTree/Modifier/IModifier.java b/Source/abstractSyntaxTree/Modifier/IModifier.java index e201d50..e8c98ab 100644 --- a/Source/abstractSyntaxTree/Modifier/IModifier.java +++ b/Source/abstractSyntaxTree/Modifier/IModifier.java @@ -1,6 +1,10 @@ package abstractSyntaxTree.Modifier; public interface IModifier { + + //TODO: Maybe we can just use an enum for the Modifier + // if there is no typeCheck and no CodeGen + // not type or type check // visit method for code generation diff --git a/Source/abstractSyntaxTree/Statement/BlockStatement.java b/Source/abstractSyntaxTree/Statement/BlockStatement.java index f1fdc4e..3fb36e4 100644 --- a/Source/abstractSyntaxTree/Statement/BlockStatement.java +++ b/Source/abstractSyntaxTree/Statement/BlockStatement.java @@ -3,10 +3,13 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; import TypeCheck.AbstractType; import abstractSyntaxTree.Expression.IExpression; +import org.objectweb.asm.MethodVisitor; import java.util.List; public class BlockStatement extends AbstractType implements IStatement{ + + //We will need a parameter which holds the symbol table List statements; public BlockStatement(List statements){ this.statements = statements; @@ -31,4 +34,11 @@ public class BlockStatement extends AbstractType implements IStatement{ } return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + for (IStatement statement : statements) { + statement.CodeGen(mv); //TODO: I think we need to pass the symbol table here + } + } } diff --git a/Source/abstractSyntaxTree/Statement/EmptyStatement.java b/Source/abstractSyntaxTree/Statement/EmptyStatement.java index 43dd155..b6ce18e 100644 --- a/Source/abstractSyntaxTree/Statement/EmptyStatement.java +++ b/Source/abstractSyntaxTree/Statement/EmptyStatement.java @@ -2,6 +2,7 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; import TypeCheck.AbstractType; +import org.objectweb.asm.MethodVisitor; public class EmptyStatement extends AbstractType implements IStatement{ @Override @@ -10,4 +11,9 @@ public class EmptyStatement extends AbstractType implements IStatement{ result.type = "void"; return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + //An empty statement does not generate any code + } } diff --git a/Source/abstractSyntaxTree/Statement/IStatement.java b/Source/abstractSyntaxTree/Statement/IStatement.java index daa669a..65a2cb0 100644 --- a/Source/abstractSyntaxTree/Statement/IStatement.java +++ b/Source/abstractSyntaxTree/Statement/IStatement.java @@ -1,10 +1,11 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; +import org.objectweb.asm.MethodVisitor; public interface IStatement { TypeCheckResult typeCheck() throws Exception; - // visit method for code generation + void CodeGen(MethodVisitor mv) throws Exception; } diff --git a/Source/abstractSyntaxTree/Statement/IfElseStatement.java b/Source/abstractSyntaxTree/Statement/IfElseStatement.java index 2f19499..55f7619 100644 --- a/Source/abstractSyntaxTree/Statement/IfElseStatement.java +++ b/Source/abstractSyntaxTree/Statement/IfElseStatement.java @@ -3,6 +3,7 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; import TypeCheck.AbstractType; import abstractSyntaxTree.Expression.IExpression; +import org.objectweb.asm.*; public class IfElseStatement extends AbstractType implements IStatement{ IExpression condition; @@ -35,4 +36,23 @@ public class IfElseStatement extends AbstractType implements IStatement{ result.type = elseStatementType.type; return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + + Label conditionFalse = new Label(); + Label statementEnd = new Label(); + + condition.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IFEQ, conditionFalse); //Checks if the condition is false (0) + ifStatement.CodeGen(mv); //If the condition is true, execute the ifBlock + mv.visitJumpInsn(Opcodes.GOTO, statementEnd); //Jump to the end of the if-else statement + + mv.visitLabel(conditionFalse); + elseStatement.CodeGen(mv); //If the condition is false, execute the elseBlock + + mv.visitLabel(statementEnd); //End of the if-else statement + + } } diff --git a/Source/abstractSyntaxTree/Statement/IfStatement.java b/Source/abstractSyntaxTree/Statement/IfStatement.java index 0c19016..c1a915d 100644 --- a/Source/abstractSyntaxTree/Statement/IfStatement.java +++ b/Source/abstractSyntaxTree/Statement/IfStatement.java @@ -3,9 +3,12 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; import TypeCheck.AbstractType; import abstractSyntaxTree.Expression.IExpression; +import org.objectweb.asm.*; public class IfStatement extends AbstractType implements IStatement{ IExpression condition; + + //Do we need a block statement here? IStatement ifStatement; public IfStatement(IExpression condition, IStatement ifStatement) { @@ -27,6 +30,18 @@ public class IfStatement extends AbstractType implements IStatement{ return result; } + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + + Label conditionFalse = new Label(); + + condition.CodeGen(mv); + + mv.visitJumpInsn(Opcodes.IFEQ, conditionFalse); //Checks if the condition is false (0) + ifStatement.CodeGen(mv); + + mv.visitLabel(conditionFalse); // If the condition is false, the Statements in the ifBlock will not be executed + } } diff --git a/Source/abstractSyntaxTree/Statement/ReturnStatement.java b/Source/abstractSyntaxTree/Statement/ReturnStatement.java index 10b92df..2ee7536 100644 --- a/Source/abstractSyntaxTree/Statement/ReturnStatement.java +++ b/Source/abstractSyntaxTree/Statement/ReturnStatement.java @@ -3,6 +3,7 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; import TypeCheck.AbstractType; import abstractSyntaxTree.Expression.IExpression; +import org.objectweb.asm.*; public class ReturnStatement extends AbstractType implements IStatement{ IExpression expression; @@ -24,4 +25,27 @@ public class ReturnStatement extends AbstractType implements IStatement{ return result; } + + + //TODO: We do not differentiate between primitive types and reference types + // This is a problem at "BinaryExpression" and here because we need to know the type to return + // At this point in time we can either return reference types or have an error message + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + + if (expression != null) { + expression.CodeGen(mv); + //Get the Type of the expression + String type = expression.typeCheck().type; + + if (type.equals("int") || type.equals("bool")) { + mv.visitInsn(Opcodes.IRETURN); + } else { + mv.visitInsn(Opcodes.ARETURN); + + } + } else { + mv.visitInsn(Opcodes.RETURN); + } + } } diff --git a/Source/abstractSyntaxTree/Statement/WhileStatement.java b/Source/abstractSyntaxTree/Statement/WhileStatement.java index 288bcec..128660e 100644 --- a/Source/abstractSyntaxTree/Statement/WhileStatement.java +++ b/Source/abstractSyntaxTree/Statement/WhileStatement.java @@ -3,14 +3,17 @@ package abstractSyntaxTree.Statement; import TypeCheck.TypeCheckResult; import TypeCheck.AbstractType; import abstractSyntaxTree.Expression.IExpression; +import org.objectweb.asm.*; -public class WhileStatement extends AbstractType implements IStatement{ +public class WhileStatement extends AbstractType implements IStatement { IExpression condition; IStatement statement; + public WhileStatement(IExpression condition, IStatement statement) { this.condition = condition; this.statement = statement; } + @Override public TypeCheckResult typeCheck() throws Exception { TypeCheckResult result = new TypeCheckResult(); @@ -26,4 +29,22 @@ public class WhileStatement extends AbstractType implements IStatement{ result.type = statementType.type; return result; } -} + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + Label conditionFalse = new Label(); + Label LoopStart = new Label(); + + mv.visitLabel(LoopStart); + + condition.CodeGen(mv); + mv.visitJumpInsn(Opcodes.IFEQ, conditionFalse); // Checks if the condition is false (0) + + statement.CodeGen(mv); + //TODO: If the block ends with a return statement, we might have to pop it from the stack + // So the next iteration starts with a clean stack + mv.visitJumpInsn(Opcodes.GOTO, LoopStart); // Jump to the start of the while loop + + mv.visitLabel(conditionFalse); + } +} \ No newline at end of file diff --git a/Source/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java b/Source/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java index 520370b..11c7fb1 100644 --- a/Source/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java +++ b/Source/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java @@ -4,7 +4,10 @@ import TypeCheck.AbstractType; import TypeCheck.TypeCheckHelper; import TypeCheck.TypeCheckResult; import abstractSyntaxTree.Expression.IExpression; +import abstractSyntaxTree.Expression.InstVarExpression; +import abstractSyntaxTree.Expression.VarRefExpression; import abstractSyntaxTree.Statement.IStatement; +import org.objectweb.asm.*; import java.util.Objects; @@ -28,4 +31,20 @@ public class AssignStatementExpression extends AbstractType implements IExpressi setTypeCheckResult(result); return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + left.CodeGen(mv); + right.CodeGen(mv); + + if (left instanceof VarRefExpression varRef) { + //TODO: Implement the handling of a variable reference --> I need a lis of local variables + // for that to determine if the variable is a local or field variable + } else if (left instanceof InstVarExpression instVar) { + mv.visitInsn(Opcodes.DUP_X1); + + // We now again need the owner (class reference), name (of the Field in the owner) and type of the field + //mv.visitFieldInsn(Opcodes.PUTFIELD, instVar.className, instVar.varName, instVar.type); + } + } } diff --git a/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java b/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java index ee428d6..bffaa94 100644 --- a/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java +++ b/Source/abstractSyntaxTree/StatementExpression/MethodCallStatementExpression.java @@ -6,6 +6,8 @@ import abstractSyntaxTree.Class.MethodDecl; import abstractSyntaxTree.Datatype.RefType; import abstractSyntaxTree.Expression.IExpression; import abstractSyntaxTree.Statement.IStatement; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; import java.util.List; @@ -39,4 +41,22 @@ public class MethodCallStatementExpression extends AbstractType implements IExpr return result; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + //Generate Bytecode for the receiver + if(classThatHasTheMethodIfNotThis != null){ + classThatHasTheMethodIfNotThis.CodeGen(mv); + } else { + mv.visitVarInsn(Opcodes.ALOAD, 0); + } + + for (IExpression argument : arguments) { + argument.CodeGen(mv); + } + + //We need the class reference and the return type of the method + //mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, thisClass.name, methodName, return type); + + } } diff --git a/Source/abstractSyntaxTree/StatementExpression/NewStatementExpression.java b/Source/abstractSyntaxTree/StatementExpression/NewStatementExpression.java index 915ee84..9992585 100644 --- a/Source/abstractSyntaxTree/StatementExpression/NewStatementExpression.java +++ b/Source/abstractSyntaxTree/StatementExpression/NewStatementExpression.java @@ -4,10 +4,16 @@ import TypeCheck.AbstractType; import TypeCheck.TypeCheckResult; import abstractSyntaxTree.Expression.IExpression; import abstractSyntaxTree.Statement.IStatement; +import org.objectweb.asm.MethodVisitor; public class NewStatementExpression extends AbstractType implements IExpression, IStatement { @Override public TypeCheckResult typeCheck() throws Exception { return null; } + + @Override + public void CodeGen(MethodVisitor mv) throws Exception { + throw new Exception("CodeGen not implemented for NewStatementExpression"); + } } From d2ed7c9fdeb776da3c3f98ef4dc21dc6c2665c00 Mon Sep 17 00:00:00 2001 From: Jochen Seyfried Date: Tue, 7 May 2024 15:32:17 +0200 Subject: [PATCH 5/5] Updated the Class diagram --- Compilerbau Klassendiagramm.pdf | Bin 0 -> 90245 bytes Source/Compilerbau Klassendiagramm.pdf | Bin 58892 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Compilerbau Klassendiagramm.pdf delete mode 100644 Source/Compilerbau Klassendiagramm.pdf diff --git a/Compilerbau Klassendiagramm.pdf b/Compilerbau Klassendiagramm.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e25a808a8bf62fd33f328220198645f9e9d06f4b GIT binary patch literal 90245 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 uT`;Bi4KX literal 0 HcmV?d00001 diff --git a/Source/Compilerbau Klassendiagramm.pdf b/Source/Compilerbau Klassendiagramm.pdf deleted file mode 100644 index 6784010a7ca6a33f2751781fb2f75e9793876613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58892 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 R*gSk3>|EIN^beGz{yzic)R+JO