1 28 29 package org.jruby.ast.visitor.rewriter.utils; 30 31 import java.io.PrintWriter ; 32 import java.io.StringWriter ; 33 34 import org.jruby.ast.visitor.rewriter.FormatHelper; 35 import org.jruby.lexer.yacc.ISourcePosition; 36 37 38 public class ReWriterContext { 39 40 private final String source; 41 private final CallDepth callDepth = new CallDepth(); 42 private final LocalVariables localVariables = new LocalVariables(); 43 private final BooleanStateStack printQuotesInString = new BooleanStateStack(true, true); 44 private HereDocument hereDocument; 45 private boolean skipNextNewline = true; 46 private PrintWriter output; 47 private FormatHelper formatHelper; 48 49 private ISourcePosition lastPosition; 50 51 public LocalVariables getLocalVariables() { 52 return localVariables; 53 } 54 55 public ReWriterContext(PrintWriter output, String source, FormatHelper formatHelper) { 56 super(); 57 this.output = output; 58 this.source = source; 59 this.formatHelper = formatHelper; 60 } 61 62 public ReWriterContext(StringWriter output, String source, FormatHelper formatHelper){ 63 this(new PrintWriter (output), source, formatHelper); 64 } 65 66 public CallDepth getCallDepth() { 67 return callDepth; 68 } 69 70 public String getSource() { 71 return source; 72 } 73 74 public Indentor getIndentor() { 75 return formatHelper.getIndentor(); 76 } 77 78 public ISourcePosition getLastPosition() { 79 return lastPosition; 80 } 81 82 public void setLastPosition(ISourcePosition lastPosition) { 83 this.lastPosition = lastPosition; 84 } 85 86 public BooleanStateStack getPrintQuotesInString() { 87 return printQuotesInString; 88 } 89 90 public boolean hasHereDocument() { 91 return hereDocument != null; 92 } 93 94 public HereDocument fetchHereDocument() { 95 HereDocument hd = hereDocument; 96 hereDocument = null; 97 return hd; 98 } 99 100 public void depositHereDocument(String hereDocument) { 101 this.hereDocument = new HereDocument(hereDocument, this); 102 } 103 104 public boolean isSkipNextNewline() { 105 return skipNextNewline; 106 } 107 108 public void setSkipNextNewline(boolean skipNextNewline) { 109 this.skipNextNewline = skipNextNewline; 110 } 111 112 public PrintWriter getOutput() { 113 return output; 114 } 115 116 public void setOutput(PrintWriter output) { 117 this.output = output; 118 } 119 120 public FormatHelper getFormatHelper() { 121 return formatHelper; 122 } 123 } 124 | Popular Tags |