01: /*
02: **********************************************************************
03: * Copyright (c) 2001-2003, International Business Machines
04: * Corporation and others. All Rights Reserved.
05: **********************************************************************
06: * Date Name Description
07: * 11/29/2001 aliu Creation.
08: **********************************************************************
09: */
10: package com.ibm.icu.dev.tool.translit;
11:
12: import com.ibm.icu.text.*;
13: import java.io.*;
14:
15: /**
16: * Adjunct class to getIndexFilters.bat. Just generates source sets
17: * and their closures.
18: *
19: * Usage: ID [ NFD|NFKD [lower] ]
20: *
21: * java -classpath classes com.ibm.icu.dev.tool.translit.genIndexFilters
22: * Latin-Greek NFD lower
23: *
24: * The 'NFD'|'NFKD' and 'lower' args are optional, but 'lower' can
25: * only be specified if 'NFD' or 'NFKD' is.
26: *
27: * DO NOT CHANGE OUTPUT FORMAT. This tool's output is read by a Perl
28: * script.
29: */
30: public class genIndexFilters {
31:
32: public static void main(String[] args) throws IOException {
33: Normalizer.Mode m = Normalizer.NONE;
34: boolean lowerFirst = false;
35: if (args.length >= 2) {
36: if (args[1].equalsIgnoreCase("NFD")) {
37: m = Normalizer.NFD;
38: } else if (args[1].equalsIgnoreCase("NFKD")) {
39: m = Normalizer.NFKD;
40: } else {
41: usage();
42: }
43: }
44: if (args.length >= 3) {
45: if (args[2].equalsIgnoreCase("lower")) {
46: lowerFirst = true;
47: } else {
48: usage();
49: }
50: }
51: if (args.length > 3) {
52: usage();
53: }
54: showSourceSet(args[0], m, lowerFirst);
55: }
56:
57: static void showSourceSet(String ID, Normalizer.Mode m,
58: boolean lowerFirst) throws IOException {
59: Transliterator t = Transliterator.getInstance(ID);
60: UnicodeSet sourceSet = t.getSourceSet();
61: if (m != Normalizer.NONE || lowerFirst) {
62: UnicodeSetClosure.close(sourceSet, m, lowerFirst);
63: }
64: System.out.println(sourceSet.toPattern(true));
65: }
66:
67: static void usage() {
68: System.err.println("Usage: ID [ NFD|NFKD [lower] ]");
69: System.exit(1);
70: }
71: }
|