Exemple #1
0
        public EvalResult ResetCS(EvalRequest request)
        {
            var response = EvalResult.Empty(request.SessionId);

            response.StringResult = $"Total Memory: {System.GC.GetTotalMemory(false)} bytes -> ";
            var engine = ReplFactory.GetCSEngine(request.SessionId, e => {
                e.Reset(typeof(ReplService).Assembly);
            });

            response.StringResult += $"{System.GC.GetTotalMemory(true)} bytes";
            return(response);
        }
Exemple #2
0
        public EvalResult EvalCS(EvalRequest request)
        {
            var analyzer = new ReplAnalyzerCS(request.Code);

            if (!analyzer.IsCompleteSubmission())
            {
                return(EvalResult.Error(request.SessionId, "Submission is not completed!"));
            }
            var engine = ReplFactory.GetCSEngine(request.SessionId, e => {
                e.InitEngineWithAssembly(typeof(ReplService).Assembly);
            });

            return(engine.Eval(request.Code));
        }
Exemple #3
0
        static void Main(string[] args)
        {
            DoSomeWork();
            var sessionId = Guid.NewGuid();
            var engine    = ReplFactory.GetCSEngine(sessionId, e => {
                e.OnOutput += Engine_OnOutput;
                e.OnError  += Engine_OnError;
                e.InitEngineWithAssembly(typeof(Program).Assembly);
            });

            _console.WriteLineInfo("------------------------------------------------------------------------");
            _console.WriteLineInfo($" New code session started with Id: {sessionId}");
            _console.WriteLineInfo("------------------------------------------------------------------------");

            ProcessRepl(engine, sessionId);
        }
Exemple #4
0
        public EvalResult ValidateCS(EvalRequest request)
        {
            var analyzer = new ReplAnalyzerCS(request.Code);

            if (!analyzer.IsCompleteSubmission())
            {
                return(EvalResult.Error(request.SessionId, "Submission is not completed!"));
            }
            var engine = ReplFactory.GetCSEngine(request.SessionId, e => {
                e.InitEngineWithAssembly(typeof(ReplService).Assembly);
            });
            var diagnostics = engine.Validate(request.Code, out var script, out var scriptState);
            var hasErrors   = diagnostics.Any(x => x.Severity == DiagnosticSeverity.Error || (x.Severity == DiagnosticSeverity.Warning && x.IsWarningAsError));
            var diagResult  = diagnostics.Select(x => new DiagnosticsResult(x.ToString(), x.Severity)).ToList();

            return(EvalResult.Instance(request.SessionId, string.Empty, diagResult, hasErrors));
        }