Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

aptk - A Parse Toolkit

This is a module for creating parsers from grammars.  aPTK targets to make
this in a very "documented" way.  So you can define the grammar in doc-string
of your grammar class or even in your reStructuredText documentation.

.. highlight:: aptk

A simple example of a greeting parser::

  :grammar GreetingGrammar

  <greeting>        := <greeting-clause> <.ws> <greeted>
  <ws>              := \s+
  <greeting-clause> := "hello" | "hi"
  <greeted>         := \w+

This will create a class named `GreetingGrammar`.  First rule in the 
grammar will be used as start-rule for a normal parsing.  Parsing a 
rule, will result in a ParseTree.  Here follows an example of rule
``<greeting>`` matching "hello world"::

  <greeting> ~~ "hello world"
             -> greeting(
                  greeting-clause( 'hello' ), 
                  greeted( 'world' ) 

Actually what you see above is a test assertion for applying rule greeting
to string "hello world", what is expected to result in the parse-tree
displayed above.

But read more in `aptk's documentation`_.

.. _aptk's documentation:


You can download this package from PyPI_.

.. _PyPI::

.. highlight:: bash

Or install it with easy_install::

    easy_install -U aptk
or get the the source from source code repository from

    $ hg clone

Building Documentation

For building documentation you need sphinx, you can get it using::

    $ easy_install -U Sphinx

Then you can::

    $ cd docs
    $ make html
    $ firefox _build/html/index.html


Licensed under New BSD License, see LICENSE.txt.

Release Notes

======= =================================================================
Version Notes
======= =================================================================
0.5.7   add comments

0.5.4   first tests for postcircumfix pass, more tests, cleaned code a bit

0.5.3   Added operation precedence parser. Pretty simple yet, but supports
        infix, postfix, prefix, circumfix operations. postcircumfix is
        also implemented but not tested at all others are partly tested.

0.5     Starting with version 0.5, which shall indicate, that there is 
        still a lot to do.

        Especially documentation is far from complete and it contains 
        some passages, which are already outdated.

        Next releases will focus on documentation and testing and adding 
        an operator precendence parser.

======= =================================================================

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.