On May 19, 2008, at 8:01 PM, Jeff Saremi wrote:

> I can see how the code operates by looking at it and running the  
> unit tests but i just wanted to make sure that this was intended:
>
> Suppose I have a ReplaceOp to take effect at index 2 to index 4.
> And then I wanted to get a stream.toString(3, 5).
> Shouldn't my ReplaceOp still kick in since its range covers the  
> "start" of toString()?

Ah. good point...Probably a bug. adding.
Ter
>
>
> Example:
> Here's how the code works today:
>         CharStream input = new ANTLRStringStream("abcccba");
>         Interpreter lexEngine = new Interpreter(g, input);
>         TokenRewriteStream tokens = new TokenRewriteStream(lexEngine);
>         tokens.LT(1); // fill buffer
>         tokens.replace(2, 4, "x");
>         String result = tokens.toString(3,5);
>         String expecting = "ccb";
>         assertEquals(expecting, result);
>
> This is what i'm implying it should have worked:
>         ...
>         tokens.replace(2, 4, "x");
>         String result = tokens.toString(3,5);
>         String expecting = "ba";
>         assertEquals(expecting, result);
>
> Is my expectation reasonable? (note expected "ba" vs. "ccb")
> The code skips the ops which have a lower index than the start  
> regardless of their "to" or lastIndex.
>
>
> _______________________________________________
> antlr-dev mailing list
> [email protected]
> http://www.antlr.org:8080/mailman/listinfo/antlr-dev

_______________________________________________
antlr-dev mailing list
[email protected]
http://www.antlr.org:8080/mailman/listinfo/antlr-dev

Reply via email to