Babel.Compiler.Compiler.ParseArguments C# (CSharp) Method

ParseArguments() public method

public ParseArguments ( string args ) : void
args string
return void
        public void ParseArguments(string[] args)
        {
            bool loadStdLib = true;

            for (int i = 0; i < args.Length; i++) {
                string arg = (string) args[i];
                if (arg[0] == '-') {
                    string[] vals = arg.Split(':');
                    string name, value;
                    name = vals[0];
                    if (vals.Length == 2)
                        value = vals[1];
                    else
                        value = "";
                    switch (name) {
                    case "-reference":
                    case "-r":
                        references.Add(value);
                        break;
                    case "-lib":
                        string[] dirs = value.Split(',');
                        foreach (string dir in dirs) {
                            linkPaths.Add(value);
                        }
                        break;
                    case "-target":
                    case "-t":
                        switch (value) {
                        case "exe":
                            target = Target.Exe;
                            break;
                        case "winexe":
                            target = Target.WinExe;
                            break;
                        case "library":
                            target = Target.Library;
                            break;
                        case "module":
                            target = Target.Module;
                            break;
                        default:
                            Console.Error.WriteLine("unknown target: `{0}'",
                                                    value);
                            Environment.Exit(1);
                            break;
                        }
                        break;
                    case "-out":
                        outputFileName = value;
                        break;
                    case "-nostdlib":
                        loadStdLib = false;
                        break;
                    case "-version":
                    case "-v":
                        PrintVersion();
                        Environment.Exit(0);
                        break;
                    case "-help":
                    case "-h":
                        PrintUsage();
                        Environment.Exit(0);
                        break;
                    default:
                        Console.Error.WriteLine("unknown option: `{0}'", name);
                        Environment.Exit(1);
                        break;
                    }
                }
                else {
                    inputFiles.Add(args[i]);
                }
            }
            if (inputFiles.Count == 0) {
                Console.Error.WriteLine("no input files");
                PrintUsage();
                Environment.Exit(1);
            }
            if (outputFileName == null) {
                string firstInputFile = (string) inputFiles[0];
                string ext = "";
                switch (target) {
                case Target.Exe:
                case Target.WinExe:
                    ext = ".exe";
                    break;
                case Target.Library:
                case Target.Module:
                    ext = ".dll";
                    break;
                }
                if (firstInputFile.LastIndexOf(".") > 0) {
                    outputFileName =
                        Path.GetFileNameWithoutExtension(firstInputFile) + ext;
                }
                else {
                    outputFileName = firstInputFile + ext;
                }
            }
            if (loadStdLib) {
                softReferences.Add("Babel.Base");
                softReferences.Add("Babel.IO");
            }
        }

Usage Example

Beispiel #1
0
 public static void Main(string[] args)
 {
     Compiler compiler = new Compiler();
     compiler.ParseArguments(args);
     compiler.Run();
 }