/*ident	"@(#)cls4:src/tqueue.h	1.1" */
/*******************************************************************************
 
C++ source for the C++ Language System, Release 3.0.  This product
is a new release of the original cfront developed in the computer
science research center of AT&T Bell Laboratories.

Copyright (c) 1991 AT&T and UNIX System Laboratories, Inc.
Copyright (c) 1984, 1989, 1990 AT&T.  All Rights Reserved.

THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of AT&T and UNIX System
Laboratories, Inc.  The copyright notice above does not evidence
any actual or intended publication of such source code.

*******************************************************************************/

#ifndef EOF
#include <stdio.h>
#endif

struct toknode {
	TOK      tok;			/* token for parser */
	bit      used;			/* token has been processed by lalex() */
	YYSTYPE  retval;			/* $arg */
	Pname    idname;
	loc      place;
	toknode* next;
	toknode* last;
	static toknode* free_toks;
	void*   operator new(size_t);
	void    operator delete(void*,size_t);
		toknode(TOK,YYSTYPE,loc);
};
extern toknode* front;
extern toknode* rear;

extern void addtok(TOK,YYSTYPE,loc);	/* add tok to rear of Q */
extern TOK deltok(int);			/* take tok from front of Q */
extern TOK tlex();

// interface to parser
extern TOK lalex();
extern int yychar;
extern YYSTYPE yylval;
extern TOK	la_look();
extern void	la_backup( TOK, YYSTYPE );
extern int	la_cast();
extern void	check_decl();
extern void	check_cast();
extern TOK	lalex();

// save / restore implicit inline functions
extern toknode*	save_text();
extern void	restore_text();

// set scope after qualified declarator
extern Pname SET_SCOPE( Pname );
extern void  UNSET_SCOPE();
