/* @(#)rpc←scan.h 1.1 90/10/29 (C) 1987 SMI */

/*
 * rpc←scan.h, Definitions for the RPCL scanner 
 * Copyright (C) 1987, Sun Microsystems, Inc. 
 */

/*
 * kinds of tokens 
 */
enum tok←kind {
	TOK←IDENT,
	TOK←CHARCONST,
	TOK←STRCONST,
	TOK←LPAREN,
	TOK←RPAREN,
	TOK←LBRACE,
	TOK←RBRACE,
	TOK←LBRACKET,
	TOK←RBRACKET,
	TOK←LANGLE,
	TOK←RANGLE,
	TOK←STAR,
	TOK←COMMA,
	TOK←EQUAL,
	TOK←COLON,
	TOK←SEMICOLON,
	TOK←CONST,
	TOK←STRUCT,
	TOK←UNION,
	TOK←SWITCH,
	TOK←CASE,
	TOK←DEFAULT,
	TOK←ENUM,
	TOK←TYPEDEF,
	TOK←INT,
	TOK←SHORT,
	TOK←LONG,
	TOK←UNSIGNED,
	TOK←FLOAT,
	TOK←DOUBLE,
	TOK←OPAQUE,
	TOK←CHAR,
	TOK←STRING,
	TOK←BOOL,
	TOK←VOID,
	TOK←PROGRAM,
	TOK←VERSION,
	TOK←EOF
};
typedef enum tok←kind tok←kind;

/*
 * a token 
 */
struct token {
	tok←kind kind;
	char *str;
};
typedef struct token token;


/*
 * routine interface 
 */
void scan();
void scan2();
void scan3();
void scan←num();
void peek();
int peekscan();
void get←token();