rpc_scan.h revision 100441
1198092Srdivacky/*
2198092Srdivacky * $FreeBSD: head/usr.bin/rpcgen/rpc_scan.h 100441 2002-07-21 12:55:04Z charnier $
3198092Srdivacky */
4198092Srdivacky/*
5198092Srdivacky * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
6198092Srdivacky * unrestricted use provided that this legend is included on all tape
7198092Srdivacky * media and as a part of the software program in whole or part.  Users
8198092Srdivacky * may copy or modify Sun RPC without charge, but are not authorized
9198092Srdivacky * to license or distribute it to anyone else except as part of a product or
10198092Srdivacky * program developed by the user.
11198092Srdivacky *
12198092Srdivacky * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
13198092Srdivacky * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
14212904Sdim * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
15198092Srdivacky *
16198092Srdivacky * Sun RPC is provided with no support and without any obligation on the
17198092Srdivacky * part of Sun Microsystems, Inc. to assist in its use, correction,
18206084Srdivacky * modification or enhancement.
19206084Srdivacky *
20203955Srdivacky * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
21203955Srdivacky * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
22198092Srdivacky * OR ANY PART THEREOF.
23198092Srdivacky *
24198092Srdivacky * In no event will Sun Microsystems, Inc. be liable for any lost revenue
25198092Srdivacky * or profits or other special, indirect and consequential damages, even if
26198092Srdivacky * Sun has been advised of the possibility of such damages.
27198092Srdivacky *
28198092Srdivacky * Sun Microsystems, Inc.
29198092Srdivacky * 2550 Garcia Avenue
30198092Srdivacky * Mountain View, California  94043
31198092Srdivacky */
32198092Srdivacky/* #pragma ident   "@(#)rpc_scan.h 1.11     94/05/15 SMI" */
33198092Srdivacky
34198092Srdivacky/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
35198092Srdivacky/*	  All Rights Reserved  	*/
36198092Srdivacky
37198092Srdivacky/*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*/
38198092Srdivacky/*	The copyright notice above does not evidence any   	*/
39198092Srdivacky/*	actual or intended publication of such source code.	*/
40198092Srdivacky
41198092Srdivacky
42200583Srdivacky
43200583Srdivacky/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
44200583Srdivacky*	PROPRIETARY NOTICE (Combined)
45200583Srdivacky*
46200583Srdivacky* This source code is unpublished proprietary information
47200583Srdivacky* constituting, or derived under license from AT&T's UNIX(r) System V.
48200583Srdivacky* In addition, portions of such source code were derived from Berkeley
49200583Srdivacky* 4.3 BSD under license from the Regents of the University of
50198092Srdivacky* California.
51198092Srdivacky*
52198092Srdivacky*
53198092Srdivacky*
54198092Srdivacky*	Copyright Notice
55198092Srdivacky*
56198092Srdivacky* Notice of copyright on this source code product does not indicate
57198092Srdivacky*  publication.
58198092Srdivacky*
59198092Srdivacky*	(c) 1986,1987,1988.1989  Sun Microsystems, Inc
60198092Srdivacky*	(c) 1983,1984,1985,1986,1987,1988,1989  AT&T.
61198092Srdivacky*          All rights reserved.
62198092Srdivacky*/
63198092Srdivacky
64198092Srdivacky/*      @(#)rpc_scan.h  1.3  90/08/29  (C) 1987 SMI   */
65198092Srdivacky
66198092Srdivacky/*
67198092Srdivacky * rpc_scan.h, Definitions for the RPCL scanner
68198092Srdivacky */
69200583Srdivacky
70200583Srdivacky/*
71200583Srdivacky * kinds of tokens
72200583Srdivacky */
73198092Srdivackyenum tok_kind {
74200583Srdivacky	TOK_IDENT,
75198092Srdivacky	TOK_CHARCONST,
76198092Srdivacky	TOK_STRCONST,
77198092Srdivacky	TOK_LPAREN,
78198092Srdivacky	TOK_RPAREN,
79198092Srdivacky	TOK_LBRACE,
80198092Srdivacky	TOK_RBRACE,
81198092Srdivacky	TOK_LBRACKET,
82198092Srdivacky	TOK_RBRACKET,
83198092Srdivacky	TOK_LANGLE,
84198092Srdivacky	TOK_RANGLE,
85198092Srdivacky	TOK_STAR,
86198092Srdivacky	TOK_COMMA,
87198092Srdivacky	TOK_EQUAL,
88198092Srdivacky	TOK_COLON,
89198092Srdivacky	TOK_SEMICOLON,
90198092Srdivacky	TOK_CONST,
91198092Srdivacky	TOK_STRUCT,
92198092Srdivacky	TOK_UNION,
93198092Srdivacky	TOK_SWITCH,
94198092Srdivacky	TOK_CASE,
95198092Srdivacky	TOK_DEFAULT,
96198092Srdivacky	TOK_ENUM,
97198092Srdivacky	TOK_TYPEDEF,
98203955Srdivacky	TOK_INT,
99206084Srdivacky	TOK_SHORT,
100203955Srdivacky	TOK_LONG,
101206084Srdivacky	TOK_HYPER,
102206084Srdivacky	TOK_UNSIGNED,
103203955Srdivacky	TOK_FLOAT,
104203955Srdivacky	TOK_DOUBLE,
105203955Srdivacky	TOK_QUAD,
106203955Srdivacky	TOK_OPAQUE,
107206084Srdivacky	TOK_CHAR,
108203955Srdivacky	TOK_STRING,
109203955Srdivacky	TOK_BOOL,
110203955Srdivacky	TOK_VOID,
111203955Srdivacky	TOK_PROGRAM,
112203955Srdivacky	TOK_VERSION,
113206084Srdivacky	TOK_EOF
114203955Srdivacky};
115203955Srdivackytypedef enum tok_kind tok_kind;
116218893Sdim
117218893Sdim/*
118218893Sdim * a token
119203955Srdivacky */
120203955Srdivackystruct token {
121203955Srdivacky	tok_kind kind;
122203955Srdivacky	char *str;
123203955Srdivacky};
124203955Srdivackytypedef struct token token;
125203955Srdivacky
126203955Srdivacky
127218893Sdim/*
128206084Srdivacky * routine interface
129206084Srdivacky */
130203955Srdivackyvoid scan();
131218893Sdimvoid scan2();
132218893Sdimvoid scan3();
133218893Sdimvoid scan_num();
134218893Sdimvoid peek();
135203955Srdivackyint peekscan();
136203955Srdivackyvoid get_token();
137203955Srdivacky