Compare commits
No commits in common. "77c20cf8ef7534cfca5a722693b93c81e92ec477" and "67c85f9b40f9a4486839e34e981dc53b9cd028eb" have entirely different histories.
77c20cf8ef
...
67c85f9b40
3 changed files with 56 additions and 60 deletions
|
@ -7,12 +7,6 @@ using System.IO;
|
|||
|
||||
namespace cscz
|
||||
{
|
||||
public enum GenerationMode
|
||||
{
|
||||
PrivateVariablesWithProperties,
|
||||
PublicVariables
|
||||
}
|
||||
|
||||
public class ClassGenerator
|
||||
{
|
||||
/// <summary>
|
||||
|
@ -32,28 +26,17 @@ namespace cscz
|
|||
/// </summary>
|
||||
public List<string> UsingStatements = new List<string>()
|
||||
{
|
||||
"System"
|
||||
"s"
|
||||
};
|
||||
public List<string> Signatures = new List<string>();
|
||||
|
||||
public string ClassName = "Carrot";
|
||||
|
||||
public GenerationMode GenerationMode = GenerationMode.PublicVariables;
|
||||
|
||||
/// <summary>
|
||||
/// Whether to make data members private and create public properties for them instead of making the
|
||||
/// data members public.
|
||||
/// This is read only. Please refer to GenerationMode in order to change this field.
|
||||
/// </summary>
|
||||
public bool CreateProperties
|
||||
{
|
||||
get
|
||||
{
|
||||
if (GenerationMode == GenerationMode.PrivateVariablesWithProperties)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public bool CreateProperties = true;
|
||||
|
||||
public ClassGenerator ()
|
||||
{
|
||||
|
@ -125,7 +108,7 @@ namespace cscz
|
|||
}
|
||||
else
|
||||
{
|
||||
result.AppendLine(string.Format("\tpublic {0} {1};", datatypeName, publicDataMemberName));
|
||||
result.AppendLine(string.Format("\tpublic {0} {1};"));
|
||||
constructorBody.AppendLine(string.Format("\t\t{0} = in{1};", privateDataMemberName, publicDataMemberName));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,51 +9,72 @@ namespace cscz
|
|||
{
|
||||
class Program
|
||||
{
|
||||
public static int Main(string[] args)
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
GenerationMode generationMode = GenerationMode.PublicVariables;
|
||||
Dictionary<string, string> parsedArgs = new Dictionary<string, string>();
|
||||
ParseOptions(args, new List<string>(), new List<string>(){ "help", "private" });
|
||||
|
||||
List<string> extras = new List<string>();
|
||||
for(int i = 0; i < args.Length; i++)
|
||||
if(args.Length >= 1 && args[0] == "--help")
|
||||
{
|
||||
if(!args[i].StartsWith("-"))
|
||||
{
|
||||
extras.Add(args[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
switch(args[i].Trim('-'))
|
||||
{
|
||||
case "help":
|
||||
Assembly asm = Assembly.GetExecutingAssembly();
|
||||
/*** Debug - Lists the names of all embedded resources ***
|
||||
Assembly asm = Assembly.GetExecutingAssembly();
|
||||
/*** Debug - Lists the names of all embedded resources ***
|
||||
foreach(string str in asm.GetManifestResourceNames())
|
||||
Console.WriteLine(str);*/
|
||||
StreamReader helpTextReader = new StreamReader(asm.GetManifestResourceStream(@"cscz.Help.md"));
|
||||
string helpText = helpTextReader.ReadToEnd();
|
||||
helpTextReader.Dispose();
|
||||
Console.WriteLine(helpText);
|
||||
return 0;
|
||||
case "private":
|
||||
generationMode = GenerationMode.PrivateVariablesWithProperties;
|
||||
break;
|
||||
case "public":
|
||||
generationMode = GenerationMode.PublicVariables;
|
||||
break;
|
||||
default:
|
||||
Console.Error.WriteLine("Error: Unknown argument '{0}'.", args[i]);
|
||||
return 1;
|
||||
}
|
||||
StreamReader helpTextReader = new StreamReader(asm.GetManifestResourceStream(@"cscz.Help.md"));
|
||||
string helpText = helpTextReader.ReadToEnd();
|
||||
helpTextReader.Dispose();
|
||||
Console.WriteLine(helpText);
|
||||
return;
|
||||
}
|
||||
|
||||
ClassGenerator cg = new ClassGenerator();
|
||||
cg.GenerationMode = generationMode;
|
||||
|
||||
string source = Console.In.ReadToEnd();
|
||||
cg.ParseString(source);
|
||||
|
||||
cg.CreateProperties = !parsedArgs.ContainsKey("private");
|
||||
|
||||
Console.WriteLine(cg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses command line options out into a dictionary.
|
||||
/// </summary>
|
||||
/// <param name="args">The arguments to parse.</param>
|
||||
/// <param name="extraArgs">A list in which to dump any extra arguments found that aren't attached to a flag.</param>
|
||||
/// <param name="noValueArgs">A list of flags which do not take a value.</param>
|
||||
/// <returns>The parsed arguments.</returns>
|
||||
static Dictionary<string, string> ParseOptions(string[] args, List<string> extraArgs, List<string> noValueArgs)
|
||||
{
|
||||
Dictionary<string, string> result = new Dictionary<string, string>();
|
||||
for(int i = 0; i < args.Length; i++)
|
||||
{
|
||||
if (args[i].StartsWith("-"))
|
||||
{
|
||||
string optionKey = args[i].Trim(new char[] { '-', ' ' });
|
||||
if (i < args.Length - 1 && !args[i + 1].StartsWith("-"))
|
||||
{
|
||||
if(!noValueArgs.Contains(optionKey))
|
||||
{
|
||||
result[optionKey] = args[i + 1].Trim();
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
result[optionKey] = "true";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result[optionKey] = "true";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
extraArgs.Add(args[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
u r
|
||||
# Carrot
|
||||
string name
|
||||
string variety
|
||||
|
||||
float length
|
||||
decimal radius
|
||||
|
Loading…
Reference in a new issue