All Projects → johnyf → astutils

johnyf / astutils

Licence: other
Bare essentials for building abstract syntax trees, and skeleton classes for PLY lexers and parsers.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to astutils

abstract-syntax-tree
A library for working with abstract syntax trees.
Stars: ✭ 77 (+492.31%)
Mutual labels:  parse, ast, syntax-tree
Parser
A lexer and parser for GraphQL in .NET
Stars: ✭ 163 (+1153.85%)
Mutual labels:  parse, ast
Bash Parser
Parses bash into an AST
Stars: ✭ 151 (+1061.54%)
Mutual labels:  parse, ast
sast
Parse CSS, Sass, SCSS, and Less into a unist syntax tree
Stars: ✭ 51 (+292.31%)
Mutual labels:  ast, syntax-tree
pascal-interpreter
A simple interpreter for a large subset of Pascal language written for educational purposes
Stars: ✭ 21 (+61.54%)
Mutual labels:  parse, ast
Swiftpascalinterpreter
Simple Swift interpreter for the Pascal language inspired by the Let’s Build A Simple Interpreter article series.
Stars: ✭ 270 (+1976.92%)
Mutual labels:  parse, ast
Snapdragon
snapdragon is an extremely pluggable, powerful and easy-to-use parser-renderer factory.
Stars: ✭ 180 (+1284.62%)
Mutual labels:  parse, ast
Escaya
An blazing fast 100% spec compliant, incremental javascript parser written in Typescript
Stars: ✭ 217 (+1569.23%)
Mutual labels:  ast, syntax-tree
lilt
LILT: noun, A characteristic rising and falling of the voice when speaking; a pleasant gentle accent.
Stars: ✭ 18 (+38.46%)
Mutual labels:  parse, ast
MarkdownSyntax
☄️ A Type-safe Markdown parser in Swift.
Stars: ✭ 65 (+400%)
Mutual labels:  ast, syntax-tree
c-compiler
A compiler that accepts any valid program written in C. It is made using Lex and Yacc. Returns a symbol table, parse tree, annotated syntax tree and intermediate code.
Stars: ✭ 37 (+184.62%)
Mutual labels:  ast, syntax-tree
parse-function
(!! moved to tunnckoCore/opensource multi-package repository !!) 🔱 Parse a function into an object using espree, acorn or babylon parsers. Extensible through Smart Plugins.
Stars: ✭ 37 (+184.62%)
Mutual labels:  parse, ast
eval-estree-expression
Safely evaluate JavaScript (estree) expressions, sync and async.
Stars: ✭ 22 (+69.23%)
Mutual labels:  parse, ast
Micromark
the smallest commonmark compliant markdown parser that exists; new basis for @unifiedjs (hundreds of projects w/ billions of downloads for dealing w/ content)
Stars: ✭ 793 (+6000%)
Mutual labels:  parse, ast
Unified
☔️ interface for parsing, inspecting, transforming, and serializing content through syntax trees
Stars: ✭ 3,036 (+23253.85%)
Mutual labels:  ast, syntax-tree
Libpypa
libpypa is a Python parser implemented in pure C++
Stars: ✭ 172 (+1223.08%)
Mutual labels:  parse, ast
Astviewer
Python Abstract Syntax Tree viewer in Qt
Stars: ✭ 101 (+676.92%)
Mutual labels:  ast, syntax-tree
Nlcst
Natural Language Concrete Syntax Tree format
Stars: ✭ 116 (+792.31%)
Mutual labels:  ast, syntax-tree
BBob
⚡️Blazing-fast js-bbcode-parser, bbcode js, that transforms and parses to AST with plugin support in pure javascript, no dependencies
Stars: ✭ 133 (+923.08%)
Mutual labels:  parse, ast
asmdot
[Unstable] Fast, zero-copy and lightweight (Arm | Mips | x86) assembler in (C | C++ | C# | Go | Haskell | Javascript | Nim | OCaml | Python | Rust).
Stars: ✭ 23 (+76.92%)
Mutual labels:  parse, ast

Build Status Coverage Status

About

Bare essentials for building abstract syntax trees (AST) and Python lex-yacc (PLY) parsers. The package includes:

  • two classes for tree nodes: Terminal, Operator
  • a Lexer and Parser class, and a helper function to erase and rewrite the table files.

The examples under examples/ demonstrate how to use these classes to create a richer AST, a parser, and different backends that use the same parser.

These classes provide the boilerplate for parsing with PLY, and are based on code that was developed in tulip and promela.

License

BSD-3, see file LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].