| Pretty |  | 0% |  | 0% | 213 | 213 | 582 | 582 | 76 | 76 | 1 | 1 |
| TreeMaker |  | 0% |  | 0% | 140 | 140 | 288 | 288 | 88 | 88 | 1 | 1 |
| TreeTranslator |  | 0% |  | 0% | 65 | 65 | 209 | 209 | 57 | 57 | 1 | 1 |
| TreeInfo |  | 0% |  | 0% | 112 | 112 | 182 | 182 | 29 | 29 | 1 | 1 |
| TreeScanner |  | 0% |  | 0% | 59 | 59 | 144 | 144 | 53 | 53 | 1 | 1 |
| Tree.Visitor |  | 0% |  | 0% | 53 | 53 | 50 | 50 | 51 | 51 | 1 | 1 |
| TreeMaker.AnnotationBuilder |  | 0% |  | 0% | 11 | 11 | 20 | 20 | 10 | 10 | 1 | 1 |
| TreeInfo.new TreeScanner() {...} |  | 0% |  | 0% | 12 | 12 | 17 | 17 | 6 | 6 | 1 | 1 |
| Tree.TopLevel |  | 0% | | n/a | 2 | 2 | 12 | 12 | 2 | 2 | 1 | 1 |
| Tree.MethodDef |  | 0% | | n/a | 2 | 2 | 12 | 12 | 2 | 2 | 1 | 1 |
| Tree |  | 0% | | n/a | 4 | 4 | 10 | 10 | 4 | 4 | 1 | 1 |
| Pretty.new TreeScanner() {...} |  | 0% |  | 0% | 6 | 6 | 6 | 6 | 3 | 3 | 1 | 1 |
| Tree.ClassDef |  | 0% | | n/a | 2 | 2 | 10 | 10 | 2 | 2 | 1 | 1 |
| Tree.NewClass |  | 0% | | n/a | 2 | 2 | 8 | 8 | 2 | 2 | 1 | 1 |
| Tree.VarDef |  | 0% | | n/a | 2 | 2 | 8 | 8 | 2 | 2 | 1 | 1 |
| Tree.ForLoop |  | 0% | | n/a | 2 | 2 | 7 | 7 | 2 | 2 | 1 | 1 |
| Tree.Block | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.Conditional | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.NewArray | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.If | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.Binary | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.Apply | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.Select | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.ForeachLoop | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.Try | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.Assignop | | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| Tree.TypeArgument | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.WhileLoop | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Labelled | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.LetExpr | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Ident | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Modifiers | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.DoLoop | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Annotation | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Synchronized | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Case | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Break | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Literal | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Continue | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Import | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.TypeCast | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Assert | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Assign | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Catch | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Indexed | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.Switch | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.TypeApply | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.TypeParameter | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.TypeTest | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| Tree.TypeIdent | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.Throw | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.Parens | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.TypeBoundKind | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.Unary | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.Return | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.Exec | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.TypeArray | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Tree.Erroneous | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| Tree.Skip | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |