PySh is a planned roughly POSIX-compliant shell with various built-ins to allow portability of the test suite. It is important that this tool be both simple and relatively self-contained.
The current implementation resides in http://hg.intevation.org/mercurial/pmezard/pysh/
Some useful links for getting started:
Pyparsing: an easy-to-use recursive descent parser as a single Python module.
POSIX shell BNF: a good starting point for building our shell grammar
ebnf.py: An EBNF->pyparsing converter
Other links:
Antlr: An LL(k) recursive descent parser generator which can generate Python.
PLY - lex/yacc alike framework for Python
PyRR: a lexing and parsing toolkit for Python.
PySh: the other Python shell
Ash: A maintained slim shell
Martin Pool presumes that it is not possible to use BNF to describe the sh grammar
- - which is ok, because we only want to make a shell usable for the test suite, not a complete sh replacement