| /** |
| ******************************************************************************* |
| * Copyright (C) 1996-2001, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * |
| * $Source: /xsrl/Nsvn/icu/unicodetools/com/ibm/text/UCD/Main.java,v $ |
| * $Date: 2006/04/05 22:12:44 $ |
| * $Revision: 1.37 $ |
| * |
| ******************************************************************************* |
| */ |
| |
| package com.ibm.text.UCD; |
| import java.util.Date; |
| |
| import com.ibm.text.utility.*; |
| |
| public final class Main implements UCD_Types { |
| |
| static final String classPrefix = "com.ibm.text.UCD."; |
| |
| static final String[] CORE_FILES = { |
| "CaseFolding", |
| "CompositionExclusions", |
| "DerivedCoreProperties", |
| "DerivedNormalizationProps", |
| "NormalizationTest", |
| "PropertyAliases", |
| "PropList", |
| "Scripts", |
| "SpecialCasing", |
| "HangulSyllableType", |
| "DerivedAge", |
| "StandardizedVariants", |
| "HangulSyllableType", |
| //"OtherDerivedProperties", |
| }; |
| |
| static final String[] EXTRACTED_FILES = { |
| "DerivedBidiClass", |
| "DerivedBinaryProperties", |
| "DerivedCombiningClass", |
| "DerivedDecompositionType", |
| "DerivedEastAsianWidth", |
| "DerivedGeneralCategory", |
| "DerivedJoiningGroup", |
| "DerivedJoiningType", |
| "DerivedLineBreak", |
| "DerivedNumericType", |
| "DerivedNumericValues", |
| }; |
| |
| static final String[] ALL_FILES = { |
| "Core", "Extracted" |
| }; |
| |
| public static void main (String[] args) throws Exception { |
| System.out.println("*** Start *** " + Default.getDate()); |
| |
| try { |
| for (int i = 0; i < args.length; ++i) { |
| |
| long mask = 0; |
| |
| String arg = args[i]; |
| if (arg.charAt(0) == '#') return; // skip rest of line |
| |
| Utility.fixDot(); |
| System.out.println(); |
| System.out.println("** Argument: " + args[i] + " ** " + Default.getDate()); |
| |
| // Expand string arguments |
| |
| if (arg.equalsIgnoreCase("ALL")) { |
| args = Utility.append(ALL_FILES, Utility.subarray(args, i+1)); |
| i = -1; |
| continue; |
| } |
| |
| if (arg.equalsIgnoreCase("CORE")) { |
| args = Utility.append(CORE_FILES, Utility.subarray(args, i+1)); |
| i = -1; |
| continue; |
| } |
| |
| if (arg.equalsIgnoreCase("EXTRACTED")) { |
| args = Utility.append(EXTRACTED_FILES, Utility.subarray(args, i+1)); |
| i = -1; |
| continue; |
| } |
| |
| // make sure the UCD is set up |
| |
| if (arg.equalsIgnoreCase("version")) { |
| Default.setUCD(args[++i]); |
| continue; |
| } |
| |
| // Now handle other options |
| |
| if (arg.equalsIgnoreCase("verify")) { |
| VerifyUCD.verify(); |
| VerifyUCD.checkCanonicalProperties(); |
| VerifyUCD.CheckCaseFold(); |
| VerifyUCD.checkAgainstUInfo(); |
| |
| } else if (arg.equalsIgnoreCase("build")) ConvertUCD.main(new String[]{Default.ucdVersion()}); |
| else if (arg.equalsIgnoreCase("statistics")) VerifyUCD.statistics(); |
| else if (arg.equalsIgnoreCase("NFSkippable")) NFSkippable.main(null); |
| else if (arg.equalsIgnoreCase("diffIgnorable")) VerifyUCD.diffIgnorable(); |
| else if (arg.equalsIgnoreCase("generateXML")) VerifyUCD.generateXML(); |
| else if (arg.equalsIgnoreCase("checkSpeed")) VerifyUCD.checkSpeed(); |
| else if (arg.equalsIgnoreCase("onetime")) VerifyUCD.oneTime(); |
| else if (arg.equalsIgnoreCase("verifyNormalizationStability")) VerifyUCD.verifyNormalizationStability(); |
| |
| else if (arg.equalsIgnoreCase("definitionTransliterator")) GenerateHanTransliterator.main(0); |
| else if (arg.equalsIgnoreCase("romajiTransliterator")) GenerateHanTransliterator.main(1); |
| else if (arg.equalsIgnoreCase("pinYinTransliterator")) GenerateHanTransliterator.main(2); |
| else if (arg.equalsIgnoreCase("hanproperties")) GenerateHanTransliterator.readUnihan(); |
| |
| else if (arg.equalsIgnoreCase("fixChineseOverrides")) GenerateHanTransliterator.fixChineseOverrides(); |
| |
| |
| |
| else if (arg.equalsIgnoreCase("compareBlueberry")) VerifyUCD.compareBlueberry(); |
| |
| else if (arg.equalsIgnoreCase("testenum")) SampleEnum.test(); |
| |
| else if (arg.equalsIgnoreCase("quicktest")) QuickTest.test(); |
| else if (arg.equalsIgnoreCase("TernaryStore")) TernaryStore.test(); |
| |
| else if (arg.equalsIgnoreCase("checkBIDI")) VerifyUCD.checkBIDI(); |
| else if (arg.equalsIgnoreCase("Buildnames")) BuildNames.main(null); |
| else if (arg.equalsIgnoreCase("TestNormalization")) TestNormalization.main(null); |
| |
| |
| else if (arg.equalsIgnoreCase("binary")) FastBinarySearch.test(); |
| |
| else if (arg.equalsIgnoreCase("GenerateCaseTest")) GenerateCaseTest.main(null); |
| else if (arg.equalsIgnoreCase("checkDecompFolding")) VerifyUCD.checkDecompFolding(); |
| |
| else if (arg.equalsIgnoreCase("breaktest")) GenerateBreakTest.main(null); |
| else if (arg.equalsIgnoreCase("checkcollator")) CheckCollator.main(null); |
| |
| //else if (arg.equalsIgnoreCase("genSplit")) GenerateData.genSplit(); |
| else if (arg.equalsIgnoreCase("iana")) IANANames.testSensitivity(); |
| |
| else if (arg.equalsIgnoreCase("testDerivedProperties")) DerivedProperty.test(); |
| else if (arg.equalsIgnoreCase("checkCase")) VerifyUCD.checkCase(); |
| else if (arg.equalsIgnoreCase("checkCase3")) VerifyUCD.checkCase3(); |
| else if (arg.equalsIgnoreCase("checkCaseLong")) VerifyUCD.checkCase2(true); |
| else if (arg.equalsIgnoreCase("checkCaseShort")) VerifyUCD.checkCase2(false); |
| else if (arg.equalsIgnoreCase("checkCanonicalProperties")) VerifyUCD.checkCanonicalProperties(); |
| else if (arg.equalsIgnoreCase("CheckCaseFold")) VerifyUCD.CheckCaseFold(); |
| else if (arg.equalsIgnoreCase("genIDN")) VerifyUCD.genIDN(); |
| else if (arg.equalsIgnoreCase("VerifyIDN")) VerifyUCD.VerifyIDN(); |
| else if (arg.equalsIgnoreCase("NFTest")) VerifyUCD.NFTest(); |
| else if (arg.equalsIgnoreCase("test1")) VerifyUCD.test1(); |
| //else if (arg.equalsIgnoreCase("TrailingZeros")) GenerateData.genTrailingZeros(); |
| else if (arg.equalsIgnoreCase("GenerateThaiBreaks")) GenerateThaiBreaks.main(null); |
| |
| else if (arg.equalsIgnoreCase("TestData")) TestData.main(new String[]{args[++i]}); |
| else if (arg.equalsIgnoreCase("MakeUnicodeFiles")) MakeUnicodeFiles.main(new String[]{}); |
| |
| //else if (arg.equalsIgnoreCase("checkAgainstUInfo")) checkAgainstUInfo(); |
| else if (arg.equalsIgnoreCase("checkScripts")) VerifyUCD.checkScripts(); |
| else if (arg.equalsIgnoreCase("IdentifierTest")) VerifyUCD.IdentifierTest(); |
| else if (arg.equalsIgnoreCase("BuildNames")) BuildNames.main(null); |
| else if (arg.equalsIgnoreCase("JavascriptProperties")) WriteJavaScriptInfo.assigned(); |
| else if (arg.equalsIgnoreCase("TestDirectoryIterator")) DirectoryIterator.test(); |
| //else if (arg.equalsIgnoreCase("checkIdentical")) GenerateData.handleIdentical(); |
| else if (arg.equalsIgnoreCase("testnameuniqueness")) TestNameUniqueness.checkNameList(); |
| //else if (arg.equalsIgnoreCase("checkDifferences")) GenerateData.checkDifferences("3.2.0"); |
| |
| else if (arg.equalsIgnoreCase("Compare14652")) Compare14652.main(null); |
| |
| |
| //else if (arg.equalsIgnoreCase("NormalizationCharts")) ChartGenerator.writeNormalizationCharts(); |
| |
| |
| /*else if (arg.equalsIgnoreCase("writeNormalizerTestSuite")) |
| GenerateData.writeNormalizerTestSuite("NormalizationTest-3.1.1d1.txt"); |
| */ |
| // EXTRACTED PROPERTIES |
| /* |
| else if (arg.equalsIgnoreCase("DerivedBidiClass")) { |
| GenerateData.generateVerticalSlice(BIDI_CLASS, BIDI_CLASS+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedBidiClass"); |
| |
| } else if (arg.equalsIgnoreCase("DerivedBinaryProperties")) { |
| GenerateData.generateVerticalSlice(BINARY_PROPERTIES, BINARY_PROPERTIES+1, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedBinaryProperties" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedCombiningClass")) { |
| GenerateData.generateVerticalSlice(COMBINING_CLASS, COMBINING_CLASS+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedCombiningClass" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedDecompositionType")) { |
| GenerateData.generateVerticalSlice(DECOMPOSITION_TYPE, DECOMPOSITION_TYPE+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedDecompositionType" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedEastAsianWidth")) { |
| GenerateData.generateVerticalSlice(EAST_ASIAN_WIDTH, EAST_ASIAN_WIDTH+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedEastAsianWidth" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedGeneralCategory")) { |
| GenerateData.generateVerticalSlice(CATEGORY, CATEGORY+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedGeneralCategory" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedJoiningGroup")) { |
| GenerateData.generateVerticalSlice(JOINING_GROUP, JOINING_GROUP+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedJoiningGroup" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedJoiningType")) { |
| GenerateData.generateVerticalSlice(JOINING_TYPE, JOINING_TYPE+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedJoiningType" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedLineBreak")) { |
| GenerateData.generateVerticalSlice(LINE_BREAK, LINE_BREAK+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedLineBreak" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedNumericType")) { |
| GenerateData.generateVerticalSlice(NUMERIC_TYPE, NUMERIC_TYPE+NEXT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedNumericType" ); |
| |
| } else if (arg.equalsIgnoreCase("HangulSyllableType")) { |
| GenerateData.generateVerticalSlice(HANGUL_SYLLABLE_TYPE,HANGUL_SYLLABLE_TYPE+NEXT_ENUM, GenerateData.HEADER_EXTEND, |
| "DerivedData/", "HangulSyllableType" ); |
| |
| } else if (arg.equalsIgnoreCase("DerivedNumericValues")) { |
| GenerateData.generateVerticalSlice(LIMIT_ENUM, LIMIT_ENUM, GenerateData.HEADER_DERIVED, |
| "DerivedData/extracted/", "DerivedNumericValues" ); |
| } |
| */ |
| else if (arg.equalsIgnoreCase("StandardizedVariants")) { |
| GenerateStandardizedVariants.generate(); |
| |
| // OTHER STANDARD PROPERTIES |
| |
| } else if (arg.equalsIgnoreCase("CaseFolding")) { |
| GenerateCaseFolding.makeCaseFold(true); |
| GenerateCaseFolding.makeCaseFold(false); |
| |
| } else if (arg.equalsIgnoreCase("SpecialCasing")) { |
| GenerateCaseFolding.generateSpecialCasing(true); |
| GenerateCaseFolding.generateSpecialCasing(false); |
| |
| /* } else if (arg.equalsIgnoreCase("CompositionExclusions")) { |
| GenerateData.generateCompExclusions(); |
| |
| } else if (arg.equalsIgnoreCase("DerivedAge")) { |
| GenerateData.generateAge("DerivedData/", "DerivedAge"); |
| |
| } else if (arg.equalsIgnoreCase("backwardsCompat")) { |
| GenerateData.backwardsCompat("DerivedData/extracted/", "Compatibility_ID_START", |
| new int[] {ID_Start, ID_Continue_NO_Cf, Mod_ID_Start, Mod_ID_Continue_NO_Cf}); |
| |
| } else if (arg.equalsIgnoreCase("DerivedCoreProperties")) { |
| GenerateData.generateDerived(DERIVED_CORE, true, GenerateData.HEADER_DERIVED, "DerivedData/", "DerivedCoreProperties"); |
| |
| } else if (arg.equalsIgnoreCase("DerivedNormalizationProps")) { |
| GenerateData.generateDerived(DERIVED_NORMALIZATION, true, GenerateData.HEADER_DERIVED, "DerivedData/", |
| "DerivedNormalizationProps" ); |
| |
| } else if (arg.equalsIgnoreCase("NormalizationTest")) { |
| GenerateData.writeNormalizerTestSuite("DerivedData/", "NormalizationTest"); |
| |
| } else if (arg.equalsIgnoreCase("PropertyAliases")) { |
| GenerateData.generatePropertyAliases(); |
| |
| } else if (arg.equalsIgnoreCase("PropList")) { |
| GenerateData.generateVerticalSlice(BINARY_PROPERTIES + White_space, BINARY_PROPERTIES + NEXT_ENUM, |
| GenerateData.HEADER_EXTEND, "DerivedData/", "PropList"); |
| |
| } else if (arg.equalsIgnoreCase("Scripts")) { |
| GenerateData.generateVerticalSlice(SCRIPT+1, SCRIPT + NEXT_ENUM, |
| GenerateData.HEADER_SCRIPTS, "DerivedData/", "Scripts"); |
| // OTHER TESTING |
| |
| } else if (arg.equalsIgnoreCase("OtherDerivedProperties")) { |
| //mask = Utility.setBits(0, NFC_Leading, NFC_Resulting); |
| GenerateData.generateDerived((byte)(ALL & ~DERIVED_CORE & ~DERIVED_NORMALIZATION), false, GenerateData.HEADER_DERIVED, "OtherData/", "OtherDerivedProperties"); |
| |
| } else if (arg.equalsIgnoreCase("AllBinary")) { |
| GenerateData.generateVerticalSlice(BINARY_PROPERTIES, BINARY_PROPERTIES + NEXT_ENUM, |
| GenerateData.HEADER_EXTEND, "OtherDerived/", "AllBinary"); |
| |
| } else if (arg.equalsIgnoreCase("DerivedGeneralCategoryTEST")) { |
| GenerateData.generateVerticalSlice(CATEGORY+29, CATEGORY+32, GenerateData.HEADER_DERIVED, |
| "DerivedData/", "DerivedGeneralCategory" ); |
| |
| } else if (arg.equalsIgnoreCase("listDifferences")) { |
| CompareProperties.listDifferences(); |
| |
| } else if (arg.equalsIgnoreCase("partition")) { |
| CompareProperties.partition(); |
| |
| } else if (arg.equalsIgnoreCase("propertyStatistics")) { |
| CompareProperties.statistics(); |
| |
| } else if (arg.equalsIgnoreCase("listAccents")) { |
| GenerateData.listCombiningAccents(); |
| |
| } else if (arg.equalsIgnoreCase("listGreekVowels")) { |
| GenerateData.listGreekVowels(); |
| |
| } else if (arg.equalsIgnoreCase("listKatakana")) { |
| GenerateData.listKatakana(); |
| */ |
| /* |
| } else if (arg.equalsIgnoreCase("DerivedFullNormalization")) { |
| mask = Utility.setBits(0, DerivedProperty.GenNFD, DerivedProperty.GenNFKC); |
| GenerateData.generateDerived(mask, GenerateData.HEADER_DERIVED, "DerivedData/", "DerivedFullNormalization" ); |
| } else if (arg.equalsIgnoreCase("caseignorable")) { |
| mask = Utility.setBits(0, DerivedProperty.Other_Case_Ignorable, DerivedProperty.Type_i); |
| GenerateData.generateDerived(mask, GenerateData.HEADER_DERIVED, "OtherData/", "CaseIgnorable" ); |
| } else if (arg.equalsIgnoreCase("nfunsafestart")) { |
| mask = Utility.setBits(0, NFD_UnsafeStart, NFKC_UnsafeStart); |
| GenerateData.generateDerived(mask, GenerateData.HEADER_DERIVED, "OtherData/", "NFUnsafeStart"); |
| */ |
| |
| } else { |
| CallArgs.call(new String[]{arg}, classPrefix); |
| } |
| |
| |
| //checkHoffman("\u05B8\u05B9\u05B1\u0591\u05C3\u05B0\u05AC\u059F"); |
| //checkHoffman("\u0592\u05B7\u05BC\u05A5\u05B0\u05C0\u05C4\u05AD"); |
| |
| |
| //GenerateData.generateDerived(Utility.setBits(0, DerivedProperty.PropMath, DerivedProperty.Mod_ID_Continue_NO_Cf), |
| // GenerateData.HEADER_DERIVED, "DerivedData/", "DerivedPropData2" ); |
| //GenerateData.generateVerticalSlice(SCRIPT, SCRIPT+1, "ScriptCommon" ); |
| //listStrings("LowerCase" , 0,0); |
| //GenerateData.generateVerticalSlice(0, LIMIT_ENUM, SKIP_SPECIAL, PROPLIST1, "DerivedData/", "DerivedPropData1" ); |
| |
| // AGE stuff |
| //UCD ucd = UCD.make(); |
| //System.out.println(ucd.getAgeID(0x61)); |
| //System.out.println(ucd.getAgeID(0x2FA1D)); |
| |
| // |
| } |
| } finally { |
| System.out.println("*** Done *** " + Default.getDate()); |
| } |
| } |
| |
| } |