/// <summary> /// From source code, generates the assembly via Roslyn and generates the AST from the assembly using the <see cref="IASTBuilder"/>. /// </summary> /// <param name="source"></param> /// <returns></returns> public static ASTInfo BuildAST(this string source) { IAssemblyProxy assembly = new AsmlDasmlAssemblyLoader(source).Load(); var builder = new ASTBuilder(assembly); return builder.Build(); }
/// <summary> /// From source code, generates the assembly via Roslyn and generates the AST from the assembly using the <see cref="IASTBuilder"/>. /// </summary> /// <param name="source"></param> /// <returns></returns> public static SyntaxNode ExtractASTRoot(this string source) { IAssemblyProxy assembly = new AsmlDasmlAssemblyLoader(source, ScriptNamespaceAttributeHelper.AttributeSourceCode).Load(); var builder = new ASTBuilder(assembly); // ScriptSharp Reflector var astInfo = builder.Build(); // Getting the AST node var generatedTree = astInfo.Tree as CSharpSyntaxTree; if (generatedTree == null) { throw new InvalidOperationException("Invalid generated tree"); } return(generatedTree.GetRoot()); }