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 class Program extends Node {
|
||||||
|
|
||||||
public FunctionDefinition[] funcs;
|
public FunctionDefinition[] funcs;
|
||||||
|
public StructDefinition[] structs;
|
||||||
public Expression expression;
|
public Expression expression;
|
||||||
|
|
||||||
public Program(FunctionDefinition[] funcs, Expression expression) {
|
public Program(FunctionDefinition[] funcs, StructDefinition[] structs, Expression expression) {
|
||||||
this.funcs = funcs;
|
this.funcs = funcs;
|
||||||
|
this.structs = structs;
|
||||||
this.expression = expression;
|
this.expression = expression;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,4 +19,4 @@ public class Program extends Node {
|
|||||||
public <R> R welcome(Visitor<R> v) {
|
public <R> R welcome(Visitor<R> v) {
|
||||||
return v.visit(this);
|
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