create DAST nodes for structDefinition and structField

This commit is contained in:
2020-02-04 19:14:40 +01:00
parent 3e8e30e0da
commit 6f8c995f19
3 changed files with 40 additions and 2 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}

View 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);
}
}