IntelliJ Platform Plugin SDK
 
IntelliJ Platform Explorer

UAST – Unified Abstract Syntax Tree

Edit pageLast modified: 13 November 2024

UAST (Unified Abstract Syntax Tree) is an abstraction layer on the PSI of different programming languages targeting the JVM (Java Virtual Machine). It provides a unified API for working with common language elements like classes and method declarations, literal values, and control flow operators.

Different JVM languages have their own PSI, but many IDE features like inspections, gutter markers, reference injection, and many others work the same way for all these languages. Using UAST allows providing features that will work across all supported JVM languages using a single implementation.

Presentation Writing IntelliJ Plugins for Kotlin offers a thorough overview of using UAST in real-world scenarios. See also the AST/UAST section from the Android Lint API Guide.