File: App.cs

package info (click to toggle)
hugs98 98.200311-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 12,964 kB
  • ctags: 8,084
  • sloc: ansic: 67,521; haskell: 61,497; xml: 4,566; sh: 3,264; cpp: 1,936; yacc: 1,094; makefile: 915; cs: 883; sed: 10
file content (45 lines) | stat: -rw-r--r-- 1,104 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//
// (c) sof, 2002-2003
//
using System;

namespace HsWrapGen
{
	/// <summary>
	/// Toplevel Main wrapper for HsWrapGen tool.
	/// </summary>
	class App
	{
		/// <summary>
		/// Throw-away tool for generating Haskell .NET class wrappers.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
            if (args.Length > 0) {
                TypeInfo ti = new TypeInfo(args[0]);
		if (ti.Type == null) {
		  Console.WriteLine("Unknown type: {0}", args[0]);
		} else {
		  HsOutput hs = new HsOutput(ti.Type,ti.Members);
		  String outFile;
		  if (args.Length > 1) {
                    outFile = args[1];
		  } else {
                    Int32 idx = args[0].LastIndexOf('.');
                    if (idx >= 0) {
                        outFile = String.Concat(args[0].Substring(idx+1), ".hs");
                    } else {
		      outFile = String.Concat(args[0], ".hs");
                    }
		  }
		  Console.WriteLine(outFile);
		  hs.OutputToFile(outFile);
		}
            } else {
                Console.WriteLine("Usage: hswrapgen classname [outfile]");
            }

		}
	}
}