@@ -89,14 +89,6 @@ export interface TokenChange {
8989 newToken ?: CommonToken ;
9090}
9191
92- // Unfortunately we have to make this public in order to be able to use it
93- // from IncrementalParserData properly.
94- // We do this in a type safe way however.
95- class SyncableTokenStream extends IncrementalTokenStream {
96- public sync ( i : number ) : boolean {
97- return super . sync ( i ) ;
98- }
99- }
10092/**
10193 *
10294 * This class computes and stores data needed by the incremental parser.
@@ -270,9 +262,9 @@ export class IncrementalParserData {
270262 depth : number ,
271263 state : number ,
272264 rule : number ,
273- tokenindex : number ,
265+ tokenIndex : number ,
274266 ) {
275- return `${ depth } ,${ rule } ,${ tokenindex } ` ;
267+ return `${ depth } ,${ rule } ,${ tokenIndex } ` ;
276268 }
277269 /**
278270 * Index a given parse tree and adjust the min/max ranges
@@ -283,6 +275,7 @@ export class IncrementalParserData {
283275 // could walk the old parse tree as the parse proceeds. This is left as
284276 // a future optimization. We also could just allow passing in
285277 // constructed maps if this turns out to be slow.
278+ this . tokenStream . fill ( ) ;
286279 let listener = new IncrementalParserData . ParseTreeProcessor ( this ) ;
287280 ParseTreeWalker . DEFAULT . walk ( listener , tree ) ;
288281 }
@@ -296,12 +289,12 @@ export class IncrementalParserData {
296289 */
297290 class ParseTreeProcessor implements ParseTreeListener {
298291 private incrementalData : IncrementalParserData ;
299- private tokenStream : SyncableTokenStream ;
292+ private tokenStream : IncrementalTokenStream ;
300293 private tokenOffsets : TokenOffsetRange [ ] ;
301294 private ruleStartMap : Map < string , IncrementalParserRuleContext > ;
302295 constructor ( incrementalData : IncrementalParserData ) {
303296 this . incrementalData = incrementalData ;
304- this . tokenStream = incrementalData . tokenStream as SyncableTokenStream ;
297+ this . tokenStream = incrementalData . tokenStream ;
305298 this . tokenOffsets = incrementalData . tokenOffsets ;
306299 this . ruleStartMap = incrementalData . ruleStartMap ;
307300 }
@@ -319,7 +312,7 @@ export class IncrementalParserData {
319312 ) ;
320313 if ( newTokenIndex !== undefined ) {
321314 let syncableStream = this . tokenStream ;
322- syncableStream . sync ( newTokenIndex ) ;
315+ // We filled the stream before the walk
323316 return syncableStream . get ( newTokenIndex ) ;
324317 }
325318 return undefined ;
0 commit comments