home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / pub / users / Harry / compilers / yapp / lexer.h < prev    next >
C/C++ Source or Header  |  2003-05-23  |  1KB  |  36 lines

  1. /* lexer.h
  2. **
  3. ** Header file for the PCAT Lexer.
  4. **
  5. ** Harry Porter, 10/8/98.
  6. */
  7.  
  8. enum { ID=257, INTEGER, REAL, STRING, ASSIGN, LEQ, GEQ, NEQ, LBAG,
  9.        RBAG, AND, ARRAY, BEGIN, BY, DIV, DO, ELSE, ELSEIF, END, EXIT,
  10.        FOR, IF, IS, LOOP, MOD, NOT, OF, OR, PROCEDURE, PROGRAM, READ,
  11.        RECORD, RETURN, THEN, TO, TYPE, VAR, WHILE, WRITE, EOFSYMBOL };
  12.  
  13. enum { SY_E=1, SY_T, SY_F, SY_LPAREN, SY_RPAREN, SY_PLUS, SY_MULT,
  14.        SY_ID, SY_EOF, SY_E2, SY_T2,
  15.        NT_STMT, NT_VARDECL,
  16.        NT_TYPEDECL, NT_PROCDECL, NT_IDLIST, NT_OPTIONALTYPE, NT_EXPR,
  17.        NT_TYPE, NT_COMPONENTS, NT_COMPONENT, NT_FORMALPARAMS,
  18.        NT_FPSECTIONS, NT_FPSECTION, NT_LVALUES, NT_LVALUE, NT_ACTUALPARAMS,
  19.        NT_ACTUALS, NT_WRITEPARAMS, NT_WRITEEXPRS, NT_WRITEEXPR,
  20.        NT_ELSEIFS, NT_OPTIONALELSE, NT_OPTIONALBY, NT_OPTIONALEXPR,
  21.        NT_UNARYOP, NT_BINARYOP2, NT_COMPVALUES, NT_MORECOMPVALUES };
  22.        /* skipping over some values, since 41 = '(', 42 = '*', etc. */
  23. enum { NT_ARRAYVALUES=97, NT_MOREARRAYVALUES, NT_ARRAYVALUE,
  24.        NT_MOREEXPR2, NT_MOREEXPR3, NT_MOREEXPR4, NT_BINARYOP3, NT_BINARYOP4,
  25.        NT_EXPR2, NT_EXPR3, NT_EXPR4, NT_EXPR5,
  26.        NT_PROGRAM, NT_BODY, NT_DECLS, NT_STMTS, NT_VARDECLS,
  27.        NT_TYPEDECLS, NT_PROCDECLS, NT_DECL,
  28.        SY_BEXPR, SY_BTERM, SY_BFACTOR, SY_TRUE, SY_FALSE };
  29. enum { SY_A=65, SY_a, SY_b, SY_S };
  30.  
  31. extern union tokenValue {
  32.     char * svalue;
  33.     int    ivalue;
  34.     double rvalue;
  35. } tokenValue;
  36.