Although StructuredText is clearly useful, there is some disagreement about what its semantics is/should be. This disagreement is complicated by the facts that:
- StructuredText has never been fully formalized.
- At least 3 versions of StructuredText have been implemented: ClassicStructuredText?, StructuredTextNG, and STpy?.
The STminus project
In order to help resolve these issues, I (EdwardLoper) am beginning the STminus project. The primary goal of this project is to create a formal description of StructuredText. This formalization will be expressed in EBNF with lookahead. Since StructuredText is in reality a loosely defined family of markup languages, the project will restrict itself to two defining particular StructuredText languages: StructuredTextNG and STpy?. It will not attempt to capture the semantics or structure of ClassicStructuredText?.
Read more about this project at http://www.cis.upenn.edu/~edloper/pydoc/stminus.html
If you wish to play with your own copy of STminus, just send me email at firstname.lastname@example.org. Once I have finished cleaning up the code and documenting it better, I will put a link to it here.
Regression Test Cases
In conjuction with the STminus project, I (EdwardLoper) am creating a large set of test cases, which should be useable by STminus, StructuredTextNG, and STpy?. Each test case consists of a self-documenting StructuredText string. The test cases are organized to form the sttest.py module:
To look at a complete list of the test cases, properly parsed, see the test-set output for STminus version 002: