skip to navigation
skip to content

Not Logged In

pydsl 0.2.0

Python Domain Specific Language Tools

Latest Version: 0.5.0


pydsl is a language library written in python. It provides high level functions for Grammars/Alphabets,
hiding the complexity of parsers and similar tools:
 * guess(input, [gd]): returns a list of _grammar_ and _alphabets_ that are compatible with the input
 * check(d, input): test the input string against the spec
 * extract(gd, input): extract all the slices of the input that are accepted by the definition


supported formats:
 * regular expressions
 * pydsl BNF format
 * mongo database query dictionaries
 * python ply module (only check support)

 * enum(gd): yields a list of accepted words
 * first(gd): yields a list of the first accepted subword/char
 * minsize(gd): length of the smaller accepted word
 * maxsize(gd): length of the biggest accepted word
 * alphabet(gd): returns the alphabet used by this gd

 * validate(gd, input): test the input string against the spec. In case of failure, it returns a list of errors


Alphabets are a set of grammar definitions that are recognized using a regular grammar.

 * grammar_list(ad): return the list of allowed grammars for this alphabet

 * lexer(ad, input): Generates a tokenlist from a string (it is a special case of translate)


pydsl also offers functions to store grammars and alphabets into directories and files. Here are the related functions:
 * manager s query: search for an element within a memory
 * manager i identifier: returns information about the element

 * disttools:
   * python3 install
 * pip:
   * pip install pydsl

To use pydsl as a library for your code, you can:

Loading content from files
    from pydsl.Memory.File.BNF import load_bnf_file
    grammardefinition = loand_bnf_file('myfile.bnf')
    from pydsl.Memory.Loader import *
    mychecker = load_checker(grammardefinition)
    mychecker('mystring') # returns True or False

Loading content from a directory
First store your grammar definitions in a directory,

    from pydsl.Memory.Storage.Directory import DirStorage
    from pydsl.Guess import Guesser
    a = DirStorage("directory/")
    guess = Guesser([a])

Using contrib
    from pydsl.Memory.Loader import *
    mychecker = load_checker(integer)

pydsl also provides a command line interface for the main functions:

 * : Searchs and displays information about grammar/alphabets
 * Checks if input data belongs to a grammar
 * guess:py: Returns a list of the types that match the input element
 * Perform a validation routine for user data according to a grammar
 * Generates a token list from an input according to an alphaber
 * extract all the slices of the input that are accepted by a definition

 * python >= 2.7
 * optional: ply library ( )


GPLv3, see LICENSE file

pydsl is a language library written in python
Copyright (C) 2008-2013 Nestor Arocha (
File Type Py Version Uploaded on Size
pydsl-0.2.0.tar.gz (md5) Source 2013-06-22 57KB
  • Downloads (All Versions):
  • 10 downloads in the last day
  • 192 downloads in the last week
  • 1015 downloads in the last month