Wisent

A Python LR(1) parser generator.

Introduction

Reading input files with complex structure is surprisingly difficult in many programs. For example, programs must handle errors carefully when processing untrusted input data. If your program is written in Python and if the input data is sufficiently structured (i.e., if the format can be described by a context free grammar), Wisent can help you to implement parts of the input processing of your program.

cave painting of a wisent

A cave painting from the cave of Altamira, showing a wisent. The photo was taken from the Wikimedia Commons and is in the public domain.

Features

The parser generator has the following features:

The generated parsers have the following features:

More information can be found in the Wisent Users’ Manual.

Installation

The easiest way to install Wisent is via pip:

pip install wisent-parser

This will install the wisent command-line tool and make it available system-wide.

Note: The PyPI package is named wisent-parser (not just wisent) to avoid conflicts with other packages.

Alternative: Install from Source

The latest source code is available on GitHub at github.com/seehuhn/wisent:

git clone https://github.com/seehuhn/wisent.git
cd wisent
pip install -e .

Legacy Tarballs

Older source tarballs are available for reference, below. These versions use the outdated autotools build system.

Version Date Download Notes
0.6.2 2012-04-10 tar.gz (1.0 MB), sig,
sha188560d57326d8796f468173c9d4c9f1da304ed36
0.6.1 2010-09-16 tar.gz (1.0 MB), sig,
sha1288b7e7efe7508c44d0593c7fb07583307e20d99
bug fix release

Bug Reports

Please send any suggestions and bug reports via the Issue Tracker.

About the name

I called the program “Wisent” because the first parser generator I encountered was Bison and the Wisent is the European variant of the Bison. Unfortunately, I learned later that there are at least two other parser generators which use the name “Wisent”:

References