Push down automatons for shift-reduce parsing.

TODO:
o error repair
  o recover from syntax errors
  o improved error messages
  o Toplas 17(4)