notation can be used to write documentation.
The objectives of this notation aredefined in the MATHS manifesto.
Also see the introductions, the overview, a description of the notations(like '::=', '#(_)', 'O(_)', '|', '&', etc), more samples, and a draft formal definition.
See my software development page for information on other notations and methods.
You can use Anonymous FTP to get samples of the raw MATHS documents. Look for files with suffix "mth".