prettyprinter std of java is auxillary package "lang.java.ppstd"; *x!0 -> "..."; par:*x -> [ "(" *x ")"]; compilationUnit(none(),*y,*z) -> [ *y *z]; compilationUnit(*x,*y,*z) -> [ pck:*x *y *z]; pck:*x -> [ "package" *x ";"]; type:*x -> [ in class=type : *x]; modif:*x -> [ in class=modif : *x]; importDeclarations[**x] -> [ ( [ "import" [ **x ";"]])]; typeDeclarations[**x] -> [ ( **x ) ]; semi:typeDeclarations[**x] -> [ ( semi:**x ) ]; semi:fieldDeclarations[**x] -> [ "" [ ( semi:**x ) ]]; modifiers[**x] -> [ ( **x ) ]; classDeclaration(modifiers[],*y,none(),typeNames[],fieldDeclarations[]) -> [ "class" type:*y "{}" ]; classDeclaration(*x,*y,none(),typeNames[],fieldDeclarations[]) -> [ modif:*x "class" type:*y "{}" ]; classDeclaration(modifiers[],*y,none(),*t,fieldDeclarations[]) -> [ "class" type:*y "implements" *t "{}" ]; classDeclaration(*x,*y,none(),*t,fieldDeclarations[]) -> [ modif:*x "class" type:*y "implements" type:*t "{}" ]; classDeclaration(modifiers[],*y,*z,typeNames[],fieldDeclarations[]) -> [ "class" type:*y "extends" type:*z "{}" ]; classDeclaration(*x,*y,*z,typeNames[],fieldDeclarations[]) -> [ modif:*x "class" type:*y "extends" type:*z "{}" ]; classDeclaration(modifiers[],*y,*z,*t,fieldDeclarations[]) -> [ "class" type:*y "extends" type:*z "implements" type:*t "{}" ]; classDeclaration(*x,*y,*z,*t,fieldDeclarations[]) -> [ modif:*x "class" type:*y "extends" type:*z "implements" type:*t "{}" ]; classDeclaration(modifiers[],*y,none(),typeNames[],*u) -> [ [ "class" type:*y "{" ] semi:*u "}" ]; classDeclaration(*x,*y,none(),typeNames[],*u) -> [ [ modif:*x "class" type:*y "{" ] semi:*u "}" ]; classDeclaration(modifiers[],*y,none(),*t,*u) -> [ [ "class" type:*y "implements" type:*t "{" ] semi:*u "}" ]; classDeclaration(*x,*y,none(),*t,*u) -> [ [ modif:*x "class" type:*y "implements" type:*t "{" ] semi:*u "}" ]; classDeclaration(modifiers[],*y,*z,typeNames[],*u) -> [ [ "class" type:*y "extends" type:*z "{" ] semi:*u "}" ]; classDeclaration(*x,*y,*z,typeNames[],*u) -> [ [ modif:*x "class" type:*y "extends" type:*z "{" ] semi:*u "}" ]; classDeclaration(modifiers[],*y,*z,*t,*u) -> [ [ "class" type:*y "extends" type:*z "implements" type:*t "{"] semi:*u "}" ]; classDeclaration(*x,*y,*z,*t,*u) -> [ [ modif:*x "class" type:*y "extends" type:*z "implements" type:*t "{"] semi:*u "}" ]; interfaceDeclaration(modifiers[],*y,typeNames[],*t) -> [ [ "interface" *y "{"] semi:*t "}" ]; interfaceDeclaration(modifiers[],*y,*z,*t) -> [ [ "interface" *y "extends" type:*z "{"] semi:*t "}" ]; interfaceDeclaration(*x,*y,typeNames[],*t) -> [ [ modif:*x "interface" *y "{"] semi:*t "}" ]; interfaceDeclaration(*x,*y,*z,*t) -> [ [ modif:*x "interface" *y "extends" type:*z "{"] semi:*t "}" ]; semi:interfaceFieldDeclarations[**x] -> [ "" [ (semi:**x)]]; semi:methodDeclaration(modifiers[],*z,*t,typeNames[],none()) -> [ [ type:*z *t] ";"] ; semi:methodDeclaration(modifiers[],*z,*t,typeNames[],block[]) -> [ [ type:*z *t] "{};"] ; semi:methodDeclaration(*x,*z,*t,typeNames[],none()) -> [ [ modif:*x type:*z *t] ";"] ; semi:methodDeclaration(*x,*z,*t,typeNames[],block[]) -> [ [ modif:*x type:*z *t] "{};"] ; semi:methodDeclaration(modifiers[],*z,*t,typeNames[],*v) -> [ [ type:*z *t "{"] [ "" semi:*v] "}"]; semi:methodDeclaration(*x,*z,*t,typeNames[],*v) -> [ [ modif:*x type:*z *t "{"] [ "" semi:*v] "}"]; semi:methodDeclaration(modifiers[],*z,*t,*u,none()) -> [ [ type:*z *t "throws" *u] ";"]; semi:methodDeclaration(modifiers[],*z,*t,*u,block[]) -> [ [ type:*z *t "throws" *u] "{};"]; semi:methodDeclaration(*x,*z,*t,*u,none()) -> [ [ modif:*x type:*z *t "throws" *u] ";"]; semi:methodDeclaration(*x,*z,*t,*u,block[]) -> [ [ modif:*x type:*z *t "throws" *u] "{};"]; semi:methodDeclaration(modifiers[],*z,*t,*u,*v) -> [ [ type:*z *t "throws" *u "{" ] [ "" semi:*v] "}"]; semi:methodDeclaration(*x,*z,*t,*u,*v) -> [ [ modif:*x type:*z *t "throws" *u "{" ] [ "" semi:*v] "}"]; semi:constructorDeclaration(modifiers[],*t,typeNames[],none()) -> [ [ *t] ";"] ; semi:constructorDeclaration(*x,*t,typeNames[],none()) -> [ [ modif:*x *t] ";"] ; semi:constructorDeclaration(modifiers[],*t,typeNames[],*v) -> [ [ *t "{"] [ "" semi:*v] "}"]; semi:constructorDeclaration(*x,*t,typeNames[],*v) -> [ [ modif:*x *t "{"] [ "" semi:*v] "}"]; semi:constructorDeclaration(modifiers[],*t,*u,none()) -> [ [ *t "throws" *u] ";"]; semi:constructorDeclaration(*x,*t,*u,none()) -> [ [ modif:*x *t "throws" *u] ";"]; semi:constructorDeclaration(modifiers[],*t,*u,*v) -> [ [ *t "throws" *u "{"] [ "" semi:*v] "}"]; semi:constructorDeclaration(*x,*t,*u,*v) -> [ [ modif:*x *t "throws" *u "{"] [ "" semi:*v] "}"]; fieldVariableDeclaration(modifiers[],*y,*z) -> [ type:*y *z]; fieldVariableDeclaration(*x,*y,*z) -> [ modif:*x type:*y *z]; localVariableDeclaration(none(),*y,*z) -> [ type:*y *z]; localVariableDeclaration(*x,*y,*z) -> [ "final" type:*y *z]; variableDeclarators[*x] -> *x; variableDeclarators[**x,*y] -> [ ( **x ",") *y]; typeNames[**x,*y] -> [ ( **x ",") *y]; identifier *x -> identitypp(*x); onDemand(*x) -> [ *x ".*"]; methodDeclarator(*x,*y) -> [ *x *y ]; constructor(*x,*y) -> [ in class=type :*x *y ]; parameters[] -> "()"; parameters[*x] -> [ "(" *x ")"]; parameters[**x,*y] -> [ "(" [ ( [ **x ","] ) *y] ")"]; parameter(none(),*x,*y) -> [ type:*x *y]; parameter(final(),*x,*y) -> [ "final" type:*x *y]; arrayof(*x) -> [ *x "[]" ]; array(*x)->[ *x "[]" ]; arrayInitializer[]->"{}"; arrayInitializer[*x]->[ "{" *x "}"]; arrayInitializer[**x,*y]->[ "{" ( **x ",") *y "}"]; initializedVariable(*x,*y) -> [ *x "=" *y]; block[**x] -> [ ( [ **x] )]; catches[**x] -> [ ( [ **x] )]; semi:block[**x] -> [ ( semi:**x )]; semi:catches[**x] -> [ ( semi:**x )]; ns:block[**x] -> [ ( **x )]; ns:catches[**x] -> [ ( **x )]; ns:*x -> *x; *t as binary(*x,*y,*z) -> [ if leftp(*t,*x) then par:*x else *x end *y if rightp(*t,*z) then par:*z else *z end]; cond(*x,*y,*z)->[ "(" *x ")" "?" *y ":" *z]; instanceof(*x,*y) -> [ *x "instanceof" *y]; semi:synchro(*x,block[**y]) -> [ [ "synchronized" [ "(" *x ")"] "{"] [ "" [ ( semi:**y )]] "}"]; assignment() -> "="; minusAssignment() -> "-="; plusAssignment() -> "+="; timesAssignment() -> "*="; divAssignment() -> "/="; modAssignment() -> "%="; rightShiftAssignment() -> ">>="; unsignedRightShiftAssignment() -> ">>>="; leftShiftAssignment() -> "<<="; andAssignment() -> "&="; xorAssignment() -> "^="; iorAssignment() -> "!="; leftShift() -> "<<"; rightShift() -> ">>"; unsignedRightShift() -> ">>>"; neq() -> "!="; eq() -> "=="; minus() -> "-"; plus() -> "+"; land() -> "&&"; times() -> "*"; mod() -> "*"; div() -> "/"; and() -> "&"; lor() -> "||"; ior() -> "|"; xor() -> "^"; not() -> "!"; complement() -> "~"; less() -> "<"; lessEq() -> "<="; gtr() -> ">"; gtrEq() -> ">="; decr() -> "--"; incr() -> "++"; *z as postfix(*x,*y) -> [ *x if unip(*z,*y) then par:*y else *y end ]; *z as prefix(*x,*y) -> [ *x if unip(*z,*y) then par:*y else *y end ]; *z as unary(*x,*y) -> [ *x if unip(*z,*y) then par:*y else *y end ]; *z as cast(*x,*y) -> [ "(" *x ")" if unip(*z,*y) then par:*y else *y end ]; integer *x -> identitypp(*x); linteger *x -> identitypp(*x); string *x -> stringpp(*x); character *x -> identitypp(*x); floating *x -> identitypp(*x); hexa *x -> identitypp(*x); superInvocation(*x) -> [ "super" *x]; thisInvocation(*x) -> [ "this" *x]; call(*x,*y) -> [ *x *y]; newObject(*x,*y,*z,fieldDeclarations[])->[ "new" [ type:*y *z]]; newObject(*x,*y,*z,*t)->[ "new" [ [ type:*y *z "{"] semi:*t "}"]]; newArray(*x,*y)->[ "new" [ type:*x *y]]; newDim(*x,*y,dims[],arrayInitializer[])-> [ "new" [ type:*x *y]]; newDim(*x,*y,dims[],*z)-> [ "new" [ type:*x *y *z]]; newDim(*x,*y,*z,arrayInitializer[])-> [ "new" [ type:*x *y *z]]; newDim(*x,*y,*z,*t)-> [ "new" [ type:*x *y *z *t]]; dims:dim() -> "[]"; dims:*x -> [ "[" *x "]"]; dims[**x] -> [ (dims:**x)]; index(*x,*y) -> [ *x "[" *y "]"]; access(*x,*y) -> [ *x "." *y]; return(none()) -> "return"; return(*x) -> [ "return" *x]; expressions[] -> "()"; expressions[*x] -> [ "(" *x ")"]; expressions[**x,*y] -> [ "(" (**x ",") *y ")"]; np:none() -> ""; np:expressions[] -> ""; np:expressions[**x,*y] -> [ (**x ",") *y]; np:*x -> *x; semi:try(block[**x],catches[],*y) -> [ "try {" [ "" [ ( semi:**x )]] "}" "finally {" [ "" *y] "}"]; semi:try(*x,catches[],*y) -> [ "try" [ "" *x] "finally {" [ "" *y] "}"]; semi:try(block[**x],*y,none()) -> [ "try {" [ "" [ ( semi:**x )]] "}" ns:*y]; semi:try(*x,*y,none()) -> [ "try" [ "" *x] ns:*y]; semi:try(block[**x],*y,*z) -> [ "try {" [ "" [ ( semi:**x )]] "}" ns:*y "}" "finally {" [ "" *z] "}"]; semi:try(*x,*y,*z) -> [ "try" [ "" *x] ns:*y "finally {" [ "" *z] "}"]; catch(*x,block[]) -> [ "catch" "(" *x ") {}"]; catch(*x,block[**x]) -> [ [ "catch" "(" *x ") {"] [ "" [ (semi:**x )]] "}"]; catch(*x,*y) -> [ [ "catch" "(" *x ")"] [ "" *y]]; throw(*x) -> [ "throw" *x]; semi:if(*x,block[**y],none()) -> [ [ "if" [ "(" *x ")"] "{"] [ "" [ ( semi:**y )]] "}"]; semi:if(*x,*y,none()) -> [ [ "if" [ "(" *x ")"]] [ "" semi:*y]]; semi:if(*x,block[**y],*z) -> [ [ "if" [ "(" *x ")"] "{"] [ "" [ ( semi:**y )]] "}else{" [ "" semi:*z] "}"]; semi:if(*x,*y,block[**z]) -> [ [ "if" [ "(" *x ")"]] [ "" semi:*y] "else{" [ "" [ ( semi:**z )]] "}"]; semi:if(*x,*y,*z) -> [ [ "if" [ "(" *x ")"]] [ "" semi:*y] "else" [ "" semi:*z] ]; semi:while(*x,block[**y]) -> [ [ "while" [ "(" *x ")"] "{"] [ "" [ ( semi:**y )]] "}"]; semi:while(*x,*y) -> [ [ "while" [ "(" *x ")"] ] [ "" semi:*y]]; semi:do(block[**x],*y) -> [ [ "do" "{"] [ "" [ ( semi:**x )]] [ "}" "while" [ "(" *y ");"]]] ; semi:do(*x,*y) -> [ [ "do" semi:*x] [ "while" [ "(" *y ");"]]] ; semi:for(*x,*y,*z,block[]) -> [ "for" [ "(" np:*x ";" np:*y ";" np:*z ")"] "{}"]; semi:for(*x,*y,*z,block[**t]) -> [ [ "for" [ "(" np:*x ";" np:*y ";" np:*z ")"] "{"] [ "" [ ( semi:**t )]] "}"] ; semi:for(*x,*y,*z,*t) -> [ [ "for" [ "(" np:*x ";" np:*y ";" np:*z ")"]] [ "" semi:*t]]; semi:case(*x,block[**y]) -> [ [ "case" [ *x ":"] "{"] [ "" [ ( semi:**y )]] "}"]; semi:case(*x,*y) -> [ [ "case" [ *x ":"]] [ "" semi:*y ]]; semi:default(*x) -> [ [ "default" ":"] [ "" semi:*x ]]; semi:switch(*x,*y) -> [ [ "switch" [ "(" *x ")"] "{"] semi:*y "}"]; semi:label(*x,*y) -> [ [ *x ":"] semi:*y]; semi:*x -> [ *x ";"]; break(none()) -> "break"; break(*x) -> [ "break" *x]; continue(none()) -> "continue"; continue(*x) -> [ "continue" *x]; none() -> ""; arrayMethodDeclarator(*a) -> [ *a "[" "]"]; staticInitializer(*x) -> [ "static {" [ "" semi:*x] "}"]; instanceInitializer(*block) -> [ "{" [ "" semi:*block] "}"]; void() -> "void"; null() -> "null"; abstract() -> "abstract"; final() -> "final"; native() -> "native"; private() -> "private"; protected() -> "protected"; public() -> "public"; static() -> "static"; synchronized() -> "synchronized"; transient() -> "transient"; volatile() -> "volatile"; end prettyprinter