rpc_scan.h revision 12798
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#pragma ident   "@(#)rpc_scan.h 1.11     94/05/15 SMI"
30
31/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
32/*	  All Rights Reserved  	*/
33
34/*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*/
35/*	The copyright notice above does not evidence any   	*/
36/*	actual or intended publication of such source code.	*/
37
38
39
40/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
41*	PROPRIETARY NOTICE (Combined)
42*
43* This source code is unpublished proprietary information
44* constituting, or derived under license from AT&T's UNIX(r) System V.
45* In addition, portions of such source code were derived from Berkeley
46* 4.3 BSD under license from the Regents of the University of
47* California.
48*
49*
50*
51*	Copyright Notice
52*
53* Notice of copyright on this source code product does not indicate
54*  publication.
55*
56*	(c) 1986,1987,1988.1989  Sun Microsystems, Inc
57*	(c) 1983,1984,1985,1986,1987,1988,1989  AT&T.
58*          All rights reserved.
59*/
60
61/*      @(#)rpc_scan.h  1.3  90/08/29  (C) 1987 SMI   */
62
63/*
64 * rpc_scan.h, Definitions for the RPCL scanner
65 */
66
67/*
68 * kinds of tokens
69 */
70enum tok_kind {
71	TOK_IDENT,
72	TOK_CHARCONST,
73	TOK_STRCONST,
74	TOK_LPAREN,
75	TOK_RPAREN,
76	TOK_LBRACE,
77	TOK_RBRACE,
78	TOK_LBRACKET,
79	TOK_RBRACKET,
80	TOK_LANGLE,
81	TOK_RANGLE,
82	TOK_STAR,
83	TOK_COMMA,
84	TOK_EQUAL,
85	TOK_COLON,
86	TOK_SEMICOLON,
87	TOK_CONST,
88	TOK_STRUCT,
89	TOK_UNION,
90	TOK_SWITCH,
91	TOK_CASE,
92	TOK_DEFAULT,
93	TOK_ENUM,
94	TOK_TYPEDEF,
95	TOK_INT,
96	TOK_SHORT,
97	TOK_LONG,
98	TOK_HYPER,
99	TOK_UNSIGNED,
100	TOK_FLOAT,
101	TOK_DOUBLE,
102	TOK_QUAD,
103	TOK_OPAQUE,
104	TOK_CHAR,
105	TOK_STRING,
106	TOK_BOOL,
107	TOK_VOID,
108	TOK_PROGRAM,
109	TOK_VERSION,
110	TOK_EOF
111};
112typedef enum tok_kind tok_kind;
113
114/*
115 * a token
116 */
117struct token {
118	tok_kind kind;
119	char *str;
120};
121typedef struct token token;
122
123
124/*
125 * routine interface
126 */
127void scan();
128void scan2();
129void scan3();
130void scan_num();
131void peek();
132int peekscan();
133void get_token();
134