private IEnumerable <UsingDirectiveSyntax> GetUsingDirective(GrammarParser.IncludeDefinitionContext context) { var newfile = context.String().GetText(); var newPath = file.Replace(Path.GetFileName(file), newfile.Replace("\"", "")); if (File.Exists(newPath)) { using (var stream = File.OpenRead(newPath)) { var lexer = new GrammarLexer(new AntlrInputStream(stream)); var parser = new GrammarParser(new CommonTokenStream(lexer)); var syntax = Visit(parser.tarsDefinition()) as CompilationUnitSyntax; return(syntax.Members.Select(i => i as NamespaceDeclarationSyntax) .Where(i => i != null) .Select(i => SyntaxFactory.UsingDirective(i.Name))); } } else { return(new UsingDirectiveSyntax[0]); } }
/// <summary> /// Exit a parse tree produced by <see cref="GrammarParser.includeDefinition"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitIncludeDefinition([NotNull] GrammarParser.IncludeDefinitionContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="GrammarParser.includeDefinition"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitIncludeDefinition([NotNull] GrammarParser.IncludeDefinitionContext context) { return(VisitChildren(context)); }