script. The edit script directly refers to the AST of the code. For instance, an edit action may result in the addition of a new AST node representing a function. Clone detection An AST is a powerful abstraction to perform code clone detection. See also Abstract semantic graph (ASG), also called term graph Composite pattern Control-flow graph Directed acyclic graph (DAG) Document Object Model (DOM) Expression tree Extended Backus–Naur form Lisp, a family of languages written in trees, with macros to manipulate code trees Parse tree, also known as concrete syntax tree Semantic resolution tree (SRT) Shunting-yard algorithm Symbol table TreeDL References Further reading (overview of AST implementation in various language families) External links AST View: an Eclipse plugin to visualize a Java abstract syntax tree eli project: Abstract Syntax Tree Unparsing (OMG standard). JavaParser: The JavaParser library provides you with an Abstract Syntax Tree of your Java code. The AST structure then allows you to work with your Java code in an easy programmatic way. Spoon: A library to analyze, transform, rewrite, and transpile Java source code. It parses source files to build a well-designed AST with powerful analysis and transformation API. Trees (data structures) Formal languages