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: * [[http://pyparsing.wikispaces.com/|Pyparsing]]: an easy-to-use recursive descent parser as a single Python module. * [[http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_10|POSIX shell BNF]]: a good starting point for building our shell grammar * [[http://pyparsing.wikispaces.com/space/showimage/ebnf.py|ebnf.py]]: An EBNF->pyparsing converter Other links: * [[http://www.antlr.org|Antlr]]: An LL(k) recursive descent parser generator which can generate Python. * [[http://www.dabeaz.com/ply|PLY]] - lex/yacc alike framework for Python * [[http://dev.modelnine.org/hg/pyrr/|PyRR]]: a lexing and parsing toolkit for Python. * [[http://ipython.scipy.org/doc/manual/node12.html|PySh]]: the other Python shell * [[http://www.busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/shell/ash.c|Ash]]: A maintained slim shell * [[http://lists.samba.org/archive/linux/2004-February/009990.html|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 ---- CategoryTesting