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); }
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)); }
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); }
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)); }