13 dépôts
Tools for navigating nodes, tokens, and trivia within a syntax tree.
Distinct from Syntax Tree Construction: Distinct from syntax tree construction: focuses on the traversal and inspection of existing trees.
Explore 13 awesome GitHub repositories matching software engineering & architecture · Syntax Traversal. Refine with filters or upvote what's useful.
Babel is a pluggable JavaScript compiler and transpiler that converts modern ECMAScript syntax into backwards-compatible versions of the language. It functions as an abstract syntax tree manipulator, parsing source code into a hierarchical structure to traverse and modify nodes for custom code transformations. The system utilizes a plugin-driven architecture to apply specific transformation rules and supports presets that bundle multiple plugins into named configuration groups. This enables the transformation of experimental syntax and the injection of non-global polyfills to ensure consisten
Implements a visitor-based system for navigating and triggering callbacks on specific nodes within a syntax tree.
The .NET Compiler Platform is a collection of open-source APIs for C# and Visual Basic that provides deep code analysis, refactoring, and automated source code generation. It serves as the core infrastructure for building development tools, offering a platform to inspect, modify, and understand source code through immutable syntax trees and semantic models. The platform distinguishes itself by providing full-fidelity syntax trees that preserve every character of source code, including whitespace and comments, alongside an incremental compilation pipeline that enables near-instant feedback dur
Provides tools to traverse syntax trees to inspect specific language constructs and their positions.
SwiftLint is a static analysis tool and code formatter designed to enforce consistent coding styles and identify semantic issues within Swift source code. It functions as a command-line utility that evaluates code against established conventions to ensure uniform structure and architectural standards across a project. The tool distinguishes itself through a custom linting engine that leverages compiler-integrated syntax analysis to perform deep inspections of code structure. Beyond simple pattern matching, it supports automated source code transformation to correct formatting violations and r
Navigates source code syntax trees to perform deep structural inspections and logical checks.
This project is a static analysis framework and linting engine designed to inspect TypeScript codebases. It functions as a plugin suite that enables standard linting workflows to parse source code into abstract syntax trees, allowing for the automated enforcement of coding standards and the identification of potential bugs through a modular, rule-based visitor pattern. The engine distinguishes itself by integrating directly with the TypeScript compiler to perform type-aware analysis. By accessing compiler type information, it can identify complex errors and unsafe patterns that standard synta
Uses recursive tree-walking mechanisms to execute analysis logic at every node of the syntax tree.
This project provides an integration of Tree-sitter into the Neovim editor to enable structural code analysis. It serves as a framework for structural code navigation, context-aware syntax highlighting, and the management of language-specific parsers. The system distinguishes itself through a multi-language injection handler that identifies and parses embedded languages within a single document. It uses a dedicated parser manager to install, update, and remove grammar definitions and their associated query files. The tool covers several capability areas including incremental text selection,
Traverses the hierarchical structure of parsed source code to derive structural boundaries for indentation and folding.
Spring-analysis is a diagnostic utility designed to visualize the internal architecture and execution logic of Java applications built on the Spring Framework. It functions as a static analysis tool that parses source code to map structural relationships and component interactions without requiring the program to execute. The tool distinguishes itself by automatically extracting configuration and annotation data to identify beans and service definitions, which it then translates into visual representations of the system. By reconstructing method call hierarchies and event propagation paths, i
Navigates source code nodes to extract structural information and logic flow details without execution.
Acorn is a JavaScript parser that converts source text into a structured abstract syntax tree. It follows the ESTree specification to produce a standardized JSON tree format, enabling consistent analysis of code structure and language versions. The project features a plugin-based grammar extension system that allows the base parser to be extended with custom rules for experimental or non-standard language features. It also includes syntax error recovery, which inserts placeholder nodes into the tree when encountering invalid code to allow parsing to continue. The toolset covers static analys
Provides tools for navigating and inspecting nodes and tokens within a generated syntax tree.
ktlint is a linter and code formatter for Kotlin that checks source files against a built-in set of style rules and automatically rewrites them to match those rules. It operates by walking the Kotlin abstract syntax tree, detecting violations, and applying transformations directly at the node level before regenerating the source code from the modified tree. The project ships a curated default rule set that requires no configuration to enforce consistent formatting, and provides a command-line interface for running linting and formatting in batch mode. Its rule-set-based plugin architecture al
Walks the Kotlin abstract syntax tree to detect style violations and apply node-level transformations.
Unified est un moteur de traitement d'arbres de syntaxe et un écosystème de contenu conçu pour analyser, transformer et sérialiser du contenu textuel. Il fonctionne comme un pipeline de contenu basé sur des plugins qui convertit le texte brut en arbres de syntaxe abstraits structurés utilisant des objets JavaScript simples pour une inspection et une modification programmatiques. Le projet se distingue par une architecture modulaire qui permet une traduction inter-écosystème, permettant aux arbres de syntaxe d'être convertis entre différentes spécifications telles que HTML et Markdown. Il utilise un système de clonage de processeur immuable et des conteneurs d'état partagés, garantissant que les pipelines de traitement peuvent être étendus et personnalisés sans altérer les configurations originales. Le système fournit des capacités complètes pour la gestion des arbres de syntaxe, y compris la traversée en profondeur, la sélection de nœuds basée sur CSS et les transformations récursives. Sa surface de traitement s'étend à l'analyse du langage naturel, à l'analyse de GitHub Flavored Markdown et au mappage des arbres de syntaxe vers des éléments DOM virtuels pour la visualisation dans le navigateur. La logique de traitement peut être intégrée dans des applications web via des bundlers de modules ou des CDN.
Walks trees of nodes using depth-first traversal to visit and modify specific elements.
syn is a Rust syntax tree parser and token stream converter. It serves as a toolkit for procedural macro development, providing a framework to parse Rust source code into structured syntax trees for analysis and transformation. The project enables the manipulation of Rust abstract syntax trees through specialized visitor and folder patterns for traversing and mutating nodes. It provides a bidirectional mapping that allows developers to convert token streams into structured trees and print those trees back into tokens for code generation. The library covers a broad range of syntax analysis ca
Provides specialized folder patterns to analyze and mutate syntax tree nodes during traversal.
The Haskell Language Server is an implementation of the Language Server Protocol that provides real-time diagnostics, code navigation, and refactoring support for Haskell projects. It functions as a backend service that enables advanced editing capabilities within standard text editors by facilitating communication between the development environment and the Haskell compiler. The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of independent components for specific language features. It leverages the host compiler as a library to perfo
Provides tools for navigating and inspecting the structural representation of Haskell source code.
Vim-matchup is a plugin for the Vim and Neovim text editors that provides advanced structural code navigation and manipulation. It functions as an extension to standard editor motions, enabling users to jump between, select, and modify matching language constructs and nested code blocks with high precision. The plugin distinguishes itself by utilizing language-specific syntax trees to track and identify corresponding delimiters and keywords. By integrating with syntax-aware engines, it maintains structural accuracy even in complex source files, while offering a fallback pattern-matching mecha
Navigates nested code structures by traversing syntax trees to locate parent or sibling nodes.
The project provides a standardized abstract syntax tree specification and utility library for parsing, transforming, and serializing markdown documents. It serves as a comprehensive document processing architecture that translates between raw text markup and structured node representations in both directions. The capability surface covers syntax parsing for extended markdown features, custom syntax extensions, metadata blocks, and embedded expressions, alongside document serialization that converts syntax trees back into standard and extended markup formats. It includes node modeling and val
Merges adjacent text nodes and block quotes to reduce redundancy and simplify syntax tree structures.