strict digraph { JAIF [shape=box] Java [shape=box] "Annotated Java" [shape=box] "Augmented AST" [style=bold] Source [constraint=false] JAIF -> Scene Scene -> "Annotations\nw/ AST Paths" [style=bold] Java -> Source Source -> AST AST -> "Augmented AST" [style=bold] Source -> "Augmented AST" [style=bold] "Augmented AST" -> "Annotated AAST" [style=bold] "Augmented AST" -> "Annotations\nw/ AST Paths" [style=bold] "Annotation\nSpecifications" -> "Annotations\nw/ AST Paths" [style=dashed] "Annotation\nSpecifications" -> "Annotations w/\nCode Locations" [style=dashed] "Annotations\nw/ AST Paths" -> "Annotated AAST" "Annotated AAST" -> "Annotated Java" Source -> Bytecode Bytecode -> "Annotated AAST" Source -> "Annotated AAST" [style=dashed] Source -> "Annotated Java" [style=dashed] AST -> "Annotated AAST" [style=dashed] AST -> "Annotations\nw/ AST Paths" [style=dashed] "Annotations w/\nCode Locations" -> "Annotated AAST" [style=dashed] Scene -> "Annotation\nSpecifications" [style=dashed] }