]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/types/ast/TApplyAst.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / types / ast / 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 }