Skip to main content

A Parse Toolkit. Create well documented grammars.

Project description

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: http://aptk.readthedocs.org

Download
--------

You can download this package from PyPI_.

.. _PyPI:: http://pypi.python.org/pypi/aptk#downloads

.. highlight:: bash

Or install it with easy_install::

easy_install -U aptk

or get the the source from source code repository from bitbucket.org::

$ hg clone https://bitbucket.org/klorenz/aptk


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


License
-------

Licensed under New BSD License, see LICENSE.txt.


Release Notes
-------------

======= =================================================================
Version Notes
======= =================================================================
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.

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

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

aptk-0.5.6.zip (54.5 kB view details)

Uploaded Source

aptk-0.5.6.tar.gz (45.2 kB view details)

Uploaded Source

Built Distribution

aptk-0.5.6.linux-i686.exe (98.7 kB view details)

Uploaded Source

File details

Details for the file aptk-0.5.6.zip.

File metadata

  • Download URL: aptk-0.5.6.zip
  • Upload date:
  • Size: 54.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aptk-0.5.6.zip
Algorithm Hash digest
SHA256 a57d89dc0a2e24b49a2d28dc983fc31ad10d3afbeab8b0767f341a5041565095
MD5 3dc7705495ce04e6bccfcd57f1832d5a
BLAKE2b-256 f017cc0c46caf2d65d06f5e5f350b65d2761c3f9a7d6408b683c515e455747f0

See more details on using hashes here.

File details

Details for the file aptk-0.5.6.tar.gz.

File metadata

  • Download URL: aptk-0.5.6.tar.gz
  • Upload date:
  • Size: 45.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aptk-0.5.6.tar.gz
Algorithm Hash digest
SHA256 29806e13a0b3e8ae44cf521d3fe2c4ed8af1cc55444c5bc2387aba7c7280595f
MD5 939b79415d6d6f518d56903e7daa2b06
BLAKE2b-256 73c75dbcbe3a963fd44cb3bbcdb5f9bb02e3486be87eddb6f77b07756513dfdb

See more details on using hashes here.

File details

Details for the file aptk-0.5.6.linux-i686.exe.

File metadata

File hashes

Hashes for aptk-0.5.6.linux-i686.exe
Algorithm Hash digest
SHA256 e3fc117093cb1452823772d5ac011fea6d4f816226de579a7bcd34078e7da3a2
MD5 5f6c803f15a4fabf7ef06c4a914c97f7
BLAKE2b-256 a6800804e2d24ae54d27114bd2cd0e41f72b5550545b5bdf0da2a8c2f3b48b48

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