예제 #1
0
        private IListSource <Token> ReadRestAsTokenTree()
        {
            ReadRest();
            var restAsLexer = new TokenListAsLexer(_rest, _source.SourceFile);
            var treeLexer   = new TokensToTree(restAsLexer, false);

            return(treeLexer.Buffered());
        }
예제 #2
0
        public override IListSource <ITagSpan <ITag> > RunAnalysis(ITextSnapshot snapshot,
                                                                   SparseAList <EditorToken> eTokens, CancellationToken cancellationToken)
        {
            var sourceFile    = new TextSnapshotAsSourceFile(snapshot);
            var tokens        = ToNormalTokens(eTokens);
            var tokensAsLexer = new TokenListAsLexer(tokens, sourceFile);
            var tokensTree    = new TokensToTree(new TokenListAsLexer(tokens, sourceFile), true)
            {
                ErrorSink = MessageSink.Trace
            };
            var results = new DList <ITagSpan <ClassificationTag> >();
            var parser  = new MyLesParser(tokensTree.Buffered(), sourceFile, MessageSink.Trace, results);

            parser.ParseStmtsGreedy();
            results.Sort((t1, t2) => t1.Span.Start.Position.CompareTo(t2.Span.Start.Position));
            return(results);
        }