private IListSource <Token> ReadRestAsTokenTree() { ReadRest(); var restAsLexer = new TokenListAsLexer(_rest, _source.SourceFile); var treeLexer = new TokensToTree(restAsLexer, false); return(treeLexer.Buffered()); }
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); }