]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-52_1/tools/misc/src/com/ibm/icu/dev/tool/layout/OpenTypeTagBuilder.java
Upgrade ICU4J.
[Dictionary.git] / jars / icu4j-52_1 / tools / misc / src / com / ibm / icu / dev / tool / layout / OpenTypeTagBuilder.java
1 /*
2  *******************************************************************************
3  * Copyright (C) 1998-2004, International Business Machines Corporation and    *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6  */
7 package com.ibm.icu.dev.tool.layout;
8
9 /**
10  * @author emader
11  *
12  */
13 public class OpenTypeTagBuilder
14 {
15     private static String[] tableTags = {
16         "acnt",
17         "avar",
18         "BASE",
19         "bdat",
20         "bhed",
21         "bloc",
22         "bsln",
23         "CFF ",
24         "cmap",
25         "cvar",
26         "cvt ",
27         "DSIG",
28         "EBDT",
29         "EBLC",
30         "EBSC",
31         "fdsc",
32         "feat",
33         "fmtx",
34         "fpgm",
35         "fvar",
36         "gasp",
37         "GDEF",
38         "glyf",
39         "GPOS",
40         "GSUB",
41         "gvar",
42         "hdmx",
43         "head",
44         "hhea",
45         "hmtx",
46         "hsty",
47         "just",
48         "JSTF",
49         "kern",
50         "lcar",
51         "loca",
52         "LTSH",
53         "maxp",
54         "mort",
55         "morx",
56         "name",
57         "opbd",
58         "OS/2",
59         "PCLT",
60         "post",
61         "prep",
62         "prop",
63         "trak",
64         "VDMX",
65         "vhea",
66         "vmtx",
67         "VORG",
68         "Zapf"
69     };
70
71     private static String[] featureTags = {
72         "aalt",
73         "abvf",
74         "abvm",
75         "abvs",
76         "afrc",
77         "akhn",
78         "blwf",
79         "blwm",
80         "blws",
81         "calt",
82         "case",
83         "ccmp",
84         "clig",
85         "cpsp",
86         "cswh",
87         "curs",
88         "c2sc",
89         "c2pc",
90         "dist",
91         "dlig",
92         "dnom",
93         "expt",
94         "falt",
95         "fin2",
96         "fin3",
97         "fina",
98         "frac",
99         "fwid",
100         "half",
101         "haln",
102         "halt",
103         "hist",
104         "hkna",
105         "hlig",
106         "hngl",
107         "hwid",
108         "init",
109         "isol",
110         "ital",
111         "jalt",
112         "jp78",
113         "jp83",
114         "jp90",
115         "kern",
116         "lfbd",
117         "liga",
118         "ljmo",
119         "lnum",
120         "locl",
121         "mark",
122         "med2",
123         "medi",
124         "mgrk",
125         "mkmk",
126         "mset",
127         "nalt",
128         "nlck",
129         "nukt",
130         "numr",
131         "onum",
132         "opbd",
133         "ordn",
134         "ornm",
135         "palt",
136         "pcap",
137         "pnum",
138         "pref",
139         "pres",
140         "pstf",
141         "psts",
142         "pwid",
143         "qwid",
144         "rand",
145         "rlig",
146         "rphf",
147         "rtbd",
148         "rtla",
149         "ruby",
150         "salt",
151         "sinf",
152         "size",
153         "smcp",
154         "smpl",
155         "ss01",
156         "ss02",
157         "ss03",
158         "ss04",
159         "ss05",
160         "ss06",
161         "ss07",
162         "ss08",
163         "ss09",
164         "ss10",
165         "ss11",
166         "ss12",
167         "ss13",
168         "ss14",
169         "ss15",
170         "ss16",
171         "ss17",
172         "ss18",
173         "ss19",
174         "ss20",
175         "subs",
176         "sups",
177         "swsh",
178         "titl",
179         "tjmo",
180         "tnam",
181         "tnum",
182         "trad",
183         "twid",
184         "unic",
185         "valt",
186         "vatu",
187         "vert",
188         "vhal",
189         "vjmo",
190         "vkna",
191         "vkrn",
192         "vpal",
193         "vrt2",
194         "zero"
195     };
196     
197     private static String tagLabel(String tag)
198     {
199         StringBuffer result = new StringBuffer();
200         String upperTag = tag.toUpperCase();
201         
202         for (int i = 0; i < upperTag.length(); i += 1) {
203             char ch = upperTag.charAt(i);
204             
205             if ((ch < 'A' || ch > 'Z') && (ch < '0' || ch > '9')) {
206                 ch = '_';
207             }
208             
209             result.append(ch);
210         }
211         
212         return result.toString();
213     }
214     
215     private static void dumpTags(String enumName, String[] tags)
216     {
217         System.out.println("enum LE" + enumName + "Tags {");
218         
219         for (int i = 0; i < tags.length; i += 1) {
220             String tag = tags[i];
221             
222             System.out.println("    LE_" + tagLabel(tag) + "_" + enumName.toUpperCase() +
223                 "_TAG = " + TagUtilities.makeTag(tag) + "UL" +
224                 (i == tags.length - 1? " " : ",") + " /* '" + tag + "' */");
225         }
226         
227         System.out.println("};");
228     }
229     
230     public static void main(String[] args)
231     {
232         dumpTags("Table", tableTags);
233         dumpTags("Feature", featureTags);
234     }
235 }