1 package org.simantics.scl.compiler.internal.types.ast;
3 import org.simantics.scl.compiler.internal.types.TypeElaborationContext;
4 import org.simantics.scl.compiler.types.Type;
5 import org.simantics.scl.compiler.types.Types;
7 public class TConAst extends TypeAst {
9 public final String name;
11 public TConAst(String name) {
16 public void toString(StringBuilder b) {
21 public Type toType(TypeElaborationContext context) {
22 char c = name.charAt(0);
24 for(int i=1;i<name.length()-1;++i)
25 if(name.charAt(i) != ',') {
26 return context.resolveTypeConstructor(name.substring(1, name.length()-1));
28 return Types.con(Types.BUILTIN, name);
31 int p = name.lastIndexOf('.');
33 return context.resolveTypeConstructor(name);
35 return context.resolveTypeConstructor(name.substring(0, p), name.substring(p+1));
40 public int getPrecedence() {