Python is a nice scripting language. It even gives you access to its own parser and compiler. It also gives you access to different other parsers for special purposes like XML and string templates.
But sometimes you may want to have your own parser. This is what's pyPEG for. And pyPEG supports Unicode.
The source code for all you can find here:
To build the documentation, you'll need YML 2. You can download YML here:
You can install pyPEG 2 with:
$ pip install pypeg2
pyPEG 2 depends on lxml, see http://lxml.de/