3 Repos
Tools that generate strongly typed abstract syntax trees based on formal grammar specifications.
Distinct from Formal Grammar Parser Generators: Focuses on the resulting AST structure for analysis rather than general parser generation logic.
Explore 3 awesome GitHub repositories matching software engineering & architecture · AST Generators. Refine with filters or upvote what's useful.
Semantic ist eine auf Haskell basierende Bibliothek und ein Kommandozeilen-Tool für die polyglotte Quellcode-Analyse. Es fungiert als Framework für statische Programmanalyse und als polyglotter Parser für abstrakte Syntaxbäume, der verschiedene Programmiersprachen in strukturierte Syntaxbäume auf Basis von Grammatikdefinitionen umwandelt. Das System zeichnet sich durch eine semantische Code-Vergleichs-Engine aus, die strukturelle und inhaltliche Änderungen zwischen Code-Versionen erkennt, anstatt sich auf rein textuelle Unterschiede zu verlassen. Es ermöglicht zudem die Analyse über verschiedene Programmiersyntaxen hinweg, indem es Oberflächensprachen in eine einheitliche, polyglotte Zwischenrepräsentation übersetzt. Das Framework bietet eine breite Palette an Funktionen für das Parsen von Sprachen wie Rust, Go, Python, Ruby, PHP, TypeScript und TSX. Es deckt die semantische Analyse durch Code-Scope-Mapping, Extraktion von Symbolen und die Generierung semantischer Graphen ab, ergänzt durch Werkzeuge zur Musteranalyse und Bewertung des Programmverhaltens. Das Toolset enthält Kommandozeilen-Dienstprogramme zur Standardisierung von Haskell-Quellcodedateien.
Produces strongly typed abstract syntax trees by applying formal language grammar definitions to raw source text.
Lark ist ein Python-Parsing-Toolkit, das zum Definieren von Grammatiken und zum Konvertieren von Rohtext in annotierte Parse-Trees verwendet wird. Es dient als Abstract-Syntax-Tree-Generator und als Grammatik-Definitionssprache zur Spezifizierung von Sprachregeln durch Terminals und reguläre Ausdrücke. Die Bibliothek bietet zwei primäre Parsing-Implementierungen: eine Earley-Parsing-Bibliothek, die alle kontextfreien Sprachen verarbeiten kann (einschließlich solcher mit Mehrdeutigkeit und Linksrekursion), und eine performante LALR-Parsing-Bibliothek für deterministische Sprachen mit geringem Speicherbedarf. Über das reine Parsing hinaus enthält das Toolkit Funktionen für die modulare Grammatikkomposition, regelbasierte Baumtransformation und Koordinatenverfolgung für Quellpositionen. Es unterstützt zudem die Serialisierung von LALR-Grammatiken in eigenständige Parser-Module.
Automatically generates hierarchical abstract syntax trees by matching input tokens against defined grammar rules.
go-ast-book ist eine Sammlung technischer Bildungsressourcen zur Analyse abstrakter Syntaxbäume (AST), Compiler-Entwicklung und statischer Code-Verifizierung. Es bietet Anleitungen und Handbücher zum Parsen, Traversieren und Analysieren von Go-Quellcode, um semantische Informationen zu extrahieren. Das Projekt dient als Referenz für den Bau von Compiler-Frontends und deckt die Übersetzung von High-Level-Code in Zwischenrepräsentationen und Single Static Assignment (SSA) Formen ab. Es bietet zudem Anleitungen zur Nutzung dieser Techniken für die Entwicklung von Sprach-Tooling und statischer Code-Analyse. Die Ressourcen decken ein breites Spektrum an statischen Analysefähigkeiten ab, einschließlich lexikalischer Tokenisierung, strukturellem Parsen von Ausdrücken und Deklarationen sowie Koordinaten-Tracking für Quelldateien. Zudem werden semantische Analyseprozesse wie Identifier-Auflösung, Typprüfung und Kontrollflussanalyse für Nebenläufigkeit und Deferred Execution detailliert beschrieben.
Translates Go language constructs such as selector expressions and slice operations into AST structures.