public void writeToFile(String fileName) throws IOException {
   OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");
   writer.write(separators.length + "\n");
   for (int[] i : separators) {
     writer.write(i.length + "\n");
     for (int j : i) {
       writer.write(j + "\n");
     }
   }
   for (short i : rulesId) {
     writer.write(i + "\n");
   }
   writer.write(rules.length + "\n");
   for (Heuristic[] heuristics : rules) {
     writer.write(heuristics.length + "\n");
     for (Heuristic heuristic : heuristics) {
       writer.write(heuristic.toString() + "\n");
     }
   }
   writer.write(grammarInfo.length + "\n");
   for (String s : grammarInfo) {
     writer.write(s + "\n");
   }
   writer.close();
 }