pydsl 0.5.0 is ready! It fixes some issues in the parser implementations and changes the way alphabet works, although the main changeset was already available in the version 0.4.1. Here is an updated session using pydsl:

from pydsl.File.BNF import load_bnf_file
from pydsl.File.Python import load_python_file
from pydsl.Translator import translator_factory
truefalse = load_bnf_file('pydsl/contrib/grammar/TrueFalse.bnf')
grammardefinition = load_bnf_file('pydsl/contrib/grammar/LogicalExpression.bnf', {'TrueFalse':truefalse})
grammardefinition.alphabet # Returns the alphabet used by this grammar
grammardefinition.minsize 
grammardefinition.maxsize
from pydsl.Check import check
check(grammardefinition,['(']) # returns True or False
from pydsl.Parser import parse
parse(grammardefinition,[')']) # returns a ParseTree
from pydsl.Extract import extract
extract(grammardefinition,'abc()abc') # returns ('False',3,11)
solver = translator_factory(load_python_file('pydsl/contrib/transformer/echo.py'))
mystring = "True||False"
result = solver(mystring)
print(result)