gorgo

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2021 License: BSD-3-Clause Imports: 0 Imported by: 3

README

GoRGO Logo

A Parsing Toolbox

There is no shortage of parser generator, ranging from good old bison to ANTLR and various Go variants like gocc. Why develop another one?

All these tools have their value and I appreciate the availability of compiler-compilers with a lot of horse power. But on the other hand, sometimes I want something more compact, a smart and lightweight tool to generate an interpreter for a custom language. And I want it in native Go, as this is what I currently use for Open Source. That’s what GoRGO strives to be.

Status

This is very much work in progress. Not yet intended for production use. Please be patient.

Documentation

Overview

Package gorgo is an LR parsing toolbox. GoRGO strives to be a smart and lightweight tool to generate interpreters for DSLs.

BSD License

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of this software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Directories

Path Synopsis
lr
Package lr implements prerequisites for LR parsing.
Package lr implements prerequisites for LR parsing.
dss
Package dss implements variants of a DAG-structured stack (DSS).
Package dss implements variants of a DAG-structured stack (DSS).
earley
Package earley provides an Earley-Parser.
Package earley provides an Earley-Parser.
glr
Package glr implements a small-scale GLR(1)-parser.
Package glr implements a small-scale GLR(1)-parser.
iteratable
Package iteratable implements iteratable container data structures.
Package iteratable implements iteratable container data structures.
slr
Package slr provides an SLR(1)-parser.
Package slr provides an SLR(1)-parser.
sparse
Package sparse implements a simple type for sparse integer matrices.
Package sparse implements a simple type for sparse integer matrices.
sppf
Package sppf implements a "Shared Packed Parse Forest".
Package sppf implements a "Shared Packed Parse Forest".
Package runtime implements an interpreter runtime, consisting of scopes, memory frames and symbols (variable declarations and references).
Package runtime implements an interpreter runtime, consisting of scopes, memory frames and symbols (variable declarations and references).
Package terex provides term rewriting expressions as a basis for rewriting parse-trees and ASTs.
Package terex provides term rewriting expressions as a basis for rewriting parse-trees and ASTs.
fp
Package fp provides utilities for kind-of functional programming on TeREx lists.
Package fp provides utilities for kind-of functional programming on TeREx lists.
terexlang
Package terexlang provides a parser for TeREx (term rewriting).
Package terexlang provides a parser for TeREx (term rewriting).
termr
Package termr implements tools for term rewriting and construction of abstract syntax trees.
Package termr implements tools for term rewriting and construction of abstract syntax trees.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL