1. Read, copy, and think about the sample syntax descriptions that are on the WWW.
2. Go back to chapter 3. It is theoretical -- but there is nothing quite so reusable as a good theory.
6. Write your syntax first and then check it for ambiguity afterwards. See Chapter 3. Ambiguous syntax reduces people's belief in your abilities. It makes implementation impossible.
7. Present your work to others. Ask for improvements. Listen to their criticism. Improve your documentation.
8. Write syntax as if you where explaining the language to a mathematical but naive child.
9. Practice Makes Perfect Use the XBNF notation to define
input::=#char.
output::=#char.
program::= open_files #copy_one_char close_files.
counter::=construct #( #(count|get) set ) destruct.
To review syntax description: write your own XBNF for some construct you know well and compare it with the versions in the languages reference manual and on the WWW.