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

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

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.7.zip (54.5 kB view details)

Uploaded Source

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

Uploaded Source

Built Distribution

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

Uploaded Source

File details

Details for the file aptk-0.5.7.zip.

File metadata

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

File hashes

Hashes for aptk-0.5.7.zip
Algorithm Hash digest
SHA256 4d068049caea9681413a4b9a5a155b40f510a4d5df4668bc5a0f414fc65ee4e3
MD5 cc7345899094e7a28f27e159b32bc605
BLAKE2b-256 a5bee03e8ad4564ca5c672c620dfdad4ce0e834f538fbae4fa1ddca5e400071f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for aptk-0.5.7.tar.gz
Algorithm Hash digest
SHA256 ec05947fe804fa4b9417a7004bb63baf8014ff42ed23186811c19c698c3f6c11
MD5 9f413843422aab841588d2d667a00675
BLAKE2b-256 b2efcf4e134f2aa203f4292a953be13f1873fd29b8cdca72802779ad812bb5ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aptk-0.5.7.linux-i686.exe
Algorithm Hash digest
SHA256 7e0cd3fc6e6a6a530ffff4cc1726a46af8e6c558a75eb1b3be9879cfd12f8b69
MD5 76331fd18d84a0f01a286955f10d72cd
BLAKE2b-256 81e02b74d7b00bb9f367c5f328ce318117c0800c2ac2d9165fd616584d476e27

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