]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/Constants.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / codegen / utils / Constants.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/Constants.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/Constants.java
new file mode 100644 (file)
index 0000000..96298c6
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.scl.compiler.internal.codegen.utils;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import org.cojen.classfile.TypeDesc;
+import org.simantics.scl.runtime.tuple.Tuple0;
+
+public class Constants {
+    
+    // Parameters
+    public static final int MAX_FUNCTION_PARAMETER_COUNT = 8;
+    public static final int MAX_TUPLE_LENGTH = 32;
+    public static final int MAX_LIST_LITERAL_LENGTH = 32;
+    
+    public static final String ROOT_PACKAGE = "org/simantics/scl/runtime";
+    public static final String FUNCTION_PACKAGE = ROOT_PACKAGE + "/function";
+    public static final String TUPLE_PACKAGE = ROOT_PACKAGE + "/tuple";
+
+    // Constants
+    public static final TypeDesc LIST = TypeDesc.forClass(List.class);
+    public static final TypeDesc COLLECTION = TypeDesc.forClass(Collection.class);
+    public static final TypeDesc OBJECT_ARRAY = TypeDesc.forClass(Object[].class);
+    public static final TypeDesc CLASS = TypeDesc.forClass(Class.class);
+    
+    public static final TypeDesc FUNCTION = TypeDesc.forClass(FUNCTION_PACKAGE + ".Function");
+    public static final TypeDesc[] FUNCTION_IMPL = new TypeDesc[MAX_FUNCTION_PARAMETER_COUNT+1];
+    public static final TypeDesc FUNCTION_N_IMPL;
+    public static final TypeDesc[][] OBJECTS = 
+            new TypeDesc[MAX_FUNCTION_PARAMETER_COUNT+1][];
+    
+    public static final String MathBuiltinFunctions_class = 
+            ROOT_PACKAGE + ".MathBuiltinFunctions";
+    public static final TypeDesc[] EMPTY_TYPEDESC_ARRAY = new TypeDesc[0];
+    
+    public static final TypeDesc TUPLE0 = TypeDesc.forClass(Tuple0.class);
+    public static final TypeDesc[] TUPLE = new TypeDesc[MAX_TUPLE_LENGTH+1];
+    
+    static {
+        for(int count=0;count<=MAX_FUNCTION_PARAMETER_COUNT;++count) {
+            OBJECTS[count] = new TypeDesc[count];
+            Arrays.fill(OBJECTS[count], TypeDesc.OBJECT);
+        }
+        for(int i=1;i<=MAX_FUNCTION_PARAMETER_COUNT;++i) {
+            FUNCTION_IMPL[i] = TypeDesc.forClass(FUNCTION_PACKAGE + "/FunctionImpl" + i);
+        }
+        FUNCTION_N_IMPL = TypeDesc.forClass(FUNCTION_PACKAGE + ".FunctionImplN");
+        TUPLE[0] = TypeDesc.VOID;
+        for(int i=2;i<=MAX_TUPLE_LENGTH;++i) 
+            TUPLE[i] = TypeDesc.forClass(TUPLE_PACKAGE + ".Tuple" + i);
+    }
+    
+}