[antlr-interest] Feature request: output to any Appendable object from TokenRewriteStream

Terence Parr parrt at cs.usfca.edu
Sun Jul 26 11:04:05 PDT 2009


added:

http://www.antlr.org/jira/browse/ANTLR-402

Ter
On Jul 25, 2009, at 12:48 PM, David-Sarah Hopwood wrote:

> It would be convenient to be able to direct the output of  
> TokenRewriteStream
> to any Appendable object, rather than just to a String. This would  
> avoid
> unnecessary copying when constructing output that includes the  
> rewritten
> text, but may include more than one "program", or text from another
> source.
>
> The implementation would be really simple -- add or change the  
> following
> methods in TokenRewriteStream:
>
>  public String toString(String programName, int start, int end) {
>      return appendTo(new StringBuilder(), programName, start, end)
>        .toString();
>  }
>
>  public Appendable appendTo(Appendable buf) {
>      return appendTo(buf, MIN_TOKEN_INDEX, size()-1);
>  }
>
>  public Appendable appendTo(Appendable buf, String programName) {
>      return appendTo(buf, programName, MIN_TOKEN_INDEX, size()-1);
>  }
>
>  public Appendable appendTo(Appendable buf, int start, int end) {
>      return appendTo(buf, DEFAULT_PROGRAM_NAME, start, end);
>  }
>
>  public Appendable appendTo(Appendable buf, String programName,
>                             int start, int end) {
>      // implementation of existing toString(programName, start, end)
>      // method, but without "StringBuffer buf = new StringBuffer();",
>      // and returning buf.
>  }
>
>  public String toOriginalString(int start, int end) {
>      return appendOriginalTo(new StringBuilder(), start,  
> end).toString();
>  }
>
>  public Appendable appendOriginalTo(Appendable buf) {
>      return appendOriginalTo(buf, MIN_TOKEN_INDEX, size()-1);
>  }
>
>  public Appendable appendOriginalTo(Appendable buf, int start, int  
> end) {
>      for (int i=start; i>=MIN_TOKEN_INDEX && i<=end &&  
> i<tokens.size(); i++) {
>          buf.append(get(i).getText());
>      }
>      return buf;
>  }
>
> -- 
> David-Sarah Hopwood  ⚥  http://davidsarah.livejournal.com
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address



More information about the antlr-interest mailing list