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