package yuku.alkitabconverter;
import yuku.bintex.BintexWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Scanner;
public class KonvertIsi {
public static void main(String[] args) throws Exception {
String input_index = args[0]; // contoh: "bahan/en-kjv-thml/kjv_index.txt"
String output_index = args[1]; // contoh: "bahan/en-kjv-thml/kjv_raw/kjv_index_bt.bt"
new KonvertIsi().convert(input_index, output_index);
}
private void convert(String nfi, String nfo) throws Exception {
Scanner sc = new Scanner(new File(nfi), "utf-8");
FileOutputStream os = new FileOutputStream(nfo);
BintexWriter writer = new BintexWriter(os);
while (sc.hasNext()) {
String kitab = sc.next();
writer.writeShortString(kitab);
int npasal = 0;
label:
while (true) {
String key = sc.next();
writer.writeShortString(key);
switch (key) {
case "npasal": // value: int
npasal = sc.nextInt();
writer.writeInt(npasal);
break;
case "nayat": // value: uint8[]
for (int i = 0; i < npasal; i++) {
writer.writeUint8(sc.nextInt());
}
break;
case "pasal_offset": // value: int[]
for (int i = 0; i < npasal; i++) {
writer.writeInt(sc.nextInt());
}
break;
case "uda": // value: ga ada
break label;
default: // value: String
String value = sc.next();
if (key.equals("judul") || key.equals("nama")) {
value = value.replace('_', ' ');
}
writer.writeShortString(value);
break;
}
}
}
writer.close();
}
}