]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / modules / TypeConstructor.java
index 016a0b780b158990e38eaf1618b5451495d320e3..9957ca8de5edd6b491a652bb3d27bb002162c0f1 100644 (file)
@@ -1,85 +1,85 @@
-package org.simantics.scl.compiler.elaboration.modules;\r
-\r
-import java.util.ArrayList;\r
-\r
-import org.cojen.classfile.TypeDesc;\r
-import org.simantics.scl.compiler.common.datatypes.Constructor;\r
-import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator;\r
-import org.simantics.scl.compiler.types.TCon;\r
-import org.simantics.scl.compiler.types.TVar;\r
-import org.simantics.scl.compiler.types.Type;\r
-import org.simantics.scl.compiler.types.Types;\r
-import org.simantics.scl.compiler.types.kinds.KArrow;\r
-import org.simantics.scl.compiler.types.kinds.Kind;\r
-import org.simantics.scl.compiler.types.kinds.Kinds;\r
-\r
-public abstract class TypeConstructor extends TypeDescriptor {\r
-    public Kind kind;\r
-    \r
-    public TVar[] parameters;\r
-    public Type type;\r
-    \r
-    public Constructor[] constructors = Constructor.EMPTY_ARRAY;\r
-    public String documentation;\r
-    \r
-    /**\r
-     * A data type is open if it can be constructed without\r
-     * constructors listed above.\r
-     */\r
-    public boolean isOpen = true;\r
-    \r
-    public TypeConstructor(Kind kind) {\r
-        super(null);\r
-        this.kind = kind;\r
-    }\r
-    \r
-    public TypeConstructor(TCon name, Kind kind) {\r
-        super(name);\r
-        this.kind = kind;\r
-        \r
-        ArrayList<TVar> vars = new ArrayList<TVar>(2);\r
-        for(Kind cur = kind; cur instanceof KArrow;) {\r
-            KArrow arrow = (KArrow)cur;\r
-            vars.add(Types.var(arrow.domain));\r
-            cur = arrow.range;\r
-        }\r
-        this.parameters = vars.toArray(new TVar[vars.size()]);\r
-        this.type = Types.apply(name, parameters);\r
-    }\r
-    \r
-    public TypeConstructor(TCon name, TVar ... parameters) {\r
-        super(name);\r
-        setType(name, parameters);\r
-        Kind kind = Kinds.STAR;\r
-        for(int i = parameters.length-1;i>=0;--i)\r
-            kind = Kinds.arrow(parameters[i].getKind(), kind);\r
-        this.kind = kind;\r
-    }\r
-    \r
-    public void setType(TCon name, TVar ... parameters) {\r
-        this.name = name;\r
-        this.parameters = parameters;\r
-        this.type = Types.apply(name, parameters);\r
-    }\r
-        \r
-    public void setConstructors(Constructor ... constructors) {\r
-        this.constructors = constructors;\r
-    }\r
-\r
-    public abstract TypeDesc construct(JavaTypeTranslator translator, Type[] parameters);\r
-\r
-    @Override\r
-    public void setDocumentation(String documentation) {\r
-        this.documentation = documentation;\r
-    }\r
-    \r
-    @Override\r
-    public Kind getKind() {\r
-        return kind;\r
-    }\r
-    \r
-    @Override\r
-    public String getDocumentation() {\r
-        return documentation;\r
-    }\r
-}\r
+package org.simantics.scl.compiler.elaboration.modules;
+
+import java.util.ArrayList;
+
+import org.cojen.classfile.TypeDesc;
+import org.simantics.scl.compiler.common.datatypes.Constructor;
+import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator;
+import org.simantics.scl.compiler.types.TCon;
+import org.simantics.scl.compiler.types.TVar;
+import org.simantics.scl.compiler.types.Type;
+import org.simantics.scl.compiler.types.Types;
+import org.simantics.scl.compiler.types.kinds.KArrow;
+import org.simantics.scl.compiler.types.kinds.Kind;
+import org.simantics.scl.compiler.types.kinds.Kinds;
+
+public abstract class TypeConstructor extends TypeDescriptor {
+    public Kind kind;
+    
+    public TVar[] parameters;
+    public Type type;
+    
+    public Constructor[] constructors = Constructor.EMPTY_ARRAY;
+    public String documentation;
+    
+    /**
+     * A data type is open if it can be constructed without
+     * constructors listed above.
+     */
+    public boolean isOpen = true;
+    
+    public TypeConstructor(Kind kind) {
+        super(null);
+        this.kind = kind;
+    }
+    
+    public TypeConstructor(TCon name, Kind kind) {
+        super(name);
+        this.kind = kind;
+        
+        ArrayList<TVar> vars = new ArrayList<TVar>(2);
+        for(Kind cur = kind; cur instanceof KArrow;) {
+            KArrow arrow = (KArrow)cur;
+            vars.add(Types.var(arrow.domain));
+            cur = arrow.range;
+        }
+        this.parameters = vars.toArray(new TVar[vars.size()]);
+        this.type = Types.apply(name, parameters);
+    }
+    
+    public TypeConstructor(TCon name, TVar ... parameters) {
+        super(name);
+        setType(name, parameters);
+        Kind kind = Kinds.STAR;
+        for(int i = parameters.length-1;i>=0;--i)
+            kind = Kinds.arrow(parameters[i].getKind(), kind);
+        this.kind = kind;
+    }
+    
+    public void setType(TCon name, TVar ... parameters) {
+        this.name = name;
+        this.parameters = parameters;
+        this.type = Types.apply(name, parameters);
+    }
+        
+    public void setConstructors(Constructor ... constructors) {
+        this.constructors = constructors;
+    }
+
+    public abstract TypeDesc construct(JavaTypeTranslator translator, Type[] parameters);
+
+    @Override
+    public void setDocumentation(String documentation) {
+        this.documentation = documentation;
+    }
+    
+    @Override
+    public Kind getKind() {
+        return kind;
+    }
+    
+    @Override
+    public String getDocumentation() {
+        return documentation;
+    }
+}