Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
227 dpurdie 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 or with the express written consent of
8
 * Sun Microsystems, Inc.
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
 
31
/*      @(#)rpc_scan.h  1.3  90/08/29  (C) 1987 SMI   */
32
 
33
/*
34
 * rpc_scan.h, Definitions for the RPCL scanner 
35
 */
36
 
37
/*
38
 * kinds of tokens 
39
 */
40
enum tok_kind {
41
	TOK_IDENT,
42
	TOK_CHARCONST,
43
	TOK_STRCONST,
44
	TOK_LPAREN,
45
	TOK_RPAREN,
46
	TOK_LBRACE,
47
	TOK_RBRACE,
48
	TOK_LBRACKET,
49
	TOK_RBRACKET,
50
	TOK_LANGLE,
51
	TOK_RANGLE,
52
	TOK_STAR,
53
	TOK_COMMA,
54
	TOK_EQUAL,
55
	TOK_COLON,
56
	TOK_SEMICOLON,
57
	TOK_CONST,
58
	TOK_STRUCT,
59
	TOK_UNION,
60
	TOK_SWITCH,
61
	TOK_CASE,
62
	TOK_DEFAULT,
63
	TOK_ENUM,
64
	TOK_TYPEDEF,
65
	TOK_INT,
66
	TOK_SHORT,
67
	TOK_LONG,
68
	TOK_UNSIGNED,
69
	TOK_FLOAT,
70
	TOK_DOUBLE,
71
	TOK_OPAQUE,
72
	TOK_CHAR,
73
	TOK_STRING,
74
	TOK_BOOL,
75
	TOK_VOID,
76
	TOK_PROGRAM,
77
	TOK_VERSION,
78
	TOK_EOF
79
};
80
typedef enum tok_kind tok_kind;
81
 
82
/*
83
 * a token 
84
 */
85
struct token {
86
	tok_kind kind;
87
	char *str;
88
};
89
typedef struct token token;
90
 
91
 
92
/*
93
 * routine interface 
94
 */
95
void scan();
96
void scan2();
97
void scan3();
98
void scan_num();
99
void peek();
100
int peekscan();
101
void get_token();