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