]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/Constants.java
(refs #7250) Merging master, minor CHR bugfixes
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / codegen / utils / Constants.java
1 package org.simantics.scl.compiler.internal.codegen.utils;
2
3 import java.util.Arrays;
4 import java.util.Collection;
5 import java.util.List;
6
7 import org.cojen.classfile.TypeDesc;
8 import org.simantics.scl.runtime.tuple.Tuple0;
9
10 public class Constants {
11     
12     // Parameters
13     public static final int MAX_FUNCTION_PARAMETER_COUNT = 8;
14     public static final int MAX_TUPLE_LENGTH = 32;
15     public static final int MAX_LIST_LITERAL_LENGTH = 32;
16     
17     public static final String ROOT_PACKAGE = "org/simantics/scl/runtime";
18     public static final String FUNCTION_PACKAGE = ROOT_PACKAGE + "/function";
19     public static final String TUPLE_PACKAGE = ROOT_PACKAGE + "/tuple";
20
21     // Constants
22     public static final TypeDesc LIST = TypeDesc.forClass(List.class);
23     public static final TypeDesc COLLECTION = TypeDesc.forClass(Collection.class);
24     public static final TypeDesc OBJECT_ARRAY = TypeDesc.forClass(Object[].class);
25     public static final TypeDesc CLASS = TypeDesc.forClass(Class.class);
26     
27     public static final TypeDesc FUNCTION = TypeDesc.forClass(FUNCTION_PACKAGE + ".Function");
28     public static final TypeDesc[] FUNCTION_IMPL = new TypeDesc[MAX_FUNCTION_PARAMETER_COUNT+1];
29     public static final TypeDesc FUNCTION_N_IMPL;
30     public static final TypeDesc[][] OBJECTS = 
31             new TypeDesc[MAX_FUNCTION_PARAMETER_COUNT+1][];
32     
33     public static final String MathBuiltinFunctions_class = 
34             ROOT_PACKAGE + ".MathBuiltinFunctions";
35     public static final TypeDesc[] EMPTY_TYPEDESC_ARRAY = new TypeDesc[0];
36     
37     public static final TypeDesc TUPLE0 = TypeDesc.forClass(Tuple0.class);
38     public static final TypeDesc[] TUPLE = new TypeDesc[MAX_TUPLE_LENGTH+1];
39     
40     static {
41         for(int count=0;count<=MAX_FUNCTION_PARAMETER_COUNT;++count) {
42             OBJECTS[count] = new TypeDesc[count];
43             Arrays.fill(OBJECTS[count], TypeDesc.OBJECT);
44         }
45         for(int i=1;i<=MAX_FUNCTION_PARAMETER_COUNT;++i) {
46             FUNCTION_IMPL[i] = TypeDesc.forClass(FUNCTION_PACKAGE + "/FunctionImpl" + i);
47         }
48         FUNCTION_N_IMPL = TypeDesc.forClass(FUNCTION_PACKAGE + ".FunctionImplN");
49         TUPLE[0] = TypeDesc.VOID;
50         for(int i=2;i<=MAX_TUPLE_LENGTH;++i) 
51             TUPLE[i] = TypeDesc.forClass(TUPLE_PACKAGE + ".Tuple" + i);
52     }
53     
54 }