[scn_imp.h] Scanner Implementation


#include "standard.h"
/* all extended ascii */
//#define SCN_CHAR_SET_SIZE (256)
/* all UCS4 character */
#define SCN_CHAR_SET_SIZE   (0xFFFFFFFFu)
//#define SCN_CHAR_SET_SIZE   (~((wc_char)0))
#define Scn_IMP(X) ((scn_t)(X))
#define Scn_ADT(X) ((Scn_T)(X))
#define SCN_Edges(X) (Scn_IMP(X)->StaEdg[Scn_IMP(X)->States])
ConcreteType(scn_t)
{
  c_string  Name;   /* lexical language name       */
  short     States;
  short     Tokens;
  short    *StaEdg; /* [States] -> first edge      */
  short    *StaFin; /* [States] -> (-1 or token)   */
  wc_char  *EdgeC ; /* [Edges]  -> lower character */
  short    *EdgeS ; /* [Edges]  -> State           */
  c_string *TokId ; /* [Tokens] -> string          */
  c_byte   *Flags ; /* [Tokens] -> ignore token    */
};
#endif