public bool Compile(string code, ProtoCore.Core core, out int blockId) { bool buildSucceeded = false; blockId = ProtoCore.DSASM.Constants.kInvalidIndex; try { // No More HashAngleReplace for unified parser (Fuqiang) //String strSource = ProtoCore.Utils.LexerUtils.HashAngleReplace(code); System.IO.MemoryStream sourceMemStream = new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(code)); ProtoScript.GenerateScript gs = new ProtoScript.GenerateScript(core); core.Script = gs.preParseFromStream(sourceMemStream); foreach (ProtoCore.LanguageCodeBlock codeblock in core.Script.codeblockList) { ProtoCore.CompileTime.Context context = new ProtoCore.CompileTime.Context(); ProtoCore.Language id = codeblock.language; core.Executives[id].Compile(out blockId, null, codeblock, context, EventSink); } core.BuildStatus.ReportBuildResult(); int errors = 0; int warnings = 0; buildSucceeded = core.BuildStatus.GetBuildResult(out errors, out warnings); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(buildSucceeded); }
public bool Compile(string code, ProtoCore.Core core, out int blockId) { bool buildSucceeded = false; blockId = ProtoCore.DSASM.Constants.kInvalidIndex; try { // No More HashAngleReplace for unified parser (Fuqiang) //String strSource = ProtoCore.Utils.LexerUtils.HashAngleReplace(code); System.IO.MemoryStream sourceMemStream = new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(code)); ProtoScript.GenerateScript gs = new ProtoScript.GenerateScript(core); core.Script = gs.preParseFromStream(sourceMemStream); foreach (ProtoCore.LanguageCodeBlock codeblock in core.Script.codeblockList) { ProtoCore.CompileTime.Context context = new ProtoCore.CompileTime.Context(); ProtoCore.Language id = codeblock.language; core.Executives[id].Compile(out blockId, null, codeblock, context, EventSink); } core.BuildStatus.ReportBuildResult(); buildSucceeded = core.BuildStatus.BuildSucceeded; } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return buildSucceeded; }
public ProtoLanguage.CompileStateTracker Compile(string code, out int blockId) { ProtoLanguage.CompileStateTracker compileState = ProtoScript.CompilerUtils.BuildDefaultCompilerState(); blockId = ProtoCore.DSASM.Constants.kInvalidIndex; try { System.IO.MemoryStream sourceMemStream = new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(code)); ProtoScript.GenerateScript gs = new ProtoScript.GenerateScript(compileState); compileState.Script = gs.preParseFromStream(sourceMemStream); foreach (ProtoCore.LanguageCodeBlock codeblock in compileState.Script.codeblockList) { ProtoCore.CompileTime.Context context = new ProtoCore.CompileTime.Context(); ProtoCore.Language id = codeblock.language; compileState.Executives[id].Compile(compileState, out blockId, null, codeblock, context, EventSink); } compileState.BuildStatus.ReportBuildResult(); int errors = 0; int warnings = 0; compileState.compileSucceeded = compileState.BuildStatus.GetBuildResult(out errors, out warnings); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return compileState; }
public ProtoLanguage.CompileStateTracker Compile(string code, out int blockId) { ProtoLanguage.CompileStateTracker compileState = ProtoScript.CompilerUtils.BuildDefaultCompilerState(); blockId = ProtoCore.DSASM.Constants.kInvalidIndex; try { System.IO.MemoryStream sourceMemStream = new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(code)); ProtoScript.GenerateScript gs = new ProtoScript.GenerateScript(compileState); compileState.Script = gs.preParseFromStream(sourceMemStream); foreach (ProtoCore.LanguageCodeBlock codeblock in compileState.Script.codeblockList) { ProtoCore.CompileTime.Context context = new ProtoCore.CompileTime.Context(); ProtoCore.Language id = codeblock.language; compileState.Executives[id].Compile(compileState, out blockId, null, codeblock, context, EventSink); } compileState.BuildStatus.ReportBuildResult(); int errors = 0; int warnings = 0; compileState.compileSucceeded = compileState.BuildStatus.GetBuildResult(out errors, out warnings); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(compileState); }