home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / N / TCPIP / NETKIT-B.05 / NETKIT-B / NetKit-B-0.05 / rpcgen / rpc_scan.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-17  |  2.3 KB  |  104 lines

  1. /*
  2.  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
  3.  * unrestricted use provided that this legend is included on all tape
  4.  * media and as a part of the software program in whole or part.  Users
  5.  * may copy or modify Sun RPC without charge, but are not authorized
  6.  * to license or distribute it to anyone else except as part of a product or
  7.  * program developed by the user.
  8.  * 
  9.  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
  10.  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  11.  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
  12.  * 
  13.  * Sun RPC is provided with no support and without any obligation on the
  14.  * part of Sun Microsystems, Inc. to assist in its use, correction,
  15.  * modification or enhancement.
  16.  * 
  17.  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
  18.  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
  19.  * OR ANY PART THEREOF.
  20.  * 
  21.  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
  22.  * or profits or other special, indirect and consequential damages, even if
  23.  * Sun has been advised of the possibility of such damages.
  24.  * 
  25.  * Sun Microsystems, Inc.
  26.  * 2550 Garcia Avenue
  27.  * Mountain View, California  94043
  28.  *
  29.  *    from: @(#)rpc_scan.h 1.3 87/03/09 (C) 1987 SMI
  30.  *    from: @(#)rpc_scan.h    2.1 88/08/01 4.0 RPCSRC
  31.  *    $Id: rpc_scan.h,v 1.2 1993/08/01 18:09:26 mycroft Exp $
  32.  */
  33.  
  34. /*
  35.  * rpc_scan.h, Definitions for the RPCL scanner 
  36.  * Copyright (C) 1987, Sun Microsystems, Inc. 
  37.  */
  38.  
  39. /*
  40.  * kinds of tokens 
  41.  */
  42. enum tok_kind {
  43.     TOK_IDENT,
  44.     TOK_STRCONST,
  45.     TOK_LPAREN,
  46.     TOK_RPAREN,
  47.     TOK_LBRACE,
  48.     TOK_RBRACE,
  49.     TOK_LBRACKET,
  50.     TOK_RBRACKET,
  51.     TOK_LANGLE,
  52.     TOK_RANGLE,
  53.     TOK_STAR,
  54.     TOK_COMMA,
  55.     TOK_EQUAL,
  56.     TOK_COLON,
  57.     TOK_SEMICOLON,
  58.     TOK_CONST,
  59.     TOK_STRUCT,
  60.     TOK_UNION,
  61.     TOK_SWITCH,
  62.     TOK_CASE,
  63.     TOK_DEFAULT,
  64.     TOK_ENUM,
  65.     TOK_TYPEDEF,
  66.     TOK_INT,
  67.     TOK_SHORT,
  68.     TOK_LONG,
  69.     TOK_UNSIGNED,
  70.     TOK_FLOAT,
  71.     TOK_DOUBLE,
  72.     TOK_OPAQUE,
  73.     TOK_CHAR,
  74.     TOK_STRING,
  75.     TOK_BOOL,
  76.     TOK_VOID,
  77.     TOK_PROGRAM,
  78.     TOK_VERSION,
  79.     TOK_EOF
  80. };
  81. typedef enum tok_kind tok_kind;
  82.  
  83. /*
  84.  * a token 
  85.  */
  86. struct token {
  87.     tok_kind kind;
  88.     char *str;
  89. };
  90. typedef struct token token;
  91.  
  92.  
  93. /*
  94.  * routine interface 
  95.  */
  96. void scanprint();
  97. void scan();
  98. void scan2();
  99. void scan3();
  100. void scan_num();
  101. void peek();
  102. int peekscan();
  103. void get_token();
  104.