home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume19 / wacco / part01 / README < prev   
Text File  |  1991-05-19  |  3KB  |  61 lines

  1. $Header: README,v 1.7 91/05/17 16:29:53 hmgr Exp $
  2.  
  3. Copyright (c) 1991 by Parag Patel.  All Rights Reserved.
  4. You can do what you wish with this as long as
  5.     (1) you do not claim it or any part of it as yours and
  6.     (2) you do not remove or alter my copyright in any file.
  7. This software is provided "AS IS" without any implied or express warranty
  8. as to its performance or to the results that may be obtained by using this
  9. software.  It is completely unsupported.  You're on your own.
  10.  
  11.  
  12. This is version 1.1 of Wacco, basically an LL(1) parser generator.
  13. Why Another Compiler COmpiler?  Why not?!?
  14.  
  15. Wacco generates recursive-descent C++ code from an input file.  The
  16. wacco file.w looks a lot like a yacc(1) input file, but with a lot more
  17. syntactic sugar added.  Since it the parser generated recurses, you can
  18. do attribute-driven parsing easily and even pass information into rules
  19. which could alter the parse.
  20.  
  21. I wrote wacco to give me a platform for experiment with various error
  22. recovery schemes.  A fairly cheesy first/follow set scheme is currently
  23. implemented.  Wacco turned out to be useful in its own right and I never
  24. did get around to serious experimenting.
  25.  
  26. Wacco is written in itself.  The file "wacco.w" describes its own format
  27. and was used to manually generate "parse.C" and "toks.h".  (The original
  28. bootstrap version no longer exists.  Wacco has evolved considerably from
  29. a much simpler version to the current implementation, so the old code
  30. would be useless anyway.)  The files "parse.C" and "toks.h" are always
  31. shipped since there's no other way to build a working wacco.
  32.  
  33. The file "wacco.doc" describes the wacco file format in a tty-readable
  34. form.  "Wacco.doc.iw" is the much prettier IslandWrite version of the
  35. document.  "Wacco.doc.ps" is the Postscript output from IslandWrite.
  36. Wacco.1 describes only the command-line options.
  37.  
  38. There are few comments and lots of ugly non-OO code throughout wacco.
  39. It had evolved from a straight C implementation and I never got around
  40. to cleaning it up.  Sorry.
  41.  
  42. Wacco should port and run easily on most C++ systems.  It does need C++
  43. 2.0 of some flavor.  It's been successfully built on HP-UX s300 and s800
  44. systems, Sparc, and 4.3BSD running on HP hardware.  You may need to
  45. tweak some -D defines in the Makefile.  If sizeof(long) is NOT 32 bits,
  46. you may have to perform major surgery on bitset.h and bitset.C.
  47.  
  48. All you should need to do is modify CFLAGS in the Makefile, then type
  49. "make".  The Makefile should come setup for HP-UX systems.  Type "make
  50. tst" to build a simple test program using "tgram.w".  The files to
  51. be installed wherever you prefer are "wacco" and "wacco.1".
  52.  
  53. The code is somewhat commented.  Feel free to hack away, add new
  54. features, or fix my screwups.  If you make mods you feel are useful, or
  55. fix some bug, please send me the cdiffs so I can make them available to
  56. others too.
  57.  
  58.  
  59.  
  60.     -- Parag Patel <parag@sde.hp.com>
  61.