Java 1-21 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities.
-
Updated
Nov 12, 2025 - Java
A grammar describes the syntax of a programming language, and might be defined in Backus-Naur form (BNF). A lexer performs lexical analysis, turning text into tokens. A parser takes tokens and builds a data structure like an abstract syntax tree (AST). The parser is concerned with context: does the sequence of tokens fit the grammar? A compiler is a combined lexer and parser, built for a specific grammar.
Java 1-21 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities.
Automated mass refactoring of source code.
Spoon is a metaprogramming library to analyze and transform Java source code. 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.
Error Prone extensions: extra bug checkers and a large battery of Refaster rules.
How to write interpreters or dynamic compilers for dynamically typed languages on top of the JVM
JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern
A tool for applying transformations to Java sources
A powerful Java library for parsing, simplifying, and analyzing mathematical expressions with automatic function type identification using Abstract Syntax Tree (AST) concepts.
Astra: a Java tool for analysing and refactoring Java source code
gMark is a domain- and query language-independent query workload generator and query language utility library.
Using JavaParser (https://github.com/JavaParser/JavaParser), browse and navigate the Abstract Syntax Tree (AST) based on the code in your editor.
Identify algorithmic structures in source code using Abstract Syntax Trees (ASTs) and a CodeBERTa-based classifier. Combines syntactic analysis with transformer embeddings for structure classification from small datasets.
A very small and versatile parser used to evaluate simple expressions
A custom programming language with variables, expressions, control flow, and interpreter execution — built using ANTLR4 and Java.
A Java implementation of a Pratt parser for parsing mathematical expressions with proper operator precedence and associativity.