
#line 10 "line_grammar.y"
typedef union {
	int						integer;
	double					real;
	char					*string;
	class VARIABLE_INFO		*variable;
	class FUNCTION_INFO		*function;
	struct
	{
		int				token;				// Token type for program parser
		class EvalProg	*statement;			// Parse tree for line
	}						statement_line;
	class BOUNDS_LIST		*bounds_list;
	class DIMENSION_LIST	*dimension_list;
	class PRINT_LIST		*print_list;
	class PRINT_ITEM		*print_item;
	class EvalProg				*tnode;
	class EvalIntDouble			*dnode;
	class EvalPtrToDouble		*ptrdnode;
	class array_dim_list		*adimlnode;
	class disjunction_list		*disconjlnode;
	class xordisjunction_list	*xdisjunclnode;
	class relational_term_list	*rtermlnode;
	class relational_term		*rtermnode;
	class signed_term_list 		*stermlnode;
	class signed_term 			*stermnode;
	class primary_list 			*primlnode;
	class factor_list 			*factlnode;
	class numeric_rep 			*nrepnode;
	class EvalFunc	 			*nfrefnode;
} YYSTYPE;
#line 41 "line_grammar.y"


#include <stdio.h>
#include <stdarg.h>
#include "fcb.h"
#include "basicfc.h"
#include "dimension.h"
#include "timer.h"
#include "print.h"
#include "program_line.h"
#include "tokeniser.h"

#include "evalprog.h"
#include "evalfunc.h"
#include "evalptrtodouble.h"
#include "evalblock.h"
#include "evalsequence.h"
#include "evalintdouble.h"

#include "prog_grammar.h"

int line_parser_lex (LINE_YYSTYPE *lval, FCBASIC *fcb);
#define line_parser_error(msg) LineParserError (fcb, msg)
void LineParserError (FCBASIC *fcb, const char *msg, ...);
void line_parser_delete (int symbol, LINE_YYSTYPE value, FCBASIC *fcb);

#define YYDEBUG		0



