create DAST nodes for structDefinition and structField
This commit is contained in:
@@ -6,10 +6,12 @@ import de.hsrm.compiler.Klang.visitors.Visitor;
|
||||
public class Program extends Node {
|
||||
|
||||
public FunctionDefinition[] funcs;
|
||||
public StructDefinition[] structs;
|
||||
public Expression expression;
|
||||
|
||||
public Program(FunctionDefinition[] funcs, Expression expression) {
|
||||
public Program(FunctionDefinition[] funcs, StructDefinition[] structs, Expression expression) {
|
||||
this.funcs = funcs;
|
||||
this.structs = structs;
|
||||
this.expression = expression;
|
||||
}
|
||||
|
||||
@@ -17,4 +19,4 @@ public class Program extends Node {
|
||||
public <R> R welcome(Visitor<R> v) {
|
||||
return v.visit(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package de.hsrm.compiler.Klang.nodes;
|
||||
|
||||
import de.hsrm.compiler.Klang.visitors.Visitor;
|
||||
|
||||
public class StructDefinition extends Node {
|
||||
|
||||
public String name;
|
||||
public StructField[] fields;
|
||||
|
||||
public StructDefinition(String name, StructField[] fields) {
|
||||
this.name = name;
|
||||
this.fields = fields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R> R welcome(Visitor<R> v) {
|
||||
return v.visit(this);
|
||||
}
|
||||
}
|
||||
17
src/main/java/de/hsrm/compiler/Klang/nodes/StructField.java
Normal file
17
src/main/java/de/hsrm/compiler/Klang/nodes/StructField.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package de.hsrm.compiler.Klang.nodes;
|
||||
|
||||
import de.hsrm.compiler.Klang.visitors.Visitor;
|
||||
|
||||
public class StructField extends Node {
|
||||
|
||||
public String name;
|
||||
|
||||
public StructField(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R> R welcome(Visitor<R> v) {
|
||||
return v.visit(this);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user