University of Belgrade
Department for Computer Science

PLATO

Programming languages and tools

Language-INvariant Abstract Syntax Trees (LINVAST)

Motivation

Multilingual software systems and the modernization of legacy code require tools for static analysis, transformation, and migration across languages. Abstract syntax tree (AST) representations contain language-specific constructs that obstruct the reuse of program analysis and transformation logic.

Language-invariant AST

LINVAST is a library suite that maps ANTLR parse trees into a common AST model for imperative language constructs, with APIs that support traversal, structural comparison, transformation, and serialization of common ASTs. LINVAST currently implements support for C, Lua, Java, Go, Kotlin and Python, and includes command-line tools and an interactive web AST visualizer.

Download

LINVAST is open-sourced on GitHub and available as a NuGet package with over 15000 cumulative downloads. The initial LINVAST prototype is published in 2025 (Ristović, 2025).

References

  • Ivan Ristović: LINVAST Infrastructure for Language-Invariant Abstract Syntax Trees. Journal of Information Technology and Multimedia Systems — Info M, 25(81/82), 47–54, 2025.