Ejemplo n.º 1
0
        /// <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);
Ejemplo n.º 2
0
        /// <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));
        }