KNOWN_PROBLEMS
上传用户:itx_2006
上传日期:2007-01-06
资源大小:493k
文件大小:3k
源码类别:

编译器/解释器

开发平台:

Others

  1.     =======================================================
  2.     Known Problems In PCCTS - Last revised 27 February 1998
  3.     =======================================================
  4. #11. User hook for deallocation of variables on guess fail
  5.      The mechanism outlined in Item #108 works only for
  6.      heap allocated variables.
  7. #10. Label re-initialization in ( X {y:Y} )*
  8.      If a label assignment is optional and appears in a
  9.      (...)* or (...)+ block it will not be reset to NULL
  10.      when it is skipped by a subsequent iteration.
  11.      Consider the example:
  12.             ( X { y:Y })* Z
  13.      with input:
  14.             X Y X Z
  15.      The first time through the block Y will be matched and
  16.      y will be set to point to the token.  On the second
  17.      iteration of the (...)* block there is no match for Y.
  18.      But y will not be reset to NULL, as the user might
  19.      expect, it will contain a reference to the Y that was
  20.      matched in the first iteration.
  21.      The work-around is to manually reset y:
  22.             ( X << y = NULL; >> { y:Y } )* Z
  23.         or
  24.             ( X ( y:Y | << y = NULL; >> /* epsilon */ ) )* Z
  25.      Reported by Jeff Vincent (JVincent@novell.com).
  26. #9. PCCTAST.h PCCTSAST::setType() is a noop
  27. #8. #tokdefs with ~Token and .
  28.     When antlr uses #tokdefs to define tokens the fields of
  29.     #errclass and #tokclass do not get properly defined.
  30.     When it subsequently attempts to take the complement of
  31.     the set of tokens (using ~Token or .) it can refer to
  32.     tokens which don't have names, generating a fatal error.
  33.         THM: I have been unable to reproduce this problem.
  34. #7. DLG crashes on some invalid inputs
  35.     The following token defintion will cause DLG to crash.
  36.         #token "()"
  37.     Reported by  Mengue Olivier (dolmen@bigfoot.com).
  38. #6. On MS systems nr is treated as two new lines
  39.     Fixed.
  40. #5. Token expressions in #tokclass
  41.     #errclass does not support TOK1..TOK2 or ~TOK syntax.
  42.     #tokclass does not support ~TOKEN syntax
  43.     A workaround for #errclass TOK1..TOK2 is to use a
  44.     #tokclass.
  45.     Reported by Dave Watola (dwatola@amtsun.jpl.nasa.gov)
  46. #4. A #tokdef must appear "early" in the grammar file.
  47.     The "early" section of the grammar file is the only
  48.     place where the following directives may appear:
  49.         #header
  50.         #first
  51.         #tokdefs
  52.         #parser
  53.     Any other kind of statement signifiies the end of the
  54.     "early" section.
  55. #3. Use of PURIFY macro for C++ mode
  56.     Item #93 of the CHANGES_FROM_1.33 describes the use of
  57.     the PURIFY macro to zero arguments to be passed by
  58.     upward inheritance.
  59.         #define PURIFY(r, s) memset((char *) &(r), '', (s));
  60.     This may not be the right thing to do for C++ objects that
  61.     have constructors.  Reported by Bonny Rais (bonny@werple.net.au).
  62.     For those cases one should #define PURIFY to be an empty macro
  63.     in the #header or #first actions.
  64. #2. Fixed in 1.33MR10 - See CHANGES_FROM_1.33 Item #80.
  65. #1. The quality of support for systems with 8.3 file names leaves
  66.     much to be desired.  Since the kit is distributed using the
  67.     long file names and the make file uses long file names it requires
  68.     some effort to generate.  This will probably not be changed due
  69.     to the large number of systems already written using the long
  70.     file names.