read.me
上传用户:hbdengju
上传日期:2007-01-06
资源大小:11k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

C/C++

  1. The following source files are included:
  2.     clex.c
  3.     clex.h
  4.     clex_sym.h
  5.     clex_test.c
  6.     kwhash.c
  7.     Makefile
  8. They implement a self-contained lexical scanner class for C++.
  9. It is extensible by derivation primarily in the area of
  10. processing "#" compiler directives (currently, it only
  11. interprets the "#line" construct).
  12. It has one other degree of flexibility, in its handling
  13. of bracket-enclosed expressions "[]".  These may be treated
  14. as a normal sequence of tokens or as delimited strings;
  15. the former is of greater use in a traditional parser, while
  16. the latter is favored for extraction of declarations by
  17. a code browser.
  18. To allay some confusion, I should point out here that
  19. clex_sym.h is used in an unusual way: it is included
  20. twice in the module clex.c; once for declaration
  21. part, once for the (static) definition part.  It is
  22. built this way to keep all knowledge of keywords
  23. in a single place.
  24. The file kwhash.c is a standard C standalone program used
  25. to arrive at the collision-free hash function used to
  26. recognize C++ keywords.  Any new keyword stands about
  27. one chance in 3 of colliding with an existing keyword,
  28. thus requiring that a new hash function be generated.
  29. The file clex_test.c compiles to a program which reads
  30. C or C++ code from standard input and emits token names
  31. on the standard output.  Try it with different values
  32. in the constructor's second argument.