/// <summary> /// Execute one or more PowerShell script files to get language blocks. /// </summary> /// <param name="context"></param> /// <param name="sources"></param> /// <returns></returns> private static ILanguageBlock[] GetLanguageBlock(RunspaceContext context, Source[] sources) { var results = new List <ILanguageBlock>(); var ps = context.NewPowerShell(); context.PushScope(RunspaceScope.Source); try { // Process each source foreach (var source in sources) { // Process search file per source foreach (var file in source.File) { if (file.Type != SourceType.Script) { continue; } ps.Commands.Clear(); if (!context.EnterSourceFile(file)) { throw new FileNotFoundException(PSDocsResources.ScriptNotFound, file.Path); } var scriptAst = System.Management.Automation.Language.Parser.ParseFile(file.Path, out Token[] tokens, out ParseError[] errors);
/// <summary> /// Executes get document builders from Document script blocks. /// </summary> internal static IDocumentBuilder[] GetDocumentBuilder(RunspaceContext context, Source[] source) { context.PushScope(RunspaceScope.Source); var blocks = GetLanguageBlock(context, source); var documents = ToDocument(blocks, context); var conventions = GetConventions(blocks, context); return(ToDocumentBuilder(documents, conventions)); }