⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 llparse.h

📁 早期freebsd实现
💻 H
字号:
/* $Header: llparse.h,v 2.1 88/09/19 12:56:20 nhall Exp $ *//* $Source: /var/home/tadl/src/argo/xebec/RCS/llparse.h,v $ */	/************************************************************		attributes stack garbage	************************************************************/#define LLMAXATTR	512#define LLMAXDESC	256#define	LLATTR		/* build an attribute stack */	/*	**	attribute stack	**	**	AttrStack =	stack of record	**				values : array of values;	**				ptr	: index;	**	end;	**	*/	typedef union llattrib LLattrib;	extern LLattrib	llattributes[LLMAXATTR];	extern int	llattrtop;	extern struct	llattr {		LLattrib	*llabase; /* ptr into the attr stack (llattributes) */		int		llaindex;/* # attrs on the stack so far for this prod */		int		llacnt;/* total # ever to go on for this prod */		int		lloldtop;/* when popping this prod, restore stack to here ;						 one attr will remain on the stack (for the lhs) */	}	llattrdesc[LLMAXDESC];	extern int	lldescindex;	/************************************************************		attributes stack garbage	************************************************************/	extern	struct	lltoken {		short		llterm;		/* token number */		short		llstate;	/* inserted deleted normal */		LLattrib	llattrib; 	} 	lltoken;	typedef	struct lltoken	LLtoken;/************************************************************	constants used in llparse.c************************************************************/#define STACKSIZE	500#define MAXCORR		16#define	NORMAL		0#define	DELETE		1#define	INSERT		2/************************************************************	datatypes used to communicate with the parser************************************************************/struct	llinsert {	short	llinscost;	short	llinslength;	short	llinsert[MAXCORR];};typedef	struct llinsert	LLinsert;extern	short	llparsestack[];extern	short	llstackptr;extern	short	llinfinite;/************************************************************	variables used to pass information	specific to each grammer************************************************************/extern	short	llnterms;extern	short	llnsyms;extern	short	llnprods;extern	char	*llefile;extern	struct	llparsetable {	short	llterm;	short	llprod;}	llparsetable[];extern	short	llparseindex[];extern	short	llepsilon[];extern	short	llproductions[];extern	struct	llprodindex {	short	llprodstart;	short	llprodlength;	short	llprodtlen;}	llprodindex[];extern	struct	llcosts {	short	llinsert;	short	lldelete;}	llcosts[];extern	struct	llstable {	short	llsstart;	short	llslength;}	llstable[];extern	short	llsspace[];extern	struct	lletable {	short	llecost;	short	llelength;	short	llestart;}	lletable[];extern	long	lleindex[];extern	short	llespace[];extern	char	*llstrings[];/************************************************************	routines defined in llparse.c************************************************************/extern llparse();extern llcopye();extern llcopys();extern llcorrector();extern llepsilonok();extern llexpand();extern short llfindaction();extern llgetprefix();extern llgettoken();extern llinsert();extern llinsertsym();extern llinserttokens();extern llparsererror();extern llpushprod();extern llreadetab();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -