summaryrefslogtreecommitdiffstats
path: root/qtsharp/src/generator/Generator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'qtsharp/src/generator/Generator.cs')
-rw-r--r--qtsharp/src/generator/Generator.cs97
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 (manyoso@yahoo.com)
+//
+// 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);
+ }
+ }
+ }
+}