]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/parser/generator/compression/CompressedParseTable.java
Moved SCL parser generator to platform repository.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / parser / generator / compression / CompressedParseTable.java
1 package org.simantics.scl.compiler.parser.generator.compression;
2
3 import java.io.DataOutputStream;
4 import java.io.File;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7
8 public class CompressedParseTable {
9     public final CompressedTable actionTable;
10     public final int[] errorTable;
11     public final CompressedTable gotoTable;
12     public final int[] productionInfo;
13     public final int[] initialStates;
14     public final String[] stateDescriptions;
15     
16     public CompressedParseTable(CompressedTable actionTable,
17             int[] errorTable,
18             CompressedTable gotoTable, int[] productionInfo,
19             int[] initialStates,
20             String[] stateDescriptions) {
21         this.actionTable = actionTable;
22         this.errorTable = errorTable;
23         this.gotoTable = gotoTable;
24         this.productionInfo = productionInfo;
25         this.initialStates = initialStates;
26         this.stateDescriptions = stateDescriptions;
27     }
28     
29     public void writeTo(File file) throws IOException {
30         FileOutputStream stream = new FileOutputStream(file);
31         DataOutputStream output = new DataOutputStream(stream);
32         actionTable.writeTo(output);
33         for(int val : errorTable)
34             output.writeInt(val);
35         gotoTable.writeTo(output);
36         for(int val : productionInfo)
37             output.writeInt(val);
38         output.close();
39     }
40 }