Skip to main content

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:

  1. 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.

  2. Libraries in several languages to match the functionality of that tool.

  3. A tool for generating parsers in multiple languages for a given grammar.

  4. Libraries for the above as well.

  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

glop-0.1.1-py2.py3-none-any.whl (22.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file glop-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for glop-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cf7423cf1e76c53c57fbc6bfcb5da0e33635fa674b419dd0edddeb0c91fa9944
MD5 43eb0fe070a6cf35e6c18c7f9d38998e
BLAKE2b-256 10d35fef5b67ff8a889f771f65207e467ca7ae826c00b91f4cb30bfa1a3bffd4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page