cscz/cscz/Program.cs

60 lines
1.3 KiB
C#
Raw Permalink Normal View History

2016-05-07 19:03:44 +00:00
using System;
2016-05-07 19:31:15 +00:00
using System.Text;
using System.Diagnostics;
2016-05-08 11:14:34 +00:00
using System.Reflection;
using System.IO;
using System.Collections.Generic;
2016-08-08 08:30:18 +00:00
using SBRLUtilities;
using System.Security.Policy;
2016-05-07 19:03:44 +00:00
namespace cscz
{
class Program
{
2016-06-27 20:09:45 +00:00
public static int Main(string[] args)
2016-05-07 19:03:44 +00:00
{
2016-06-27 20:09:45 +00:00
GenerationMode generationMode = GenerationMode.PublicVariables;
2016-06-27 20:09:45 +00:00
List<string> extras = new List<string>();
for(int i = 0; i < args.Length; i++)
2016-05-08 11:14:34 +00:00
{
2016-06-27 20:09:45 +00:00
if(!args[i].StartsWith("-"))
{
extras.Add(args[i]);
continue;
}
switch(args[i].Trim('-'))
{
case "help":
2016-08-08 08:30:18 +00:00
string helpText = EmbeddedFiles.ReadAllText(@"cscz.Help.md");
helpText = helpText.Replace("{version}", Utilities.GetVersionText());
2016-06-27 20:09:45 +00:00
Console.WriteLine(helpText);
return 0;
case "private":
generationMode = GenerationMode.PrivateVariablesWithProperties;
break;
case "public":
generationMode = GenerationMode.PublicVariables;
break;
case "public-auto":
generationMode = GenerationMode.PublicAutoProperties;
break;
2016-06-27 20:09:45 +00:00
default:
Console.Error.WriteLine("Error: Unknown argument '{0}'.", args[i]);
return 1;
}
2016-05-08 11:14:34 +00:00
}
2016-05-07 19:03:44 +00:00
ClassGenerator cg = new ClassGenerator();
2016-06-27 20:09:45 +00:00
cg.GenerationMode = generationMode;
2016-05-07 19:31:15 +00:00
string source = Console.In.ReadToEnd();
cg.ParseString(source);
Console.WriteLine(cg);
2016-06-27 20:09:45 +00:00
return 0;
}
2016-05-07 19:03:44 +00:00
}
}