18 Repos
Standardized structures for representing source code syntax in a tree format for analysis.
Distinguishing note: Focuses on the structural specification of syntax trees rather than the parsing logic itself.
Explore 18 awesome GitHub repositories matching software engineering & architecture · Abstract Syntax Tree Specifications. Refine with filters or upvote what's useful.
This project is a static analysis engine designed to identify patterns, enforce coding standards, and automate code quality improvements in software projects. By parsing source code into structured abstract syntax trees, it enables deep programmatic inspection and the automated remediation of identified programming issues. The engine functions as a pluggable linting framework, allowing developers to extend its core capabilities through a modular architecture. Users can inject custom rules, parsers, and processors to support non-standard file formats or domain-specific logic. This extensibilit
Implement tree structures following standard specifications, including location and range properties for every node to ensure compatibility with core analysis rules.
Biome is a unified developer tooling suite that provides code formatting, linting, and static analysis for JavaScript and TypeScript projects. It functions as a command-line interface designed to automate the maintenance of code quality and style consistency throughout the development lifecycle. The tool distinguishes itself through a high-performance engine built in Rust, which utilizes a single-pass abstract syntax tree to perform formatting and linting simultaneously. By leveraging parallel multi-threaded execution and incremental file system caching, it minimizes latency during analysis t
Utilizes a unified single-pass abstract syntax tree to perform linting and formatting simultaneously.
GraalVM is a polyglot virtual machine and high-performance runtime designed to execute multiple programming languages within a single environment. It functions as a JVM language toolkit for building language implementations, a native image compiler for transforming bytecode into standalone binaries, and an execution environment for LLVM bitcode and WebAssembly modules. The project is distinguished by its polyglot interoperability framework, which allows different languages to share data and execution state with low overhead. It utilizes self-modifying abstract syntax trees to optimize languag
Uses self-modifying abstract syntax trees to optimize language interpreters into high-performance machine code.
This project is the JavaScript reference implementation of the GraphQL specification. It provides a query engine and schema parser designed to parse, validate, and execute queries to retrieve or mutate data based on a defined schema. The implementation includes a framework for mapping codebase structures to a strongly typed system and a tool for converting query strings into abstract syntax trees for programmatic analysis. The library covers the full surface of GraphQL API implementation, including schema definition, language parsing, and query validation. It provides the necessary infrastru
Implements a recursive execution engine that traverses the query AST to resolve data.
The IntelliJ Platform is a modular framework designed for building desktop integrated development environments. It provides the core infrastructure necessary to create specialized coding tools, including a virtual file system for tracking project sources, a text editor, and a cross-platform graphical user interface framework. The platform distinguishes itself through a component-based architecture that allows developers to extend core application behavior via independent functional units. It supports the creation of custom development environments by integrating language analysis logic, enabl
Provides a persistent database of code structures for rapid navigation and cross-referencing across large projects.
PHP-Parser is a tool that converts PHP source code into an abstract syntax tree for static analysis and programmatic manipulation. It functions as a parser, a code generator, and a static analysis framework. The project enables the programmatic construction of abstract syntax tree nodes through a fluent interface and provides the ability to transform these trees back into formatted source code. It includes a serializer that exports abstract syntax trees to JSON format and reconstructs them from strings. The toolset covers several capability areas, including namespace resolution, constant exp
Provides a standardized internal representation of PHP source code as a hierarchy of linguistic construct nodes.
This project is a desktop application designed for the reverse engineering and inspection of compiled Java code. It functions as a graphical interface that translates Java bytecode back into readable source code, allowing users to examine the internal logic of class files and archives when original source files are unavailable. The tool provides a structured environment for navigating complex file hierarchies, including nested archives like JAR and WAR files. By maintaining an in-memory representation of loaded classes, it enables rapid searching and cross-referencing of code elements. The ap
Constructs intermediate tree representations from bytecode to facilitate structural analysis and logical flow reconstruction.
This repository contains the design specifications for WebAssembly, serving as a technical standard for portable low-level code. It defines the binary format, instruction set, and execution semantics required to ensure consistent behavior across different hardware platforms. The project establishes the framework for a language compilation target, detailing the requirements for translating high-level programming languages into a low-level binary format. It includes a security model that defines operational rules and safety goals for executing untrusted binary code. The specifications cover th
Provides the formal structural specification for representing syntax trees used in the binary instruction set translation.
Crafting Interpreters is a comprehensive resource for building a complete programming language from scratch. It provides a structured guide to the fundamental components of language implementation, including lexing, parsing, and the design of execution engines. The project demonstrates two distinct approaches to language execution: a tree-walking interpreter that evaluates source code by traversing its abstract syntax structure, and a stack-based virtual machine that compiles code into custom bytecode for execution. These implementations are supported by core runtime mechanisms such as lexica
Evaluates source code by traversing the abstract syntax tree directly to execute logic.
Remark ist ein Markdown-Prozessor, der Markdown-Text in einen strukturierten JSON-Abstrakten Syntaxbaum (AST) für die programmatische Analyse und Transformation parst. Er fungiert als Markdown-AST-Parser und -Prozessor und nutzt ein Plugin-Framework zur Verwaltung erweiterbarer Syntax- und Transformationsregeln. Das Projekt ermöglicht benutzerdefinierte Markdown-Syntaxerweiterungen und Inhaltstransformationen durch ein Plugin-System, das das Hinzufügen von nicht-standardisiertem Markup und Metadaten erlaubt. Es enthält zudem einen Markdown-Linter, um Stil-Inkonsistenzen zu identifizieren und die Einhaltung von Schreibstandards sicherzustellen. Das Toolset deckt die Formatierung von Markdown-Dokumenten, die Konvertierung in HTML und die AST-Generierung ab. Eine Kommandozeilenschnittstelle wird bereitgestellt, um Markdown-Dateien auf eine konsistente projektweite Formatierung zu prüfen und diese anzupassen.
Adheres to a standardized JSON schema for representing markdown syntax trees to ensure tool compatibility.
Otto is a Go implementation of a JavaScript interpreter and embedded scripting engine. It provides a runtime environment for executing JavaScript code within native applications and includes a parser that converts source code into an abstract syntax tree for analysis and processing. The project enables the creation of custom scripting interfaces by binding native Go functions into the JavaScript global scope. It also includes a utility to translate JavaScript regular expression patterns into compatible formats for other programming languages. The engine supports safe script sandboxing throug
Implements an execution engine that evaluates JavaScript by directly traversing its abstract syntax tree.
MobX State Tree is a structured, tree-based state management library for JavaScript applications that combines typed model definitions with reactive snapshots and patch-based change tracking. It provides a reactive state container with runtime and compile-time type safety, where application state is defined as a tree of typed models with collocated actions, computed views, and lifecycle hooks for predictable state mutations. The library is built around an action-centric mutation model that encapsulates all state changes within named functions that directly modify the tree, supported by genera
Ships a walk function that visits every node in the state tree with a user-provided callback.
Regulex is a tool that parses regular expressions into interactive syntax diagrams, rendering them directly on an HTML canvas. It converts a regex string into an abstract syntax tree and visualizes the structure as a navigable diagram, making the internal logic of a regular expression visually accessible. Beyond basic visualization, Regulex provides syntax validation that detects and reports precise errors, including invalid back references and octal escapes. It also offers a state-machine visualization mode that maps regex AST nodes to NFA-like states and transitions, rendered as a directed
Evaluates regex behavior by walking the AST at runtime, simulating match execution.
ESTree ist ein formales Schema und eine Reihe von Objektschnittstellen, die verwendet werden, um JavaScript-Quellcode als standardisierten abstrakten Syntaxbaum darzustellen. Es dient als gemeinsames Baumformat und Parser-Standard, um die Interoperabilität zwischen verschiedenen JavaScript-Parsern und Transformations-Tools sicherzustellen. Die Spezifikation bietet eine konsistente Möglichkeit, Sprachkonstrukte zu modellieren, einschließlich Statements, Ausdrücken und Moduldeklarationen. Sie enthält detaillierte Repräsentationen für moderne Sprachfunktionen wie Klassen, private Identifikatoren und Kurzschlusslogik wie Nullish Coalescing und Optional Chaining. Das Projekt deckt ein breites Spektrum an Sprach-Tooling ab, einschließlich der Modellierung von Modulsystemen mit dynamischen Importen und Export-Aliasing, der Handhabung großer Ganzzahl-Literale und der Unterstützung experimenteller Syntaxerweiterungen für Sprachvorschläge im Frühstadium. Zudem definiert es, wie Baumknoten auf ursprüngliche Quellkoordinaten für eine präzise Standortverfolgung abgebildet werden. Dieses standardisierte Modell erleichtert die statische Codeanalyse, die automatisierte Quellcode-Transformation und die allgemeine Interoperabilität von Compiler-Tools.
Defines a formal standardized structure for representing JavaScript source code syntax in a tree format.
This project is a C language interpreter and a practical implementation of a programming language. It parses and executes C source code directly, removing the requirement for a separate compilation step. The interpreter is designed for self-hosting, meaning it is capable of interpreting its own source code to demonstrate recursive language processing and execution. The system covers the primary stages of language processing, including lexical analysis, recursive descent parsing, and tree-walk interpretation using an abstract syntax tree. It manages memory and scope through a dynamic symbol t
Evaluates programs by walking an abstract syntax tree at runtime, managing memory and scope through a dynamic symbol table.
NullAway ist ein statisches Analysetool für Java und ein Build-Time-Detektor, der darauf ausgelegt ist, Null-Pointer-Risiken zu identifizieren. Es fungiert als Nullability-Checker, der Annotationen verwendet, um zu verifizieren, dass Referenzen nicht null sind, bevor sie dereferenziert werden, wodurch Laufzeitabstürze verhindert werden. Der Analysator implementiert den JSpecify-Standard, um konsistente Nullability-Annotationen über verschiedene Java-Bibliotheken hinweg sicherzustellen. Er zeichnet sich durch die Verwendung eines Service-Provider-Interfaces aus, um das Nullability-Verhalten von Drittanbieter-Bibliotheken ohne Quellcode-Annotationen zu modellieren, und bietet spezialisierte Unterstützung für Lombok-generierten Code. Das Tool deckt ein breites Spektrum an Funktionen zur Sicherheitsdurchsetzung ab, einschließlich der Validierung von Java-API-Verträgen für Methoden-Overrides und der Erkennung des Abrufs leerer Optional-Werte. Die Analyseoberfläche erstreckt sich auf die Nullability-Markierung auf Paketebene und die Möglichkeit, generierten Quellcode von der Analyse auszuschließen.
Recognizes common Lombok annotations to maintain compatibility with in-memory modifications of the abstract syntax tree.
The Common Expression Language specification is a formal standard for a non-Turing-complete expression language designed for safe, portable, and fast logic evaluation. It serves as a cross-language logic standard and a declarative policy language, providing a consistent semantic framework for executing boolean expressions and data transformations across different programming environments. This specification acts as an embedded expression engine that allows applications to integrate portable logic for evaluating user-defined configurations. It is specifically designed to enable safe user-defin
Provides a standardized specification for representing expression syntax as abstract syntax trees for consistent analysis.
DBML is a domain-specific language and schema definition language used for documenting database architecture and design. It provides a human-readable text format for defining database tables, columns, and relationships in a standardized way. The project functions as a relational schema parser and SQL schema generator. It transforms declarative design specifications into an abstract syntax tree for programmatic manipulation and converts these definitions into executable SQL statements across various database dialects. The system covers relational data modeling, database schema design, and arc
Maintains an internal structured representation of tables and relationships for programmatic schema manipulation.