public NatashaCSharpEngine(string name) { Syntax = new NatashaCSharpSyntax(); Compiler = new NatashaCSharpCompiler(); Compiler.AssemblyName = name; Compiler.StreamCompileFailedHandler += NatashaEngine_StreamCompileFailedHandler; Compiler.FileCompileFailedHandler += NatashaEngine_FileCompileFailedHandler;; }
public void RunClassName8() { var initial = "int i=0 ; var t=new{Name=\"\"};"; var final = "int i = 0; var t = new { Name = \"\" };"; NatashaCSharpSyntax syntax = new NatashaCSharpSyntax(); syntax.AddTreeToCache(initial); var result = syntax.TreeCache[final].ToString(); Assert.Equal(final, result); }
public void RunClassName6() { var content = @"class A { int i = 20 ; int j = 1 + 2 ; T . S = Test ( 10 ) ; }"; var expected = $"class A{Environment.NewLine}{{{Environment.NewLine} int i = 20;{Environment.NewLine} int j = 1 + 2;{Environment.NewLine} T.S = Test( 10);{Environment.NewLine}}}"; NatashaCSharpSyntax syntax = new NatashaCSharpSyntax(); syntax.AddTreeToCache(content); var result = syntax.TreeCache[expected].ToString(); Assert.Equal(expected, result); }
/// <summary> /// 添加语法树 /// </summary> /// <param name="tree"></param> public AssemblyCSharpBuilder Add(SyntaxTree tree) { tree = NatashaCSharpSyntax.FormartTree(tree, _options); var exception = NatashaExceptionAnalyzer.GetSyntaxException(tree); if (exception != null) { throw exception; } else { lock (SyntaxTrees) { SyntaxTrees.Add(tree); } } return(this); }
/// <summary> /// 添加脚本 /// </summary> /// <param name="script"></param> public AssemblyCSharpBuilder Add(string script) { var tree = NatashaCSharpSyntax.ParseTree(script, _options); var exception = NatashaExceptionAnalyzer.GetSyntaxException(tree); if (exception != null) { throw exception; } else { lock (SyntaxTrees) { SyntaxTrees.Add(tree); } } return(this); }
public void RunClassName5() { var content = @"unsafe class C { delegate * < int, int> functionPointer; }"; var expected = @"unsafe class C { delegate*<int, int> functionPointer; }"; NatashaCSharpSyntax syntax = new NatashaCSharpSyntax(); syntax.AddTreeToCache(content); var result = syntax.TreeCache[expected].ToString(); Assert.Equal(expected, result); }