]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/parser/generator/compression/ErrorTable.java
Moved SCL parser generator to platform repository.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / parser / generator / compression / ErrorTable.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/parser/generator/compression/ErrorTable.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/parser/generator/compression/ErrorTable.java
new file mode 100644 (file)
index 0000000..cd129bc
--- /dev/null
@@ -0,0 +1,18 @@
+package org.simantics.scl.compiler.parser.generator.compression;
+
+import org.simantics.scl.compiler.parser.generator.table.ParseTableBuilder;
+
+public class ErrorTable {
+    public static int[] createErrorTable(int[][] table) {
+        int columns = table[0].length;
+        int[] result = new int[(table.length*columns+31)/32];
+        int p=0;
+        for(int[] row : table)
+            for(int v : row) {
+                if(v == ParseTableBuilder.ERROR_ACTION)
+                    result[p/32] |= 1 << (p%32); 
+                ++p;
+            }
+        return result;
+    }
+}