diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 90825e2392b2d70e43c7a25b8a3752299a933894 (patch) | |
tree | e33aa27f02b74604afbfd0ea4f1cfca8833d882a /qtsharp/src/generator/Generator.cs | |
download | tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtsharp/src/generator/Generator.cs')
-rw-r--r-- | qtsharp/src/generator/Generator.cs | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/qtsharp/src/generator/Generator.cs b/qtsharp/src/generator/Generator.cs new file mode 100644 index 00000000..68b1e031 --- /dev/null +++ b/qtsharp/src/generator/Generator.cs @@ -0,0 +1,97 @@ +// A Qt to C# binding generator. +// +// Copyright (C) 2002 Adam Treat ([email protected]) +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +using System; +using System.IO; + +namespace QtCSharp { + + public class Generator { + + void Usage () + { + Console.Write ( + "generator -f file.cs -d directory\n\n" + + " -f || --file file.xml The csharp source file to parse.\n\n" + + " -d || --directory Specifies the output directory.\n\n"); + } + + public static void Main (string[] args) + { + Generator gen = new Generator (args); + } + + public Generator (string[] args) + { + string xmlfile = null; + string directory = null; + + int argc = args.Length; + for (int i = 0; i < argc; i++) { + string arg = args[i]; + if (arg.StartsWith("-") || arg.StartsWith("/")) { + switch (arg) { + case "-f": case "--file": + if ((i + 1) >= argc) { + Usage(); + return; + } + xmlfile = args[++i]; + continue; + case "-d": case "--directory": + if ((i + 1) >= argc) { + Usage (); + return; + } + directory = args[++i]; + continue; + default: + Usage (); + return; + } + } + } + + if (xmlfile == null) { + Usage(); + return; + } else if (directory == null) { + Usage (); + return; + } + + if (!File.Exists (xmlfile)) { + Console.WriteLine ("\n No Xml file at {0}\n", args[0]); + return; + } + //if (!Directory.Exists( directory) && directory != null) { + + //Directory.CreateDirectory (directory); + //} + + ParseAPI parseapi = new ParseAPI (xmlfile); + QTypeMap qmap = new QTypeMap (); + Console.WriteLine ("Parsing "+parseapi.QTypes.Count+" Qt classes..."); + + foreach (QType qtype in parseapi.QTypes) { + Converter converter = new Converter (parseapi.QTypes, qtype, qmap); + Printer printer = new Printer (converter.GetQType (), directory); + } + } + } +} |