12d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// © 2016 and later: Unicode, Inc. and others.
22d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License
3bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert/*
4bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert *******************************************************************************
5bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Copyright (C) 1998-2008, International Business Machines Corporation and    *
6bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * others. All Rights Reserved.                                                *
7bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert *******************************************************************************
8bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */
9bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertpackage com.ibm.icu.dev.tool.layout;
10bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
11bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertpublic class ScriptNameBuilder
12bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert{
13bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert    /*
14bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert     * This tool builds the script related header files and data tables needed by
15bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert     * the ICU LayoutEngine. By using the ICU4J interfaces to access the script
16bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert     * information, we can be sure that the data written by this tool is in synch
17bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert     * with ICU.
18bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert     */
19bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert    public static void main(String[] args)
20bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert    {
21bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        ScriptData scriptData = new ScriptData();
22bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        LanguageData languageData = new LanguageData();
23bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
24bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        ScriptIDModuleWriter scriptIDModuleWriter = new ScriptIDModuleWriter(scriptData, languageData);
25bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
26bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        scriptIDModuleWriter.writeScriptHeader("LEScripts.h");
27bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        scriptIDModuleWriter.writeLanguageHeader("LELanguages.h");
28bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
29bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        scriptIDModuleWriter.updateScriptAndLanguages();
30bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
31bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        ScriptTagModuleWriter scriptTagModuleWriter = new ScriptTagModuleWriter(scriptData, languageData);
32bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
33bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        scriptTagModuleWriter.writeScriptTags("ScriptAndLanguageTags");
34bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
35bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        ScriptRunModuleWriter scriptRunModuleWriter = new ScriptRunModuleWriter(scriptData);
36bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert
37bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert        scriptRunModuleWriter.writeScriptRuns("ScriptRunData.cpp");
38bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert    }
39bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert}