--- /dev/null
+package org.simantics.scl.compiler.parser.generator.compression;
+
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class CompressedParseTable {
+ public final CompressedTable actionTable;
+ public final int[] errorTable;
+ public final CompressedTable gotoTable;
+ public final int[] productionInfo;
+ public final int[] initialStates;
+ public final String[] stateDescriptions;
+
+ public CompressedParseTable(CompressedTable actionTable,
+ int[] errorTable,
+ CompressedTable gotoTable, int[] productionInfo,
+ int[] initialStates,
+ String[] stateDescriptions) {
+ this.actionTable = actionTable;
+ this.errorTable = errorTable;
+ this.gotoTable = gotoTable;
+ this.productionInfo = productionInfo;
+ this.initialStates = initialStates;
+ this.stateDescriptions = stateDescriptions;
+ }
+
+ public void writeTo(File file) throws IOException {
+ FileOutputStream stream = new FileOutputStream(file);
+ DataOutputStream output = new DataOutputStream(stream);
+ actionTable.writeTo(output);
+ for(int val : errorTable)
+ output.writeInt(val);
+ gotoTable.writeTo(output);
+ for(int val : productionInfo)
+ output.writeInt(val);
+ output.close();
+ }
+}