mirror of
https://github.com/JonathanFleischmann/CompilerULTIMATE.git
synced 2024-12-27 08:38:03 +00:00
fixed imports on records, added Enums and Interfaces
This commit is contained in:
parent
55a15e8bda
commit
5bd8c12568
@ -1,7 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record Assignment(Location loc, Expression value) implements Statement {
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
import de.dhbw.horb.ast.Operator;
|
||||
|
||||
public record Binary(Expression left, Operator op, Expression right) implements Expression{
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record Break() implements Statement {
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record Continue() implements Statement {
|
||||
}
|
6
src/main/java/de/maishai/ast/Expression.java
Normal file
6
src/main/java/de/maishai/ast/Expression.java
Normal file
@ -0,0 +1,6 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
|
||||
|
||||
public interface Expression extends Node {
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Node;
|
||||
import de.dhbw.horb.ast.Type;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record Function(Type type, String name, List<Variable> params, Block block) implements Node {
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record IfElse(Expression cond, Block ifBlock, Block elseBlock) implements Statement {
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
|
||||
public record Location(String name) implements Expression {
|
||||
}
|
4
src/main/java/de/maishai/ast/Node.java
Normal file
4
src/main/java/de/maishai/ast/Node.java
Normal file
@ -0,0 +1,4 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
public interface Node {
|
||||
}
|
7
src/main/java/de/maishai/ast/Operator.java
Normal file
7
src/main/java/de/maishai/ast/Operator.java
Normal file
@ -0,0 +1,7 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
public enum Operator {
|
||||
ADD,
|
||||
SUB,
|
||||
MUL
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Node;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record Program(List<Variable> variables, List<Function> methods) implements Node {
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record Return(Expression ret) implements Statement {
|
||||
}
|
8
src/main/java/de/maishai/ast/ReturnType.java
Normal file
8
src/main/java/de/maishai/ast/ReturnType.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
public enum ReturnType {
|
||||
INT,
|
||||
BOOL,
|
||||
CHAR,
|
||||
VOID
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record ReturnVoid() implements Statement {
|
||||
}
|
3
src/main/java/de/maishai/ast/Statement.java
Normal file
3
src/main/java/de/maishai/ast/Statement.java
Normal file
@ -0,0 +1,3 @@
|
||||
package de.maishai.ast;
|
||||
public interface Statement extends Node {
|
||||
}
|
7
src/main/java/de/maishai/ast/Type.java
Normal file
7
src/main/java/de/maishai/ast/Type.java
Normal file
@ -0,0 +1,7 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
public enum Type {
|
||||
INT,
|
||||
BOOL,
|
||||
CHAR
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Node;
|
||||
import de.dhbw.horb.ast.Type;
|
||||
|
||||
public record Variable(String name, Type type) implements Node {
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record VoidFunctionCall(FunctionCall expr) implements Statement {
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package de.maishai.ast;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
public record While(Expression cond, Block block) implements Statement {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/Assignment.java
Normal file
8
src/main/java/de/maishai/ast/records/Assignment.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
public record Assignment(Id loc, Expression value) implements Statement {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/Binary.java
Normal file
8
src/main/java/de/maishai/ast/records/Binary.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
import de.maishai.ast.Operator;
|
||||
|
||||
public record Binary(Expression left, Operator op, Expression right) implements Expression {
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
package de.maishai.ast;
|
||||
package de.maishai.ast.records;
|
||||
|
||||
import de.dhbw.horb.ast.Node;
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
|
||||
import de.maishai.ast.Node;
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package de.maishai.ast;
|
||||
package de.maishai.ast.records;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
|
||||
public record BoolConstant(Boolean value) implements Expression {
|
||||
}
|
7
src/main/java/de/maishai/ast/records/Break.java
Normal file
7
src/main/java/de/maishai/ast/records/Break.java
Normal file
@ -0,0 +1,7 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
public record Break() implements Statement {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/Class.java
Normal file
8
src/main/java/de/maishai/ast/records/Class.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
import de.maishai.ast.Node;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record Class(Id id ,List<Variable> variables, List<Method> methods) implements Node {
|
||||
}
|
7
src/main/java/de/maishai/ast/records/Continue.java
Normal file
7
src/main/java/de/maishai/ast/records/Continue.java
Normal file
@ -0,0 +1,7 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
public record Continue() implements Statement {
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
package de.maishai.ast;
|
||||
package de.maishai.ast.records;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
import de.dhbw.horb.ast.Statement;
|
||||
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
import java.util.List;
|
||||
|
7
src/main/java/de/maishai/ast/records/Id.java
Normal file
7
src/main/java/de/maishai/ast/records/Id.java
Normal file
@ -0,0 +1,7 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
|
||||
public record Id(String name) implements Expression {
|
||||
}
|
6
src/main/java/de/maishai/ast/records/IfElse.java
Normal file
6
src/main/java/de/maishai/ast/records/IfElse.java
Normal file
@ -0,0 +1,6 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
import de.maishai.ast.Statement;
|
||||
public record IfElse(Expression cond, Block ifBlock, Block elseBlock) implements Statement {
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package de.maishai.ast;
|
||||
package de.maishai.ast.records;
|
||||
|
||||
import de.dhbw.horb.ast.Expression;
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
|
||||
public record IntConstant(Integer value) implements Expression {
|
||||
}
|
11
src/main/java/de/maishai/ast/records/Method.java
Normal file
11
src/main/java/de/maishai/ast/records/Method.java
Normal file
@ -0,0 +1,11 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
|
||||
import de.maishai.ast.Node;
|
||||
import de.maishai.ast.ReturnType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record Method(ReturnType type, Id id, List<Parameter> params, Block block) implements Node {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/Parameter.java
Normal file
8
src/main/java/de/maishai/ast/records/Parameter.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Node;
|
||||
import de.maishai.ast.Type;
|
||||
|
||||
public record Parameter(String name, Type type) implements Node {
|
||||
}
|
9
src/main/java/de/maishai/ast/records/Program.java
Normal file
9
src/main/java/de/maishai/ast/records/Program.java
Normal file
@ -0,0 +1,9 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Node;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record Program(List<Class> variables, List<Method> methods) implements Node {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/Return.java
Normal file
8
src/main/java/de/maishai/ast/records/Return.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
public record Return(Expression ret) implements Statement {
|
||||
}
|
7
src/main/java/de/maishai/ast/records/ReturnVoid.java
Normal file
7
src/main/java/de/maishai/ast/records/ReturnVoid.java
Normal file
@ -0,0 +1,7 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
public record ReturnVoid() implements Statement {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/Variable.java
Normal file
8
src/main/java/de/maishai/ast/records/Variable.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Node;
|
||||
import de.maishai.ast.Type;
|
||||
|
||||
public record Variable(String name, Type type) implements Node {
|
||||
}
|
8
src/main/java/de/maishai/ast/records/While.java
Normal file
8
src/main/java/de/maishai/ast/records/While.java
Normal file
@ -0,0 +1,8 @@
|
||||
package de.maishai.ast.records;
|
||||
|
||||
|
||||
import de.maishai.ast.Expression;
|
||||
import de.maishai.ast.Statement;
|
||||
|
||||
public record While(Expression cond, Block block) implements Statement {
|
||||
}
|
Loading…
Reference in New Issue
Block a user