public class PrettyPrinter
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static char[] |
BLANKS |
protected Type |
classToPrint
Enforces the output of real Java syntax that can be compiled.
|
private int |
column
Column number.
|
protected boolean |
endAlreadyMarked |
private static char[] |
FEEDS |
protected java.lang.Object |
firstStatement |
protected int |
firstStatementEnd |
protected int |
firstStatementStart |
private int |
indentation
Indentation (cached).
|
protected java.util.HashMap<SourceElement,Position> |
indentMap |
protected SVInstantiations |
instantiations |
private boolean |
isPrintingSingleLineComments
Flag to indicate if a single line comment is being put out.
|
private java.util.ArrayList<Range> |
keywordRanges
Contains the java keyword ranges.
|
private java.util.Stack<java.lang.Integer> |
keywordStarts
Remembers the start of a keyword to create a range.
|
protected int |
level
Level.
|
private int |
line
Line number, not directly used.
|
protected boolean |
noLinefeed |
protected boolean |
noSemicolons |
protected java.io.Writer |
out |
protected java.lang.StringBuffer |
outBuf |
private boolean |
overwriteIndentation
Overwrite indentation flag (cached).
|
private boolean |
overwriteParsePositions
Overwrite parse positions flag (cached).
|
protected boolean |
startAlreadyMarked |
protected int |
writtenCharacters
The number of charcters that have been send to the writer
|
| Constructor and Description |
|---|
PrettyPrinter(java.io.Writer o)
creates a new PrettyPrinter
|
PrettyPrinter(java.io.Writer o,
boolean noLinefeed) |
PrettyPrinter(java.io.Writer o,
boolean noLinefeed,
SVInstantiations svi) |
PrettyPrinter(java.io.Writer o,
SVInstantiations svi) |
private int line
private int column
protected int level
protected java.io.Writer out
protected java.lang.StringBuffer outBuf
protected boolean noLinefeed
protected boolean noSemicolons
protected Type classToPrint
de.uka.ilkd.key.testgen.pp.unittest.ppAndJavaASTExtension.CompilableJavaCardPPprotected int firstStatementStart
protected int firstStatementEnd
protected boolean startAlreadyMarked
protected boolean endAlreadyMarked
protected java.lang.Object firstStatement
protected SVInstantiations instantiations
private final java.util.Stack<java.lang.Integer> keywordStarts
private java.util.ArrayList<Range> keywordRanges
protected int writtenCharacters
private boolean isPrintingSingleLineComments
protected java.util.HashMap<SourceElement,Position> indentMap
private static final char[] BLANKS
private static final char[] FEEDS
private int indentation
private boolean overwriteIndentation
private boolean overwriteParsePositions
public PrettyPrinter(java.io.Writer o)
public PrettyPrinter(java.io.Writer o,
SVInstantiations svi)
public PrettyPrinter(java.io.Writer o,
boolean noLinefeed)
public PrettyPrinter(java.io.Writer o,
boolean noLinefeed,
SVInstantiations svi)
protected void output()
throws java.io.IOException
java.io.IOExceptionprotected int getCurrentPos()
protected void markStart(int n,
java.lang.Object stmt)
n - offset from the current positionstmt - current statement;protected void markEnd(int n,
java.lang.Object stmt)
n - offset from the current positionpublic Range getRangeOfFirstExecutableStatement()
protected final void markKeywordStart()
protected final void markKeywordEnd()
public final Range[] getKeywordRanges()
public void reset()
public void setWriter(java.io.Writer out)
public int getLine()
public int getColumn()
public int getIndentationLevel()
public void setIndentationLevel(int level)
level - an int value.public int getTotalIndentation()
public void changeLevel(int delta)
delta - an int value.protected void writeIndentation(int lf,
int blanks)
throws java.io.IOException
java.io.IOExceptionprotected void writeIndentation(Position relative) throws java.io.IOException
java.io.IOExceptionprotected void writeIndentation(SourceElement elem) throws java.io.IOException
elem - a source element.java.io.IOException - occasionally thrown.protected void writeInternalIndentation(SourceElement elem) throws java.io.IOException
elem - a source element.java.io.IOException - occasionally thrown.protected void writeSymbol(int lf,
int levelChange,
java.lang.String symbol)
throws java.io.IOException
lf - an int value.levelChange - an int value.symbol - a string.java.io.IOException - occasionally thrown.protected static java.lang.String encodeUnicodeChars(java.lang.String str)
str - the input string.protected void scheduleComment(SingleLineComment slc)
slc - the comment to delay.protected void writeElement(int lf,
int levelChange,
int blanks,
SourceElement elem)
throws java.io.IOException
java.io.IOExceptionprotected Position getRelativePosition(SourceElement first)
protected void writeToken(int lf,
int blanks,
java.lang.String image,
NonTerminalProgramElement parent)
throws java.io.IOException
java.io.IOExceptionSourceElement.prettyPrint(de.uka.ilkd.key.java.PrettyPrinter)protected final void writeToken(int blanks,
java.lang.String image,
NonTerminalProgramElement parent)
throws java.io.IOException
java.io.IOExceptionprotected final void writeToken(java.lang.String image,
NonTerminalProgramElement parent)
throws java.io.IOException
java.io.IOExceptionprotected void writeElement(int lf,
int blanks,
SourceElement elem)
throws java.io.IOException
lf - an int value.blanks - an int value.elem - a source element.java.io.IOException - occasionally thrown.protected void writeElement(int blanks,
SourceElement elem)
throws java.io.IOException
blanks - an int value.elem - a source element.java.io.IOException - occasionally thrown.protected void writeElement(SourceElement elem) throws java.io.IOException
elem - a source element.java.io.IOException - occasionally thrown.protected void writeImmutableArrayOfProgramElement(int firstLF,
int levelChange,
int firstBlanks,
java.lang.String separationSymbol,
int separationLF,
int separationBlanks,
ImmutableArray<? extends ProgramElement> list)
throws java.io.IOException
java.io.IOExceptionprotected void writeKeywordList(int firstLF,
int levelChange,
int firstBlanks,
ImmutableArray<? extends ProgramElement> list)
throws java.io.IOException
java.io.IOExceptionprotected void writeKeywordList(ImmutableArray<? extends ProgramElement> list) throws java.io.IOException
list - a program element list.java.io.IOException - occasionally thrown.protected void writeCommaList(int firstLF,
int levelChange,
int firstBlanks,
ImmutableArray<? extends ProgramElement> list)
throws java.io.IOException
java.io.IOExceptionprotected void writeCommaList(int separationBlanks,
ImmutableArray<? extends ProgramElement> list)
throws java.io.IOException
list - a program element list.java.io.IOException - occasionally thrown.protected void writeCommaList(ImmutableArray<? extends ProgramElement> list) throws java.io.IOException
list - a program element list.java.io.IOException - occasionally thrown.protected void writeLineList(int firstLF,
int levelChange,
int firstBlanks,
ImmutableArray<? extends ProgramElement> list)
throws java.io.IOException
java.io.IOExceptionprotected void writeLineList(ImmutableArray<? extends ProgramElement> list) throws java.io.IOException
list - a program element list.java.io.IOException - occasionally thrown.protected void writeBlockList(int firstLF,
int levelChange,
int firstBlanks,
ImmutableArray<? extends ProgramElement> list)
throws java.io.IOException
java.io.IOExceptionprotected void writeBlockList(ImmutableArray<? extends ProgramElement> list) throws java.io.IOException
list - a program element list.java.io.IOException - occasionally thrown.private void dumpComments()
throws java.io.IOException
java.io.IOExceptionpublic void write(int c)
throws java.io.IOException
c - an int value.java.io.IOException - occasionally thrown.public void write(char[] cbuf)
throws java.io.IOException
cbuf - a char value.java.io.IOException - occasionally thrown.public void write(char[] cbuf,
int off,
int len)
throws java.io.IOException
cbuf - an array of char.off - an int value.len - an int value.java.io.IOException - occasionally thrown.public void write(java.lang.String str)
throws java.io.IOException
str - a string.java.io.IOException - occasionally thrown.public void write(java.lang.String str,
int off,
int len)
throws java.io.IOException
str - a string.off - an int value.len - an int value.java.io.IOException - occasionally thrown.protected int getIndentation()
protected boolean isOverwritingIndentation()
protected boolean isOverwritingParsePositions()
protected void printHeader(int lf,
int blanks,
ProgramElement elem)
throws java.io.IOException
lf - an int value.blanks - an int value.elem - a program element.java.io.IOException - occasionally thrown.protected void printHeader(int blanks,
ProgramElement elem)
throws java.io.IOException
blanks - an int value.elem - a program element.java.io.IOException - occasionally thrown.protected void printHeader(ProgramElement elem) throws java.io.IOException
elem - a program element.java.io.IOException - occasionally thrown.protected void printHeader(int lf,
int levelChange,
int blanks,
ProgramElement x)
throws java.io.IOException
lf - number of line feeds.levelChange - the level change.blanks - number of white spaces.x - the program element.java.io.IOException - occasionally thrown.protected void printFooter(ProgramElement x) throws java.io.IOException
x - the program element.java.io.IOException - occasionally thrown.protected void printOperator(Operator x, java.lang.String symbol) throws java.io.IOException
java.io.IOExceptionpublic void printProgramElementName(ProgramElementName x) throws java.io.IOException
java.io.IOExceptionpublic void printProgramVariable(ProgramVariable x) throws java.io.IOException
java.io.IOExceptionpublic void printProgramMethod(IProgramMethod x) throws java.io.IOException
java.io.IOExceptionpublic void printProgramMetaConstruct(ProgramTransformer x) throws java.io.IOException
java.io.IOExceptionpublic void printContextStatementBlock(ContextStatementBlock x) throws java.io.IOException
java.io.IOExceptionpublic void printIntLiteral(IntLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printBooleanLiteral(BooleanLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printEmptySetLiteral(EmptySetLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printSingleton(Singleton x) throws java.io.IOException
java.io.IOExceptionpublic void printSetUnion(SetUnion x) throws java.io.IOException
java.io.IOExceptionpublic void printIntersect(Intersect x) throws java.io.IOException
java.io.IOExceptionpublic void printSetMinus(SetMinus x) throws java.io.IOException
java.io.IOExceptionpublic void printAllFields(AllFields x) throws java.io.IOException
java.io.IOExceptionpublic void printAllObjects(AllObjects x) throws java.io.IOException
java.io.IOExceptionpublic void printEmptySeqLiteral(EmptySeqLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printSeqLength(SeqLength x) throws java.io.IOException
java.io.IOExceptionpublic void printSeqGet(SeqGet x) throws java.io.IOException
java.io.IOExceptionpublic void printSeqSingleton(SeqSingleton x) throws java.io.IOException
java.io.IOExceptionpublic void printSeqConcat(SeqConcat x) throws java.io.IOException
java.io.IOExceptionpublic void printIndexOf(SeqIndexOf x) throws java.io.IOException
java.io.IOExceptionpublic void printSeqSub(SeqSub x) throws java.io.IOException
java.io.IOExceptionpublic void printSeqReverse(SeqReverse x) throws java.io.IOException
java.io.IOExceptionpublic void printDLEmbeddedExpression(DLEmbeddedExpression x) throws java.io.IOException
java.io.IOExceptionpublic void printStringLiteral(StringLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printNullLiteral(NullLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printCharLiteral(CharLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printDoubleLiteral(DoubleLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printMergePointStatementBlock(MergePointStatement x) throws java.io.IOException
java.io.IOExceptionpublic void printLongLiteral(LongLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printFloatLiteral(FloatLiteral x) throws java.io.IOException
java.io.IOExceptionpublic void printPackageSpecification(PackageSpecification x) throws java.io.IOException
java.io.IOExceptionpublic void printAssert(Assert x) throws java.io.IOException
java.io.IOExceptionpublic void printArrayDeclaration(ArrayDeclaration type) throws java.io.IOException
java.io.IOExceptionpublic void printTypeReference(TypeReference x) throws java.io.IOException
java.io.IOExceptionpublic void printTypeReference(TypeReference x, boolean fullTypeNames) throws java.io.IOException
java.io.IOExceptionpublic void printSchemaTypeReference(SchemaTypeReference x) throws java.io.IOException
java.io.IOExceptionpublic void printFieldReference(FieldReference x) throws java.io.IOException
java.io.IOExceptionpublic void printPackageReference(PackageReference x) throws java.io.IOException
java.io.IOExceptionpublic void printThrows(Throws x) throws java.io.IOException
java.io.IOExceptionpublic void printArrayInitializer(ArrayInitializer x) throws java.io.IOException
java.io.IOExceptionpublic void printCompilationUnit(CompilationUnit x) throws java.io.IOException
java.io.IOExceptionpublic void printClassDeclaration(ClassDeclaration x) throws java.io.IOException
java.io.IOExceptionprotected boolean containsDefaultConstructor(ImmutableArray<MemberDeclaration> members)
public void printInterfaceDeclaration(InterfaceDeclaration x) throws java.io.IOException
java.io.IOExceptionprotected ImmutableArray<Modifier> removeFinal(ImmutableArray<Modifier> ma)
protected ImmutableArray<Modifier> replacePrivateByPublic(ImmutableArray<Modifier> ma)
public void printFieldDeclaration(FieldDeclaration x) throws java.io.IOException
java.io.IOExceptionpublic static java.lang.String getTypeNameForAccessMethods(java.lang.String typeName)
public void printLocalVariableDeclaration(LocalVariableDeclaration x) throws java.io.IOException
java.io.IOExceptionpublic void printVariableDeclaration(VariableDeclaration x) throws java.io.IOException
java.io.IOExceptionpublic void printMethodDeclaration(MethodDeclaration x) throws java.io.IOException
java.io.IOExceptionpublic void printClassInitializer(ClassInitializer x) throws java.io.IOException
java.io.IOExceptionpublic void printStatementBlock(StatementBlock x) throws java.io.IOException
java.io.IOExceptionpublic void printBreak(Break x) throws java.io.IOException
java.io.IOExceptionpublic void printContinue(Continue x) throws java.io.IOException
java.io.IOExceptionpublic void printReturn(Return x) throws java.io.IOException
java.io.IOExceptionpublic void printThrow(Throw x) throws java.io.IOException
java.io.IOExceptionpublic void printDo(Do x) throws java.io.IOException
java.io.IOExceptionpublic void printDo(Do x, boolean includeBody) throws java.io.IOException
java.io.IOExceptionprivate static void removeChar(java.lang.StringBuffer sb,
char c)
public void printEnhancedFor(EnhancedFor x) throws java.io.IOException
java.io.IOExceptionpublic void printEnhancedFor(EnhancedFor x, boolean includeBody) throws java.io.IOException
java.io.IOExceptionpublic void printFor(For x) throws java.io.IOException
java.io.IOExceptionpublic void printFor(For x, boolean includeBody) throws java.io.IOException
java.io.IOExceptionpublic void printWhile(While x) throws java.io.IOException
java.io.IOExceptionpublic void printWhile(While x, boolean includeBody) throws java.io.IOException
java.io.IOExceptionpublic void printIf(If x) throws java.io.IOException
java.io.IOExceptionpublic void printIf(If x, boolean includeBranches) throws java.io.IOException
java.io.IOExceptionpublic void printSwitch(Switch x) throws java.io.IOException
java.io.IOExceptionpublic void printSwitch(Switch x, boolean includeBranches) throws java.io.IOException
java.io.IOExceptionpublic void printTry(Try x) throws java.io.IOException
java.io.IOExceptionpublic void printLabeledStatement(LabeledStatement x) throws java.io.IOException
java.io.IOExceptionpublic void printMethodFrame(MethodFrame x) throws java.io.IOException
java.io.IOExceptionpublic void printCatchAllStatement(CatchAllStatement x) throws java.io.IOException
java.io.IOExceptionpublic void printMethodBodyStatement(MethodBodyStatement x) throws java.io.IOException
java.io.IOExceptionpublic void printSynchronizedBlock(SynchronizedBlock x) throws java.io.IOException
java.io.IOExceptionpublic void printLoopScopeBlock(LoopScopeBlock x) throws java.io.IOException
java.io.IOExceptionpublic void printImport(Import x) throws java.io.IOException
java.io.IOExceptionpublic void printExtends(Extends x) throws java.io.IOException
java.io.IOExceptionpublic void printImplements(Implements x) throws java.io.IOException
java.io.IOExceptionpublic void printVariableSpecification(VariableSpecification x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryAnd(BinaryAnd x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryAndAssignment(BinaryAndAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryOrAssignment(BinaryOrAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryXOrAssignment(BinaryXOrAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printCopyAssignment(CopyAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printDivideAssignment(DivideAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printMinusAssignment(MinusAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printModuloAssignment(ModuloAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printPlusAssignment(PlusAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printPostDecrement(PostDecrement x) throws java.io.IOException
java.io.IOExceptionpublic void printPostIncrement(PostIncrement x) throws java.io.IOException
java.io.IOExceptionpublic void printPreDecrement(PreDecrement x) throws java.io.IOException
java.io.IOExceptionpublic void printPreIncrement(PreIncrement x) throws java.io.IOException
java.io.IOExceptionpublic void printShiftLeftAssignment(ShiftLeftAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printShiftRightAssignment(ShiftRightAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printTimesAssignment(TimesAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printUnsignedShiftRightAssignment(UnsignedShiftRightAssignment x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryNot(BinaryNot x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryOr(BinaryOr x) throws java.io.IOException
java.io.IOExceptionpublic void printBinaryXOr(BinaryXOr x) throws java.io.IOException
java.io.IOExceptionpublic void printConditional(Conditional x) throws java.io.IOException
java.io.IOExceptionpublic void printDivide(Divide x) throws java.io.IOException
java.io.IOExceptionpublic void printEquals(Equals x) throws java.io.IOException
java.io.IOExceptionpublic void printGreaterOrEquals(GreaterOrEquals x) throws java.io.IOException
java.io.IOExceptionpublic void printGreaterThan(GreaterThan x) throws java.io.IOException
java.io.IOExceptionpublic void printLessOrEquals(LessOrEquals x) throws java.io.IOException
java.io.IOExceptionpublic void printLessThan(LessThan x) throws java.io.IOException
java.io.IOExceptionpublic void printNotEquals(NotEquals x) throws java.io.IOException
java.io.IOExceptionpublic void printNewArray(NewArray x) throws java.io.IOException
java.io.IOExceptionpublic void printInstanceof(Instanceof x) throws java.io.IOException
java.io.IOExceptionpublic void printExactInstanceof(ExactInstanceof x) throws java.io.IOException
java.io.IOExceptionpublic void printNew(New x) throws java.io.IOException
java.io.IOExceptionpublic void printTypeCast(TypeCast x) throws java.io.IOException
java.io.IOExceptionpublic void printLogicalAnd(LogicalAnd x) throws java.io.IOException
java.io.IOExceptionpublic void printLogicalNot(LogicalNot x) throws java.io.IOException
java.io.IOExceptionpublic void printLogicalOr(LogicalOr x) throws java.io.IOException
java.io.IOExceptionpublic void printMinus(Minus x) throws java.io.IOException
java.io.IOExceptionpublic void printModulo(Modulo x) throws java.io.IOException
java.io.IOExceptionpublic void printNegative(Negative x) throws java.io.IOException
java.io.IOExceptionpublic void printPlus(Plus x) throws java.io.IOException
java.io.IOExceptionpublic void printPositive(Positive x) throws java.io.IOException
java.io.IOExceptionpublic void printShiftLeft(ShiftLeft x) throws java.io.IOException
java.io.IOExceptionpublic void printShiftRight(ShiftRight x) throws java.io.IOException
java.io.IOExceptionpublic void printTimes(Times x) throws java.io.IOException
java.io.IOExceptionpublic void printUnsignedShiftRight(UnsignedShiftRight x) throws java.io.IOException
java.io.IOExceptionpublic void printArrayReference(ArrayReference x) throws java.io.IOException
java.io.IOExceptionpublic void printMetaClassReference(MetaClassReference x) throws java.io.IOException
java.io.IOExceptionpublic void printMethodReference(MethodReference x) throws java.io.IOException
java.io.IOExceptionprotected void printMethodReference(MethodReference x, boolean withSemicolon) throws java.io.IOException
java.io.IOExceptionpublic void printMethod(IProgramMethod x) throws java.io.IOException
java.io.IOExceptionpublic void printFullMethodSignature(IProgramMethod x) throws java.io.IOException
java.io.IOExceptionprotected void writeFullMethodSignature(IProgramMethod x) throws java.io.IOException
java.io.IOExceptionpublic void printExecutionContext(ExecutionContext x) throws java.io.IOException
java.io.IOExceptionpublic void printSuperConstructorReference(SuperConstructorReference x) throws java.io.IOException
java.io.IOExceptionpublic void printThisConstructorReference(ThisConstructorReference x) throws java.io.IOException
java.io.IOExceptionpublic void printSuperReference(SuperReference x) throws java.io.IOException
java.io.IOExceptionpublic void printThisReference(ThisReference x) throws java.io.IOException
java.io.IOExceptionpublic void printArrayLengthReference(ArrayLengthReference x) throws java.io.IOException
java.io.IOExceptionpublic void printThen(Then x) throws java.io.IOException
java.io.IOExceptionpublic void printElse(Else x) throws java.io.IOException
java.io.IOExceptionpublic void printCase(Case x) throws java.io.IOException
java.io.IOExceptionpublic void printCatch(Catch x) throws java.io.IOException
java.io.IOExceptionpublic void printDefault(Default x) throws java.io.IOException
java.io.IOExceptionpublic void printFinally(Finally x) throws java.io.IOException
java.io.IOExceptionpublic void printModifier(Modifier x) throws java.io.IOException
java.io.IOExceptionpublic void printSchemaVariable(SchemaVariable x) throws java.io.IOException
java.io.IOExceptionpublic void printEmptyStatement(EmptyStatement x) throws java.io.IOException
java.io.IOExceptionpublic void printComment(Comment x) throws java.io.IOException
java.io.IOExceptionpublic void printParenthesizedExpression(ParenthesizedExpression x) throws java.io.IOException
java.io.IOExceptionpublic void printPassiveExpression(PassiveExpression x) throws java.io.IOException
java.io.IOExceptionpublic void printTransactionStatement(TransactionStatement x) throws java.io.IOException
java.io.IOExceptionpublic void printEmptyMapLiteral(EmptyMapLiteral x) throws java.io.IOException
java.io.IOException