示例#1
0
        static void Main(string[] args)
        {
            AutoResetEvent termEvent = new AutoResetEvent(false);
            var            thread    = new Thread(async() =>
            {
                try
                {
                    Console.WriteLine($"*** Welcome, {WonbeLib.Wonbe.GetMyName()} Command Line ***");
                    var info         = new LanguageBaseStartInfo();
                    info.CommandLine = Environment.CommandLine;
                    if (args.Length > 0)
                    {
                        info.SourceCodeFileName = args[0];
                    }
                    info.RunRequest         = args.Length > 0;
                    var env                 = new WonbeEnviroment();
                    var b                   = new WonbeLanguageBase();
                    b.Environment           = env;
                    Console.CancelKeyPress += (sender, e) =>
                    {
                        IsCanceled = true;
                        e.Cancel   = true;
                    };
                    await b.InvokeInterpreterAsync(info, () => IsCanceled, (v) => IsCanceled = v);
                }
                finally
                {
                    termEvent.Set();
                }
            });

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            termEvent.WaitOne();
        }
示例#2
0
        static async Task Main(string[] args)
        {
            Console.WriteLine($"*** Welcome, {WonbeLib.Wonbe.GetMyName()} Command Line ***");
            var info = new LanguageBaseStartInfo();

            info.CommandLine = Environment.CommandLine;
            if (args.Length > 0)
            {
                info.SourceCodeFileName = args[0];
            }
            info.RunRequest = args.Length > 0;
            var env = new WonbeEnviroment();
            var b   = new WonbeLanguageBase();

            b.Environment           = env;
            Console.CancelKeyPress += async(sender, e) =>
            {
                IsCanceled = true;
                e.Cancel   = true;
            };
            await b.InvokeInterpreterAsync(info, () => IsCanceled, (b) => IsCanceled = b);
        }
示例#3
0
 public override Task InvokeCompilerAsync(LanguageBaseStartInfo startInfo) => throw new NotImplementedException();
示例#4
0
 public override async Task InvokeInterpreterAsync(LanguageBaseStartInfo startInfo, Func <bool> breakFlagGetter, Action <bool> breakFlagSetter)
 {
     var instance = new WonbeLib.Wonbe(Environment, breakFlagGetter, breakFlagSetter);
     await instance.SuperMain(startInfo.RunRequest, startInfo.SourceCodeFileName);
 }