]> gerrit.simantics Code Review - simantics/platform.git/blob - TApplyAst.java
25175550e84fbfa72bba0056def027eac2ba2478
[simantics/platform.git] / TApplyAst.java
1 package org.simantics.scl.compiler.internal.types.ast;
2
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;
6 import org.simantics.scl.compiler.types.exceptions.SCLTypeParseException;
7
8
9 public class TApplyAst extends TypeAst {
10     public final TypeAst function;
11     public final TypeAst parameter;
12     
13     public TApplyAst(TypeAst function, TypeAst parameter) {
14         this.function = function;
15         this.parameter = parameter;
16     }
17
18     @Override
19     public void toString(StringBuilder b) {
20         function.toString(b, 2);
21         b.append(' ');
22         parameter.toString(b, 1);
23     }
24
25     @Override
26     public Type toType(TypeElaborationContext context) throws SCLTypeParseException {
27         return Types.apply(function.toType(context), parameter.toType(context));
28     }
29
30     @Override
31     public int getPrecedence() {
32         return 1;
33     }
34 }