X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fparser%2Fgenerator%2Fcompression%2FErrorTable.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fparser%2Fgenerator%2Fcompression%2FErrorTable.java;h=cd129bc69221a94394aa21280ba7327a3622e869;hb=649890ad306df48440a97893d7d53fb8a6386a4e;hp=0000000000000000000000000000000000000000;hpb=655590362c7017aff657d1ff30e6c63f03b6dd75;p=simantics%2Fplatform.git 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 index 000000000..cd129bc69 --- /dev/null +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/parser/generator/compression/ErrorTable.java @@ -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; + } +}