1 package org.simantics.scl.compiler.internal.parsing.declarations;
\r
3 import java.util.Collections;
\r
4 import java.util.List;
\r
6 import org.simantics.scl.compiler.internal.codegen.types.StandardTypeConstructor;
\r
7 import org.simantics.scl.compiler.types.kinds.Kind;
\r
11 public class DDataAst extends DeclarationAst {
\r
12 public final String name;
\r
13 public final String[] parameters;
\r
14 public final ConstructorAst[] constructors;
\r
15 public final String[] deriving;
\r
17 private List<DAnnotationAst> annotations = Collections.emptyList();
\r
20 public Kind[] parameterKinds;
\r
21 //public String javaName;
\r
22 public StandardTypeConstructor typeConstructor;
\r
24 public DDataAst(String name, String[] parameters, ConstructorAst[] constructors, String[] deriving) {
\r
26 this.parameters = parameters;
\r
27 this.constructors = constructors == null ? ConstructorAst.EMPTY_ARRAY : constructors;
\r
28 this.deriving = deriving;
\r
31 public void setAnnotations(List<DAnnotationAst> annotations) {
\r
32 this.annotations = annotations;
\r
35 public List<DAnnotationAst> getAnnotations() {
\r
40 public void toString(int indentation, StringBuilder b) {
\r
41 for(int i=0;i<indentation;++i) b.append(" ");
\r
44 for(String parameter : parameters) {
\r
46 b.append(parameter);
\r
48 if(constructors.length > 0) {
\r
50 for(int i=0;i<constructors.length;++i) {
\r
53 constructors[i].toString(b);
\r