From 2c572efdb3600c53c5988fd83a96741808296821 Mon Sep 17 00:00:00 2001 From: Andy Heninger Date: Fri, 15 Apr 2016 22:50:43 +0000 Subject: [PATCH] ICU-12436 Remove obsolete copy of Thai dictionary and dictionary tools from ICU4J X-SVN-Rev: 38619 --- .gitattributes | 1 - .../core/src/com/ibm/icu/dev/data/thai6.ucs | Bin 363306 -> 0 bytes .../dev/tool/rbbi/BuildDictionaryFile.java | 880 ------------------ .../src/com/ibm/icu/dev/tool/rbbi/readme.html | 65 -- 4 files changed, 946 deletions(-) delete mode 100644 icu4j/main/tests/core/src/com/ibm/icu/dev/data/thai6.ucs delete mode 100644 icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/BuildDictionaryFile.java delete mode 100644 icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/readme.html diff --git a/.gitattributes b/.gitattributes index 7c8f1eee7f3..a0be8f64afc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -145,7 +145,6 @@ icu4j/main/shared/data/icudata.jar -text icu4j/main/shared/data/icutzdata.jar -text icu4j/main/shared/data/testdata.jar -text icu4j/main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict -text -icu4j/main/tests/core/src/com/ibm/icu/dev/data/thai6.ucs -text icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat -text icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.TimeZoneAdapter.dat -text icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat -text diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/data/thai6.ucs b/icu4j/main/tests/core/src/com/ibm/icu/dev/data/thai6.ucs deleted file mode 100644 index a3d02826a755af2dabe47c232112eb06414a9c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363306 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 z 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 Tl*cl+XCIX0%;NquGWGulxqO6C diff --git a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/BuildDictionaryFile.java b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/BuildDictionaryFile.java deleted file mode 100644 index 8c722a79b7b..00000000000 --- a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/BuildDictionaryFile.java +++ /dev/null @@ -1,880 +0,0 @@ -/* - ******************************************************************************* - * Copyright (C) 1996-2009, International Business Machines Corporation and * - * others. All Rights Reserved. * - ******************************************************************************* - */ -package com.ibm.icu.dev.tool.rbbi; - -import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; -import java.util.Vector; - -import com.ibm.icu.text.UnicodeSet; -import com.ibm.icu.util.CompactByteArray; - -public class BuildDictionaryFile { - public static void main(String args[]) - throws FileNotFoundException, UnsupportedEncodingException, IOException { - String filename = args[0]; - String encoding = ""; - String outputFile = ""; - String listingFile = ""; - - if (args.length >= 2) - encoding = args[1]; - - if(args.length >= 3) - outputFile = args[2]; - - if (args.length >= 4) - listingFile = args[3]; - - BuildDictionaryFile dictionary = new BuildDictionaryFile(); - dictionary.build(filename, encoding); - - DataOutputStream out = null; - if (outputFile.length() != 0) { - out = new DataOutputStream(new FileOutputStream(outputFile)); - dictionary.writeDictionaryFile(out); - } - - PrintWriter listing = null; - if (listingFile.length() != 0) { - listing = new PrintWriter(new OutputStreamWriter(new FileOutputStream(listingFile), "UnicodeLittle")); - dictionary.printWordList("", 0, listing); - listing.close(); - } - } - - public BuildDictionaryFile() { - } - - public void build(String filename, String encoding) - throws FileNotFoundException, UnsupportedEncodingException, IOException { - FileInputStream file = new FileInputStream(filename); - InputStreamReader in; - if (encoding.length() == 0) - in = new InputStreamReader(file); - else - in = new InputStreamReader(file, encoding); - - buildColumnMap(in); - - file = new FileInputStream(filename); - if (encoding.length() == 0) - in = new InputStreamReader(file); - else - in = new InputStreamReader(file, encoding); - - buildStateTable(in); -//printTable(); - } - - public void buildColumnMap(InputStreamReader in) throws IOException { -System.out.println("Building column map..."); - UnicodeSet charsInFile = new UnicodeSet(); - int c = in.read(); -int totalChars = 0; - while (c >= 0) { -++totalChars; if (totalChars > 0 && totalChars % 5000 == 0) System.out.println("Read " + totalChars + " characters..."); - if (c > ' ') - charsInFile.add((char)c); - c = in.read(); - } -// Test.debugPrintln(charsInFile.toString()); - - StringBuffer tempReverseMap = new StringBuffer(); - tempReverseMap.append(' '); - - columnMap = new CompactByteArray(); - int n = charsInFile.getRangeCount(); - byte p = 1; - for (int i=0; i= 0) { - charsInWord++; - short column = columnMap.elementAt((char)c); - - row = (int[])(tempTable.elementAt(state)); - if (column != 0) { - if (row[column] == 0) { - row[column] = tempTable.size(); - ++row[numCols]; - state = (tempTable.size()); - tempTable.addElement(new int[numCols + 1]); - } - else - state = row[column]; - } - else if (state != 0) { - if (row[0] != -1) { - row[0] = -1; - ++row[numCols]; - uniqueWords++; - totalUniqueWordChars += charsInWord; - } - totalWords++; -if (totalWords % 5000 == 0) System.out.println("Read " + totalWords + " words, " + tempTable.size() + " rows..."); - charsInWord = 0; - state = 0; - } - c = in.read(); - } - if (state != 0) { - row = (int[])(tempTable.elementAt(state)); - if (row[0] != -1) { - row[0] = -1; - uniqueWords++; - totalUniqueWordChars += charsInWord; - } - totalWords++; - } - - compress(tempTable); - - table = new short[numCols * tempTable.size()]; - for (int i = 0; i < tempTable.size(); i++) { - row = (int[])tempTable.elementAt(i); - for (int j = 0; j < numCols; j++) - table[i * numCols + j] = (short)row[j]; - } - } - - private void compress(Vector tempTable) { -System.out.println("Before compression:"); -System.out.println(" Number of rows = " + tempTable.size()); -System.out.println(" Number of columns = " + numCols); -System.out.println(" Number of cells = " + tempTable.size() * numCols); - deleteDuplicateRows(tempTable); -System.out.println("After removing duplicate rows:"); -System.out.println(" Number of rows = " + tempTable.size()); -System.out.println(" Number of columns = " + numCols); -System.out.println(" Number of cells = " + tempTable.size() * numCols); - stackRows(tempTable); -if (tempTable.size() > 32767) throw new IllegalArgumentException("Too many rows in table!"); -System.out.println("After doubling up on rows:"); -System.out.println(" Number of rows = " + tempTable.size()); -System.out.println(" Number of columns = " + numCols); -System.out.println(" Number of cells = " + tempTable.size() * numCols); - } - -/* -experimental... - private void deleteDuplicateRows(Vector tempTable) { - int[] rowNumMap = new int[tempTable.size()]; - for (int i = 0; i < rowNumMap.length; i++) - rowNumMap[i] = i; - - int nextClass = numCols; - int currentClass; - int lastClass; - boolean split; - int[] row1, row2, tempRow; - int tempCat; - - do { -System.out.println("Making a pass (" + nextClass + " classes)..."); - currentClass = 0; - lastClass = nextClass; - while (currentClass < nextClass) { -System.out.println(" currentClass = " + currentClass); - split = false; - row1 = row2 = null; - for (int i = 0; i < tempTable.size(); i++) { - tempRow = (int[])tempTable.elementAt(i); - if (tempRow[numCols] == currentClass) { - if (row1 == null) { - row1 = (int[])tempTable.elementAt(i); - } - else { - row2 = (int[])tempTable.elementAt(i); - for (int j = 0; j < numCols; j++) { - if ((row1[j] == 0) != (row2[j] == 0) || - (row1[j] == -1) != (row2[j] == -1)) { - row2[numCols] = nextClass; - split = true; - break; - } - else if (row1[j] != 0 && row2[j] != 0 && row1[j] != -1 - && row2[j] != -1) { - tempRow = (int[])tempTable.elementAt(row1[j]); - tempCat = tempRow[numCols]; - tempRow = (int[])tempTable.elementAt(row2[j]); - if (tempCat != tempRow[numCols]) { - row2[numCols] = nextClass; - split = true; - break; - } - } - } - } - } - } - if (split) - ++nextClass; - ++currentClass; -//System.out.println(); - } - } while (lastClass != nextClass); - - int[] representatives = new int[nextClass]; - for (int i = 1; i < tempTable.size(); i++) { - tempRow = (int[])tempTable.elementAt(i); - if (representatives[tempRow[numCols]] == 0) - representatives[tempRow[numCols]] = i; - else - rowNumMap[i] = representatives[tempRow[numCols]]; - } -System.out.println("Renumbering..."); - - // renumber all remaining rows - for (int i = 0; i < rowNumMap.length; i++) - if (rowNumMap[i] != i) - tempTable.setElementAt(null, i); - int newRowNum = 0; - for (int i = 0; i < rowNumMap.length; i++) - if (tempTable.elementAt(i) != null) - rowNumMap[i] = newRowNum++; - for (int i = 0; i < rowNumMap.length; i++) - if (tempTable.elementAt(i) == null) - rowNumMap[i] = rowNumMap[rowNumMap[i]]; - - for (int i = tempTable.size() - 1; i >= 0; i--) { - tempRow = (int[])tempTable.elementAt(i); - if (tempRow == null) - tempTable.removeElementAt(i); - else { - for (int j = 0; j < numCols; j++) - if (tempRow[j] != -1) - tempRow[j] = rowNumMap[j]; - } - } -//for (int i = 1; i < rowNumMap.length; i++) rowNumMap[i] = i; int newRowNum = rowNumMap.length; - } -*/ - - private void deleteDuplicateRows(Vector tempTable) { - Vector work = (Vector)(tempTable.clone()); - boolean didDeleteRow = true; - - Vector tempMapping = new Vector(work.size()); - int[] mapping = new int[work.size()]; - for (int i = 0; i < mapping.length; i++) { - mapping[i] = i; - tempMapping.addElement(new Integer(i)); - } - boolean[] tbd = new boolean[work.size()]; - - while (didDeleteRow) { -System.out.println(" " + work.size() + " rows..."); -int deletedRows = 0; - didDeleteRow = false; - - sortTable(work, tempMapping, mapping, 1, work.size()); - for (int i = 0; i < work.size() - 1; ) { -System.out.print("Deleting, inspecting row " + i + ", deleted " + deletedRows + " rows...\r"); - int rowToDelete = ((Integer)(tempMapping.elementAt(i + 1))).intValue(); - int rowToMapTo = ((Integer)(tempMapping.elementAt(i))).intValue(); - if (compareRows((int[])work.elementAt(i), (int[])work.elementAt(i + 1), - mapping) == 0) { - tbd[rowToDelete] = true; - tempTable.setElementAt(null, rowToDelete); - while (tbd[mapping[rowToMapTo]]) - mapping[rowToMapTo] = mapping[mapping[rowToMapTo]]; - mapping[rowToDelete] = mapping[rowToMapTo]; - didDeleteRow = true; -deletedRows++; - work.removeElementAt(i + 1); - tempMapping.removeElementAt(i + 1); - } - else - i++; - } - for (int i = 0; i < mapping.length; i++) { - if (tbd[i] && tbd[mapping[i]]) - mapping[i] = mapping[mapping[i]]; - } - } - - int decrementBy = 0; - for (int i = 0; i < mapping.length; i++) { - if (tbd[i]) - decrementBy++; - else - mapping[i] -= decrementBy; - } - for (int i = 0; i < mapping.length; i++) { - if (tbd[i]) - mapping[i] = mapping[mapping[i]]; - } - for (int i = tempTable.size() - 1; i >= 0; i--) { - if (tbd[i]) - tempTable.removeElementAt(i); - else { - int[] row = (int[])tempTable.elementAt(i); - for (int j = 0; j < numCols; j++) - row[j] = (row[j] == -1) ? -1 : mapping[row[j]]; - } - } - } - - private void sortTable(Vector tbl, Vector tempMapping, int[] mapping, int start, int end) { -System.out.print("Sorting (" + start + ", " + end + ")...\r"); - if (start + 1 >= end) - return; - else if (start + 10 >= end) { - for (int i = start + 1; i < end; i++) { - int[] row = (int[])tbl.elementAt(i); - Integer tempMap = (Integer)tempMapping.elementAt(i); - int j; - for (j = i - 1; j >= start; j--) { - if (compareRows((int[])tbl.elementAt(j), row, mapping) > 0) { - tbl.setElementAt((int[])tbl.elementAt(j), j + 1); - tempMapping.setElementAt((Integer)tempMapping.elementAt(j), j + 1); - } - else { - tbl.setElementAt(row, j + 1); - tempMapping.setElementAt(tempMap, j + 1); - break; - } - } - if (j < start) { - tbl.setElementAt(row, start); - tempMapping.setElementAt(tempMap, start); - } - } - } - else { - int boundaryPos = (start + end) / 2; - int i; - boolean allTheSame = true; - int firstDifferent = 0; - - do { - int[] boundary = (int[])tbl.elementAt(boundaryPos); - i = start; - int j = end - 1; - int[] row = null; - byte compResult; - while (i < j) { - row = (int[])tbl.elementAt(i); - while (i <= j && compareRows(row, boundary, mapping) < 0) { - i++; - row = (int[])tbl.elementAt(i); - } - - row = (int[])tbl.elementAt(j); - compResult = compareRows(row, boundary, mapping); - while (i <= j && (compResult >= 0)) { - if (compResult != 0) { - allTheSame = false; - firstDifferent = j; - } - j--; - row = (int[])tbl.elementAt(j); - compResult = compareRows(row, boundary, mapping); - } - if (i <= j) { - row = (int[])tbl.elementAt(j); - tbl.setElementAt(tbl.elementAt(i), j); - tbl.setElementAt(row, i); - Object temp = tempMapping.elementAt(j); - tempMapping.setElementAt(tempMapping.elementAt(i), j); - tempMapping.setElementAt(temp, i); - } - } - if (i <= start) { - if (allTheSame) - return; - else - boundaryPos = firstDifferent; - } - } while (i <= start); - sortTable(tbl, tempMapping, mapping, start, i); - sortTable(tbl, tempMapping, mapping, i, end); - } - } - - private byte compareRows(int[] row1, int[] row2, int[] mapping) { - for (int i = 0; i < numCols; i++) { - int c1 = (row1[i] == -1) ? -1 : mapping[row1[i]]; - int c2 = (row2[i] == -1) ? -1 : mapping[row2[i]]; - if (c1 < c2) - return -1; - else if (c1 > c2) - return 1; - } - return 0; - } - - private int[] buildRowIndex(Vector tempTable) { - int[] tempRowIndex = new int[tempTable.size()]; - rowIndexFlagsIndex = new short[tempTable.size()]; - Vector tempRowIndexFlags = new Vector(); - rowIndexShifts = new byte[tempTable.size()]; - - // build the row index. Each entry in the row index starts out referring - // to the original row (so it doesn't actually do any mapping), and we set - // up the index flags to show which cells in the row are populated - for (int i = 0; i < tempTable.size(); i++) { - tempRowIndex[i] = i; - - int[] row = (int[])tempTable.elementAt(i); - if (row[numCols] == 1 && row[0] == 0) { - int j = 0; - while (row[j] == 0) - ++j; - rowIndexFlagsIndex[i] = (short)(-j); - } - else { - int[] flags = new int[numColGroups]; - int nextFlag = 1; - int colGroup = 0; - for (int j = 0; j < numCols; j++) { - if (row[j] != 0) - flags[colGroup] |= nextFlag; - nextFlag <<= 1; - if (nextFlag == 0) { - ++colGroup; - nextFlag = 1; - } - } - colGroup = 0; - int j = 0; - while (j < tempRowIndexFlags.size()) { - if (((Integer)tempRowIndexFlags.elementAt(j)).intValue() == - flags[colGroup]) { - ++colGroup; - ++j; - if (colGroup >= numColGroups) - break; - } - else if (colGroup != 0) - colGroup = 0; - else - ++j; - } - rowIndexFlagsIndex[i] = (short)(j - colGroup); - while (colGroup < numColGroups) { - tempRowIndexFlags.addElement(new Integer(flags[colGroup])); - ++colGroup; - } - } - } - rowIndexFlags = new int[tempRowIndexFlags.size()]; - for (int i = 0; i < rowIndexFlags.length; i++) - rowIndexFlags[i] = ((Integer)tempRowIndexFlags.elementAt(i)).intValue(); -System.out.println("Number of column groups = " + numColGroups); -System.out.println("Size of rowIndexFlags = " + rowIndexFlags.length); - - return tempRowIndex; - } - - private void stackRows(Vector tempTable) { -/* -System.out.print("Row:\t"); -for (int i = 0; i < numCols; i++) -System.out.print(reverseColumnMap[i] + "\t"); -System.out.println(); -for (int i = 0; i < tempTable.size(); i++) { -System.out.print(Integer.toString(i) + ":\t"); -int[] row = (int[])tempTable.elementAt(i); -for (int j = 0; j < row.length; j++) -if (row[j] != 0) System.out.print(Integer.toString(row[j]) + "\t"); -else System.out.print(".\t"); -System.out.println(); -} -*/ - - int[] tempRowIndex = buildRowIndex(tempTable); - boolean[] tbd = new boolean[tempTable.size()]; - - // now we actually go through and stack rows together - for (int i = 0; i < tempTable.size(); i++) { - if (tbd[i]) - continue; -System.out.print("Stacking, inspecting row " + i + "...\r"); -//System.out.println("Stacking, inspecting row " + i + "..."); - - int[] destRow = (int[])tempTable.elementAt(i); - - boolean[] tempFlags = new boolean[numCols]; - boolean[] filledCells = new boolean[numCols]; - for (int j = 0; j < numCols; j++) - filledCells[j] = destRow[j] != 0; - - for (int j = i + 1; destRow[numCols] < numCols && j < tempTable.size(); j++) { - if (tbd[j]) - continue; - - int[] srcRow = (int[])tempTable.elementAt(j); - if (srcRow[numCols] + destRow[numCols] > numCols) - continue; - - int maxLeftShift = -999; - int maxRightShift = 0; - for (int k = 0; k < numCols; k++) { - tempFlags[k] = srcRow[k] != 0; - if (tempFlags[k]) { - if (maxLeftShift == -999) - maxLeftShift = -k; - maxRightShift = (numCols - 1) - k; - } - } - - int shift; - for (shift = maxLeftShift; shift <= maxRightShift; shift++) { - int k; - for (k = 0; k < numCols; k++) { - if (tempFlags[k] && filledCells[k + shift]) - break; - } - if (k >= numCols) - break; - } - if (shift <= maxRightShift) { -//System.out.println("Packing row " + j + " into row " + i + " with shift = " + shift); - for (int k = 0; k < numCols; k++) { - if (tempFlags[k]) { - filledCells[k + shift] = true; - destRow[k + shift] = srcRow[k]; - ++destRow[numCols]; - } - } - tbd[j] = true; - tempRowIndex[j] = i; - rowIndexShifts[j] = (byte)shift; - } - } - } - - // finally, we squeeze out all the deleted rows - int decrementBy = 0; - for (int i = 0; i < tempRowIndex.length; i++) { - if (!tbd[i]) - tempRowIndex[i] -= decrementBy; - else - ++decrementBy; - } - rowIndex = new short[tempRowIndex.length]; - for (int i = tempRowIndex.length - 1; i >= 0; i--) { - if (tbd[i]) { - rowIndex[i] = (short)(tempRowIndex[tempRowIndex[i]]); - tempTable.removeElementAt(i); - } - else - rowIndex[i] = (short)tempRowIndex[i]; - } - } - -// private void printTable() { -// short cell; -// int populatedCells = 0; -///* -// System.out.println("Conceptual table:"); -// System.out.println(" Row: a b c d e f g h i j k l m n" -// + " o p q r s t u v w x y z ' #"); -// -// boolean[] rowPrintFlags = new boolean[rowIndex.length]; -// printConceptualTable("", 0, rowPrintFlags); -//*/ -// -// System.out.println(); -// System.out.println("Conceptual table:"); -// System.out.print(" Row:"); -// for (int i = 0; i < reverseColumnMap.length; i++) { -// System.out.print(" " + reverseColumnMap[i]); -// } -// for (int i = 0; i < rowIndex.length; i++) { -// System.out.println(); -// printNumber(i, 4); -// System.out.print(":"); -// for (int j = 0; j < numCols; j++) -// printNumber(at(i, j), 4); -// } -// System.out.println('\n'); -// -// System.out.println(); -// System.out.println("Internally stored table:"); -// System.out.print(" Row:"); -// for (int i = 0; i < reverseColumnMap.length; i++) { -// System.out.print(" " + reverseColumnMap[i]); -// } -// for (int i = 0; i < table.length; i++) { -// if (i % numCols == 0) { -// System.out.println(); -// printNumber(i / numCols, 4); -// System.out.print(":"); -// } -// cell = table[i]; -// if (cell != 0) -// populatedCells++; -// printNumber(cell, 4); -// } -// System.out.println('\n'); -// -//System.out.println("Row index:"); -//for (int i = 0; i < rowIndex.length; i++) { -// System.out.print(" " + i + " -> " + rowIndex[i]); -// if (rowIndexFlagsIndex[i] < 0) -// System.out.print(", flags = " + Integer.toBinaryString((1 << (-rowIndexFlagsIndex[i]))) + " (" + rowIndexFlagsIndex[i]); -// else -// System.out.print(", flags = " + Integer.toBinaryString(rowIndexFlags[rowIndexFlagsIndex[i]]) + " (" + rowIndexFlagsIndex[i]); -// System.out.println("), shift = " + rowIndexShifts[i]); -//} -///* -// int theoreticalMinRows = populatedCells / numCols; -// if (populatedCells % numCols != 0) -// theoreticalMinRows++; -// int oneCellRows = 0; -// for (int i = 0; i < rowIndexFlags.length; i++) { -// double temp = Math.log(rowIndexFlags[i]) / Math.log(2); -// if (temp == (int)temp) -// oneCellRows++; -// } -// -// System.out.println('\n'); -// System.out.println("Total words in input = " + totalWords); -// System.out.println("Total unique words = " + uniqueWords + ", comprising " + -// totalUniqueWordChars + " characters\n"); -// System.out.println("Number of populated cells = " + populatedCells); -// System.out.println("Total number of cells = " + (table.length)); -// System.out.println("Residency = " + ((float)populatedCells / table.length * 100) + '%'); -// System.out.println("Ratio of populated cells to unique-word characters = " + -// ((float)populatedCells / totalUniqueWordChars * 100) + '%'); -// System.out.println("Ratio of total cells to unique-word characters = " + -// ((float)table.length / totalUniqueWordChars * 100) + '%'); -// System.out.println("Number of rows = " + (table.length / numCols)); -// System.out.println("Theoretical minimum number of rows = " + theoreticalMinRows); -// System.out.println("Ratio of number of rows to theoretical minimum = " + -// ((float)(table.length / numCols) / theoreticalMinRows * 100) + '%'); -// System.out.println("Number of conceptual rows = " + rowIndex.length); -// System.out.println("Conceptual rows with only one populated cell = " + oneCellRows); -// System.out.println("Ratio of one-cell rows to total conceptual rows = " + (((float)oneCellRows) -// / rowIndex.length * 100) + '%'); -// System.out.println("Average number of populated cells in multi-cell rows = " + -// ((float)(populatedCells - oneCellRows) / (rowIndex.length - oneCellRows))); -// -// int storageUsed = table.length * 2 + rowIndex.length * 2 -// + rowIndexFlags.length * 4 + rowIndexShifts.length; -// System.out.println("Total number of bytes in table (including indexes) = " + -// storageUsed); -// System.out.println("Bytes of overhead per unique-word character = " + ((double)(storageUsed -// - (totalUniqueWordChars * 2)) / totalUniqueWordChars)); -//*/ -// } - -// private void printConceptualTable(String initialString, int state, boolean[] flags) { -// if (initialString.length() == 0) -// System.out.println("root:"); -// else -// System.out.println(initialString + ':'); -// -// if (!flags[state]) { -// flags[state] = true; -// printNumber(state, 4); -// System.out.print(":"); -// for (int i = 0; i < numCols; i++) -// printNumber(at(state, i), 4); -// System.out.println(); -// } -// -// int nextState; -// for (int i = 0; i < numCols; i++) { -// nextState = at(state, i); -// if (nextState > 0 && !flags[nextState]) { -// printNumber(nextState, 4); -// System.out.print(":"); -// for (int j = 0; j < numCols; j++) -// printNumber(at(nextState, j), 4); -// System.out.println(); -// } -// } -// for (int i = 0; i < numCols; i++) { -// nextState = at(state, i); -// if (nextState > 0 && !flags[nextState]) { -// char nextChar; -// if (nextState == 27) -// nextChar = ' '; -// else if (nextState == 26) -// nextChar = '\''; -// else -// nextChar = (char)(i + 'a'); -// flags[nextState] = true; -// printConceptualTable(initialString + nextChar, nextState, flags); -// } -// } -// } - - private void printWordList(String partialWord, int state, PrintWriter out) - throws IOException { - if (state == -1) { - System.out.println(partialWord); - if (out != null) - out.println(partialWord); - } - else { - for (int i = 0; i < numCols; i++) { - if (at(state, i) != 0) - printWordList(partialWord + reverseColumnMap[i], at(state, i), out); - } - } - } - - private void writeDictionaryFile(DataOutputStream out) throws IOException { - out.writeInt(0); // version number - - char[] columnMapIndexes = columnMap.getIndexArray(); - out.writeInt(columnMapIndexes.length); - for (int i = 0; i < columnMapIndexes.length; i++) - out.writeShort((short)columnMapIndexes[i]); - byte[] columnMapValues = columnMap.getValueArray(); - out.writeInt(columnMapValues.length); - for (int i = 0; i < columnMapValues.length; i++) - out.writeByte((byte)columnMapValues[i]); - - out.writeInt(numCols); - out.writeInt(numColGroups); - - out.writeInt(rowIndex.length); - for (int i = 0; i < rowIndex.length; i++) - out.writeShort(rowIndex[i]); - - out.writeInt(rowIndexFlagsIndex.length); - for (int i = 0; i < rowIndexFlagsIndex.length; i++) - out.writeShort(rowIndexFlagsIndex[i]); - out.writeInt(rowIndexFlags.length); - for (int i = 0; i < rowIndexFlags.length; i++) - out.writeInt(rowIndexFlags[i]); - - out.writeInt(rowIndexShifts.length); - for (int i = 0; i < rowIndexShifts.length; i++) - out.writeByte(rowIndexShifts[i]); - - out.writeInt(table.length); - for (int i = 0; i < table.length; i++) - out.writeShort(table[i]); - - out.close(); - } - -// private void printNumber(int x, int width) { -// String s = String.valueOf(x); -// if (width > s.length()) -// System.out.print(spaces.substring(0, width - s.length())); -// if (x != 0) -// System.out.print(s); -// else -// System.out.print('.'); -// } - - public final short at(int row, char ch) { - int col = columnMap.elementAt(ch); - return at(row, col); - } - - public final short at(int row, int col) { - if (cellIsPopulated(row, col)) - return internalAt(rowIndex[row], col + rowIndexShifts[row]); - else - return 0; - } - - private final boolean cellIsPopulated(int row, int col) { - if (rowIndexFlagsIndex[row] < 0) - return col == -rowIndexFlagsIndex[row]; - else { - int flags = rowIndexFlags[rowIndexFlagsIndex[row] + (col >> 5)]; - return (flags & (1 << (col & 0x1f))) != 0; - } - } - - private final short internalAt(int row, int col) { - return table[row * numCols + col]; - } - - private CompactByteArray columnMap = null; - private char[] reverseColumnMap = null; - private int numCols; - private int numColGroups; - private short[] table = null; - private short[] rowIndex = null; - private int[] rowIndexFlags = null; - private short[] rowIndexFlagsIndex = null; - private byte[] rowIndexShifts = null; - - private int totalWords = 0; - private int uniqueWords = 0; - private int totalUniqueWordChars = 0; - - //private static final String spaces = " "; -} - diff --git a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/readme.html b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/readme.html deleted file mode 100644 index 5f62a9890e1..00000000000 --- a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/rbbi/readme.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - README For RBBI Tools - - - -

What Are These Tools?

-This directory contains two tools, WriteTablesToFiles, which converts -the Java  BreakIterators into .brk files for ICU4C, and -BuildDictionaryFile, which builds the binary the Thai word break -dictionary from a Unicode text file containing a list of Thai words. -The rest of this document describes how to use these tools.
-

How To Build The ICU4C BreakIterator Files

-The RuleBasedBreakIterator code was originally developed for ICU4J, and -then ported to ICU4C. For various reasons, the code which compiled the -state tables from the rule text was hard to port. Instead the -WriteTablesToFiles tool was wirtten to read in the Java data and write -the .brk files which ICU4C reads. Later the RBBI code was re-written -for ICU4C, including the ability to compile the state tables from rules -stored in text files. This means that the WriteTablesToFiles tool is -now obsolete.
-
-

How To Build The Thai Word Break Dictionary

-The Thai word berak code was developed originally for ICU4J, and then -ported to ICU4C - the dictionary builder tool was never ported, so you -have to use the Java tool to build the dictionary file for ICU4C. On -the other hand, all of the rest of the ICU locale data was developed -originally for -ICU4C, and a tool was written to covert the ICU4C locale data to Java -resource bundles for use by ICU4J. Consequently, the process of -building the Thai -word break dictionary for ICU4C and -ICU4J is a bit convoluted. Here are the steps:
-
-
    -
  1. Download and build both ICU4C and ICU4J on a Big Endian machine.
    -
  2. -
  3. Run the following command line to build the Thai dictionary file:
    -java -classpath $icu4j_root/classes -com.ibm.icu.dev.tool.rbbi.BuildDictionaryFile -$icu4j_root/src/com/ibm/icu/dev/data/thai6.ucs Unicode -$icu_root/soruce/data/brkitr/thai_dict.brk
  4. -
  5. Rebuild the ICU4C resources.
  6. -
  7. Rebuild the ICU4J ICULocaleData.jar file. (See the ICU4J readme file for -instructions)
  8. -
  9. Move ICULocaleData.jar from $icu_root/source/data/locales/java to -$icu4j_root/src/com/ibm/icu/impl/data
  10. -
  11. Build ICU4J's _resources target to unjar the new files.
    -
  12. -
-
-In the above, $icu_root is the root of your ICU4C source tree, for -example -"~/dev/icu" and $icu4j_root is the root of your ICU4J source tree, for -example "~/dev/icu4j".
-
- -