KNOWN_PROBLEMS
资源名称:pccts133.zip [点击查看]
上传用户:itx_2006
上传日期:2007-01-06
资源大小:493k
文件大小:3k
源码类别:
编译器/解释器
开发平台:
Others
- =======================================================
- Known Problems In PCCTS - Last revised 27 February 1998
- =======================================================
- #11. User hook for deallocation of variables on guess fail
- The mechanism outlined in Item #108 works only for
- heap allocated variables.
- #10. Label re-initialization in ( X {y:Y} )*
- If a label assignment is optional and appears in a
- (...)* or (...)+ block it will not be reset to NULL
- when it is skipped by a subsequent iteration.
- Consider the example:
- ( X { y:Y })* Z
- with input:
- X Y X Z
- The first time through the block Y will be matched and
- y will be set to point to the token. On the second
- iteration of the (...)* block there is no match for Y.
- But y will not be reset to NULL, as the user might
- expect, it will contain a reference to the Y that was
- matched in the first iteration.
- The work-around is to manually reset y:
- ( X << y = NULL; >> { y:Y } )* Z
- or
- ( X ( y:Y | << y = NULL; >> /* epsilon */ ) )* Z
- Reported by Jeff Vincent (JVincent@novell.com).
- #9. PCCTAST.h PCCTSAST::setType() is a noop
- #8. #tokdefs with ~Token and .
- When antlr uses #tokdefs to define tokens the fields of
- #errclass and #tokclass do not get properly defined.
- When it subsequently attempts to take the complement of
- the set of tokens (using ~Token or .) it can refer to
- tokens which don't have names, generating a fatal error.
- THM: I have been unable to reproduce this problem.
- #7. DLG crashes on some invalid inputs
- The following token defintion will cause DLG to crash.
- #token "()"
- Reported by Mengue Olivier (dolmen@bigfoot.com).
- #6. On MS systems nr is treated as two new lines
- Fixed.
- #5. Token expressions in #tokclass
- #errclass does not support TOK1..TOK2 or ~TOK syntax.
- #tokclass does not support ~TOKEN syntax
- A workaround for #errclass TOK1..TOK2 is to use a
- #tokclass.
- Reported by Dave Watola (dwatola@amtsun.jpl.nasa.gov)
- #4. A #tokdef must appear "early" in the grammar file.
- The "early" section of the grammar file is the only
- place where the following directives may appear:
- #header
- #first
- #tokdefs
- #parser
- Any other kind of statement signifiies the end of the
- "early" section.
- #3. Use of PURIFY macro for C++ mode
- Item #93 of the CHANGES_FROM_1.33 describes the use of
- the PURIFY macro to zero arguments to be passed by
- upward inheritance.
- #define PURIFY(r, s) memset((char *) &(r), ' ', (s));
- This may not be the right thing to do for C++ objects that
- have constructors. Reported by Bonny Rais (bonny@werple.net.au).
- For those cases one should #define PURIFY to be an empty macro
- in the #header or #first actions.
- #2. Fixed in 1.33MR10 - See CHANGES_FROM_1.33 Item #80.
- #1. The quality of support for systems with 8.3 file names leaves
- much to be desired. Since the kit is distributed using the
- long file names and the make file uses long file names it requires
- some effort to generate. This will probably not be changed due
- to the large number of systems already written using the long
- file names.