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.CompilableJavaCardPP
protected 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.IOException
protected 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.IOException
protected void writeIndentation(Position relative) throws java.io.IOException
java.io.IOException
protected 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.IOException
protected Position getRelativePosition(SourceElement first)
protected void writeToken(int lf, int blanks, java.lang.String image, NonTerminalProgramElement parent) throws java.io.IOException
java.io.IOException
SourceElement.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.IOException
protected final void writeToken(java.lang.String image, NonTerminalProgramElement parent) throws java.io.IOException
java.io.IOException
protected 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.IOException
protected void writeKeywordList(int firstLF, int levelChange, int firstBlanks, ImmutableArray<? extends ProgramElement> list) throws java.io.IOException
java.io.IOException
protected 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.IOException
protected 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.IOException
protected 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.IOException
protected 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.IOException
public 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.IOException
public void printProgramElementName(ProgramElementName x) throws java.io.IOException
java.io.IOException
public void printProgramVariable(ProgramVariable x) throws java.io.IOException
java.io.IOException
public void printProgramMethod(IProgramMethod x) throws java.io.IOException
java.io.IOException
public void printProgramMetaConstruct(ProgramTransformer x) throws java.io.IOException
java.io.IOException
public void printContextStatementBlock(ContextStatementBlock x) throws java.io.IOException
java.io.IOException
public void printIntLiteral(IntLiteral x) throws java.io.IOException
java.io.IOException
public void printBooleanLiteral(BooleanLiteral x) throws java.io.IOException
java.io.IOException
public void printEmptySetLiteral(EmptySetLiteral x) throws java.io.IOException
java.io.IOException
public void printSingleton(Singleton x) throws java.io.IOException
java.io.IOException
public void printSetUnion(SetUnion x) throws java.io.IOException
java.io.IOException
public void printIntersect(Intersect x) throws java.io.IOException
java.io.IOException
public void printSetMinus(SetMinus x) throws java.io.IOException
java.io.IOException
public void printAllFields(AllFields x) throws java.io.IOException
java.io.IOException
public void printAllObjects(AllObjects x) throws java.io.IOException
java.io.IOException
public void printEmptySeqLiteral(EmptySeqLiteral x) throws java.io.IOException
java.io.IOException
public void printSeqLength(SeqLength x) throws java.io.IOException
java.io.IOException
public void printSeqGet(SeqGet x) throws java.io.IOException
java.io.IOException
public void printSeqSingleton(SeqSingleton x) throws java.io.IOException
java.io.IOException
public void printSeqConcat(SeqConcat x) throws java.io.IOException
java.io.IOException
public void printIndexOf(SeqIndexOf x) throws java.io.IOException
java.io.IOException
public void printSeqSub(SeqSub x) throws java.io.IOException
java.io.IOException
public void printSeqReverse(SeqReverse x) throws java.io.IOException
java.io.IOException
public void printDLEmbeddedExpression(DLEmbeddedExpression x) throws java.io.IOException
java.io.IOException
public void printStringLiteral(StringLiteral x) throws java.io.IOException
java.io.IOException
public void printNullLiteral(NullLiteral x) throws java.io.IOException
java.io.IOException
public void printCharLiteral(CharLiteral x) throws java.io.IOException
java.io.IOException
public void printDoubleLiteral(DoubleLiteral x) throws java.io.IOException
java.io.IOException
public void printMergePointStatementBlock(MergePointStatement x) throws java.io.IOException
java.io.IOException
public void printLongLiteral(LongLiteral x) throws java.io.IOException
java.io.IOException
public void printFloatLiteral(FloatLiteral x) throws java.io.IOException
java.io.IOException
public void printPackageSpecification(PackageSpecification x) throws java.io.IOException
java.io.IOException
public void printAssert(Assert x) throws java.io.IOException
java.io.IOException
public void printArrayDeclaration(ArrayDeclaration type) throws java.io.IOException
java.io.IOException
public void printTypeReference(TypeReference x) throws java.io.IOException
java.io.IOException
public void printTypeReference(TypeReference x, boolean fullTypeNames) throws java.io.IOException
java.io.IOException
public void printSchemaTypeReference(SchemaTypeReference x) throws java.io.IOException
java.io.IOException
public void printFieldReference(FieldReference x) throws java.io.IOException
java.io.IOException
public void printPackageReference(PackageReference x) throws java.io.IOException
java.io.IOException
public void printThrows(Throws x) throws java.io.IOException
java.io.IOException
public void printArrayInitializer(ArrayInitializer x) throws java.io.IOException
java.io.IOException
public void printCompilationUnit(CompilationUnit x) throws java.io.IOException
java.io.IOException
public void printClassDeclaration(ClassDeclaration x) throws java.io.IOException
java.io.IOException
protected boolean containsDefaultConstructor(ImmutableArray<MemberDeclaration> members)
public void printInterfaceDeclaration(InterfaceDeclaration x) throws java.io.IOException
java.io.IOException
protected ImmutableArray<Modifier> removeFinal(ImmutableArray<Modifier> ma)
protected ImmutableArray<Modifier> replacePrivateByPublic(ImmutableArray<Modifier> ma)
public void printFieldDeclaration(FieldDeclaration x) throws java.io.IOException
java.io.IOException
public static java.lang.String getTypeNameForAccessMethods(java.lang.String typeName)
public void printLocalVariableDeclaration(LocalVariableDeclaration x) throws java.io.IOException
java.io.IOException
public void printVariableDeclaration(VariableDeclaration x) throws java.io.IOException
java.io.IOException
public void printMethodDeclaration(MethodDeclaration x) throws java.io.IOException
java.io.IOException
public void printClassInitializer(ClassInitializer x) throws java.io.IOException
java.io.IOException
public void printStatementBlock(StatementBlock x) throws java.io.IOException
java.io.IOException
public void printBreak(Break x) throws java.io.IOException
java.io.IOException
public void printContinue(Continue x) throws java.io.IOException
java.io.IOException
public void printReturn(Return x) throws java.io.IOException
java.io.IOException
public void printThrow(Throw x) throws java.io.IOException
java.io.IOException
public void printDo(Do x) throws java.io.IOException
java.io.IOException
public void printDo(Do x, boolean includeBody) throws java.io.IOException
java.io.IOException
private static void removeChar(java.lang.StringBuffer sb, char c)
public void printEnhancedFor(EnhancedFor x) throws java.io.IOException
java.io.IOException
public void printEnhancedFor(EnhancedFor x, boolean includeBody) throws java.io.IOException
java.io.IOException
public void printFor(For x) throws java.io.IOException
java.io.IOException
public void printFor(For x, boolean includeBody) throws java.io.IOException
java.io.IOException
public void printWhile(While x) throws java.io.IOException
java.io.IOException
public void printWhile(While x, boolean includeBody) throws java.io.IOException
java.io.IOException
public void printIf(If x) throws java.io.IOException
java.io.IOException
public void printIf(If x, boolean includeBranches) throws java.io.IOException
java.io.IOException
public void printSwitch(Switch x) throws java.io.IOException
java.io.IOException
public void printSwitch(Switch x, boolean includeBranches) throws java.io.IOException
java.io.IOException
public void printTry(Try x) throws java.io.IOException
java.io.IOException
public void printLabeledStatement(LabeledStatement x) throws java.io.IOException
java.io.IOException
public void printMethodFrame(MethodFrame x) throws java.io.IOException
java.io.IOException
public void printCatchAllStatement(CatchAllStatement x) throws java.io.IOException
java.io.IOException
public void printMethodBodyStatement(MethodBodyStatement x) throws java.io.IOException
java.io.IOException
public void printSynchronizedBlock(SynchronizedBlock x) throws java.io.IOException
java.io.IOException
public void printLoopScopeBlock(LoopScopeBlock x) throws java.io.IOException
java.io.IOException
public void printImport(Import x) throws java.io.IOException
java.io.IOException
public void printExtends(Extends x) throws java.io.IOException
java.io.IOException
public void printImplements(Implements x) throws java.io.IOException
java.io.IOException
public void printVariableSpecification(VariableSpecification x) throws java.io.IOException
java.io.IOException
public void printBinaryAnd(BinaryAnd x) throws java.io.IOException
java.io.IOException
public void printBinaryAndAssignment(BinaryAndAssignment x) throws java.io.IOException
java.io.IOException
public void printBinaryOrAssignment(BinaryOrAssignment x) throws java.io.IOException
java.io.IOException
public void printBinaryXOrAssignment(BinaryXOrAssignment x) throws java.io.IOException
java.io.IOException
public void printCopyAssignment(CopyAssignment x) throws java.io.IOException
java.io.IOException
public void printDivideAssignment(DivideAssignment x) throws java.io.IOException
java.io.IOException
public void printMinusAssignment(MinusAssignment x) throws java.io.IOException
java.io.IOException
public void printModuloAssignment(ModuloAssignment x) throws java.io.IOException
java.io.IOException
public void printPlusAssignment(PlusAssignment x) throws java.io.IOException
java.io.IOException
public void printPostDecrement(PostDecrement x) throws java.io.IOException
java.io.IOException
public void printPostIncrement(PostIncrement x) throws java.io.IOException
java.io.IOException
public void printPreDecrement(PreDecrement x) throws java.io.IOException
java.io.IOException
public void printPreIncrement(PreIncrement x) throws java.io.IOException
java.io.IOException
public void printShiftLeftAssignment(ShiftLeftAssignment x) throws java.io.IOException
java.io.IOException
public void printShiftRightAssignment(ShiftRightAssignment x) throws java.io.IOException
java.io.IOException
public void printTimesAssignment(TimesAssignment x) throws java.io.IOException
java.io.IOException
public void printUnsignedShiftRightAssignment(UnsignedShiftRightAssignment x) throws java.io.IOException
java.io.IOException
public void printBinaryNot(BinaryNot x) throws java.io.IOException
java.io.IOException
public void printBinaryOr(BinaryOr x) throws java.io.IOException
java.io.IOException
public void printBinaryXOr(BinaryXOr x) throws java.io.IOException
java.io.IOException
public void printConditional(Conditional x) throws java.io.IOException
java.io.IOException
public void printDivide(Divide x) throws java.io.IOException
java.io.IOException
public void printEquals(Equals x) throws java.io.IOException
java.io.IOException
public void printGreaterOrEquals(GreaterOrEquals x) throws java.io.IOException
java.io.IOException
public void printGreaterThan(GreaterThan x) throws java.io.IOException
java.io.IOException
public void printLessOrEquals(LessOrEquals x) throws java.io.IOException
java.io.IOException
public void printLessThan(LessThan x) throws java.io.IOException
java.io.IOException
public void printNotEquals(NotEquals x) throws java.io.IOException
java.io.IOException
public void printNewArray(NewArray x) throws java.io.IOException
java.io.IOException
public void printInstanceof(Instanceof x) throws java.io.IOException
java.io.IOException
public void printExactInstanceof(ExactInstanceof x) throws java.io.IOException
java.io.IOException
public void printNew(New x) throws java.io.IOException
java.io.IOException
public void printTypeCast(TypeCast x) throws java.io.IOException
java.io.IOException
public void printLogicalAnd(LogicalAnd x) throws java.io.IOException
java.io.IOException
public void printLogicalNot(LogicalNot x) throws java.io.IOException
java.io.IOException
public void printLogicalOr(LogicalOr x) throws java.io.IOException
java.io.IOException
public void printMinus(Minus x) throws java.io.IOException
java.io.IOException
public void printModulo(Modulo x) throws java.io.IOException
java.io.IOException
public void printNegative(Negative x) throws java.io.IOException
java.io.IOException
public void printPlus(Plus x) throws java.io.IOException
java.io.IOException
public void printPositive(Positive x) throws java.io.IOException
java.io.IOException
public void printShiftLeft(ShiftLeft x) throws java.io.IOException
java.io.IOException
public void printShiftRight(ShiftRight x) throws java.io.IOException
java.io.IOException
public void printTimes(Times x) throws java.io.IOException
java.io.IOException
public void printUnsignedShiftRight(UnsignedShiftRight x) throws java.io.IOException
java.io.IOException
public void printArrayReference(ArrayReference x) throws java.io.IOException
java.io.IOException
public void printMetaClassReference(MetaClassReference x) throws java.io.IOException
java.io.IOException
public void printMethodReference(MethodReference x) throws java.io.IOException
java.io.IOException
protected void printMethodReference(MethodReference x, boolean withSemicolon) throws java.io.IOException
java.io.IOException
public void printMethod(IProgramMethod x) throws java.io.IOException
java.io.IOException
public void printFullMethodSignature(IProgramMethod x) throws java.io.IOException
java.io.IOException
protected void writeFullMethodSignature(IProgramMethod x) throws java.io.IOException
java.io.IOException
public void printExecutionContext(ExecutionContext x) throws java.io.IOException
java.io.IOException
public void printSuperConstructorReference(SuperConstructorReference x) throws java.io.IOException
java.io.IOException
public void printThisConstructorReference(ThisConstructorReference x) throws java.io.IOException
java.io.IOException
public void printSuperReference(SuperReference x) throws java.io.IOException
java.io.IOException
public void printThisReference(ThisReference x) throws java.io.IOException
java.io.IOException
public void printArrayLengthReference(ArrayLengthReference x) throws java.io.IOException
java.io.IOException
public void printThen(Then x) throws java.io.IOException
java.io.IOException
public void printElse(Else x) throws java.io.IOException
java.io.IOException
public void printCase(Case x) throws java.io.IOException
java.io.IOException
public void printCatch(Catch x) throws java.io.IOException
java.io.IOException
public void printDefault(Default x) throws java.io.IOException
java.io.IOException
public void printFinally(Finally x) throws java.io.IOException
java.io.IOException
public void printModifier(Modifier x) throws java.io.IOException
java.io.IOException
public void printSchemaVariable(SchemaVariable x) throws java.io.IOException
java.io.IOException
public void printEmptyStatement(EmptyStatement x) throws java.io.IOException
java.io.IOException
public void printComment(Comment x) throws java.io.IOException
java.io.IOException
public void printParenthesizedExpression(ParenthesizedExpression x) throws java.io.IOException
java.io.IOException
public void printPassiveExpression(PassiveExpression x) throws java.io.IOException
java.io.IOException
public void printTransactionStatement(TransactionStatement x) throws java.io.IOException
java.io.IOException
public void printEmptyMapLiteral(EmptyMapLiteral x) throws java.io.IOException
java.io.IOException