GLOP - the Generalized Lpeg and Ometa-inspired Parsing and printing framework.
Project description
GLOP - the Generalized Lpeg and Ometa-inspired Parsing and printing framework.
Introduction
GLOP is an exploration of parsing expression grammars, mostly influenced by Lua’s LPEG module and Alessandro Warth’s OMeta project. It is of course also heavily influenced by grep and friends.
It is intended to provide several different things:
A tool and with a friendly command line interface for searching for things a la grep, and transforming them a la sed, awk, perl -e and so forth.
Libraries in several languages to match the functionality of that tool.
A tool for generating parsers in multiple languages for a given grammar.
Libraries for the above as well.
A study in implementing a non-trivial problem in multiple languages.
What works
At the moment, GLOP can accept grammars and execute them using a very simple language for executing actions on the parsed text.
The code is only implemented in Python.
Things that still need to be implemented
parser generators.
a generated parser that matches the hand-rolled one (glop needs to be able to bootstrap itself up).
Open issues
Basically, everything is still open.
One of the distinctive aspects of LPEG is its focus on matching patterns, rather than entire grammars. Focusing on patterns leads one to a syntax more tuned for patterns, as terminals are more common than non-terminals.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file glop-0.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: glop-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf7423cf1e76c53c57fbc6bfcb5da0e33635fa674b419dd0edddeb0c91fa9944 |
|
MD5 | 43eb0fe070a6cf35e6c18c7f9d38998e |
|
BLAKE2b-256 | 10d35fef5b67ff8a889f771f65207e467ca7ae826c00b91f4cb30bfa1a3bffd4 |