1 package org.simantics.scl.compiler.internal.codegen.utils;
3 import java.util.Arrays;
4 import java.util.Collection;
7 import org.cojen.classfile.TypeDesc;
8 import org.simantics.scl.runtime.tuple.Tuple0;
10 public class Constants {
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;
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";
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);
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][];
33 public static final String MathBuiltinFunctions_class =
34 ROOT_PACKAGE + ".MathBuiltinFunctions";
35 public static final TypeDesc[] EMPTY_TYPEDESC_ARRAY = new TypeDesc[0];
37 public static final TypeDesc TUPLE0 = TypeDesc.forClass(Tuple0.class);
38 public static final TypeDesc[] TUPLE = new TypeDesc[MAX_TUPLE_LENGTH+1];
41 for(int count=0;count<=MAX_FUNCTION_PARAMETER_COUNT;++count) {
42 OBJECTS[count] = new TypeDesc[count];
43 Arrays.fill(OBJECTS[count], TypeDesc.OBJECT);
45 for(int i=1;i<=MAX_FUNCTION_PARAMETER_COUNT;++i) {
46 FUNCTION_IMPL[i] = TypeDesc.forClass(FUNCTION_PACKAGE + "/FunctionImpl" + i);
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);