亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lex.c

?? 變尺度法的源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* @(#)lex.c 1.17 96/09/11 *//* * ==================================================== * Copyright (C) 1995 by Sun Microsystems, Inc. All rights reserved. * * Developed at SunSoft, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. * ==================================================== */#include "fpp.h"#include "service.h"#include "symtab.h"#include "rgram.h"#include "lex.h"#include "sb.h"extern uchar	*curp;extern Comment	*comments;/* ltok is a static memory to hold the current token. * As long as we don't expect pushtok() to be called more  * than once the size is equal to 2. */static Token    ltok[2];static Token    *curtok = &ltok[0];static int      cur_stmt_id = 0;        /* current statement id */static int      sym_line;               /* current character lineno */static char     cont_symbol;            /* symbol used in 6th column (fixed mode) */#define nextch(c) \        while (!*curp) refill();\        c = *curp++;\        if (c == SYM_CTRL && ctrl_mode) {\	        while (!*curp) refill();\		if (*curp != SYM_CTRL) {\		        c = (c << 8) | *curp++;\			ctrl_mode--;\		}\		else curp++;\	}#define unnextch(c) \        *--curp = (char)c;\        if (is_special(c)) {\	        *--curp = SYM_CTRL;\		ctrl_mode++;\	}static intskip_comment( unsigned mode ) {        wchar   c;	int	i,n;	int	locfl;	int     lineno;	char	*p;	static char buffer[BUFSIZE];loop:		locfl = 0;		p = buffer;		lineno = line;		nextch(c);		switch (c) {		case 'c':		case 'C':		case 'd':		case 'D':		case '*':			if (!f77fl && !fixedformfl) {			        unnextch(c);				return 0;			}			if (colm != 0) {			        unnextch(c);				return 0;			}			/* no break! */		case '!':			*p++ = (char)c;			for (;;) {				nextch(c);				if (c == '\n') { 					line++; colm=0; 					*p++ = (char)c;					break;				}				else if (c == SYM_EOF) { 					colm=0; 				        *p++ = '\n';					break;				}				*p++ = (char)c;			}			*p = '\0';			for (i=0;i<8;i++) {	/* we treat it as pragma if it has '$' */				if (buffer[i] == '\0') break;				if (buffer[i] == '$') {					if (mode & MOD_LCASE)						tolowcase(buffer);					locfl = 1;					break;				}			}			break;		case '\n':		        if (colm != 0) {			        unnextch(c);				return 0;			}			*p++ = (char)c;			line++;			break;		default:		        if ( !is_blank(c) ) {			        unnextch(c);				return 0;			}			CHECK(colm==0);			for (n = 1;;n++) {				colm++; 				*p++ = (char)c;				nextch(c);				if (c == '\n') {					line++; colm=0;					*p++ = (char)c;					break;				}				else if (c == SYM_EOF) {				        colm = 0;				        *p++ = '\n';					break;				}				else if (c == '!') {				        if (!(fixedformfl && n == 5)) {					        /* Skip the leading spaces. 						 */					        p = buffer;						unnextch(c);						goto loop;					}				}				if (!is_blank(c)) {				        unnextch(c);					while (n--) ungetsym(*(--p));					CHECK(colm==0);					return 0;				}			}			break;		}		*p = '\0';		if ( !(mode & MOD_FPP) && !falselvl &&		     (!rmcommfl || locfl) && (p != buffer)) {			Comment	**t;			/* Place t onto the end of the list */			for (t=&comments; *t; t=&((*t)->next));			(*t) = my_alloc(sizeof(Comment),1);			(*t)->str = my_strdup(buffer);			(*t)->next = NULL;			(*t)->lineno = lineno;			(*t)->length = p - buffer;		}	return 1;}static intskipcont() {	char	locbuf[6];	char	*p = locbuf;	wchar	c;	int 	n;	CHECK(colm==0);	nextch(c);	if (c == '&') {		colm = 6;		line_width = LINE_WIDTH_MAX;		return 1;	}	else if (c == SYM_FPP) {	        unnextch(c);		return 0;	}	colm++;	for (n=5;;n--) {		if (c == '\t') {		        *p++ = (char)c;			nextch(c);			if (is_num(c) && c != '0') {				colm = 6;				line_width = LINE_WIDTH_MAX;				return 1;			}			else {			        unnextch(c);				ungetstr(locbuf, p - locbuf);				return 0;			}		}		else if (c == '/') {		        *p++ = (char)c;			nextch(c);			if (c == '*') {			        unnextch(c);				ungetstr(locbuf, p - locbuf);				return 0;			}			unnextch(c);			c = *--p;		}		else if (c == '\n' || c == SYM_EOF) {		        unnextch(c);			ungetstr(locbuf ,p - locbuf);			colm = 0;			return 0;		}		*p++ = (char)c;		if (n == 0) break;		nextch(c); colm++;	}	if (is_blank(c) || c == '0') {		ungetstr(locbuf, p - locbuf);		return 0;	}	line_width = line_width0;	return 1;}static intskipcont90(unsigned mode) {        wchar   c;	int	locfl=0;	char	locbuf[BUFSIZE];	char	*p; 	p = locbuf;	if (mode & MOD_RAW) {		for (;;) {			nextch(c);			switch (c) {			case ' ' :			case '\t': break;			case '&' :				if (locfl==1) {					colm++;					return 1;				}				else {				        unnextch(c);					ungetstr(locbuf, p - locbuf);					return 0;				}				break;			case '\n':				if (!locfl) {					locfl++;					line++; colm = 0;					p = locbuf;					continue;				}				/* no break */			default  :			        unnextch(c);				ungetstr(locbuf, p - locbuf);				return locfl;			}			*p++ = (char)c;			colm++;		}	}	else {		for (;;) {			nextch(c);			switch (c) {			case ' ' :			case '\t': break;			case '!' :				if (!locfl) {				        unnextch(c);					while (skip_comment(mode));				 	locfl++;				 	p = locbuf;					continue;				}				goto exit;			case '\n':				if (!locfl) {					locfl++;					p = locbuf;					line++; colm = 0;					continue;				}				goto exit;			case '&' :				if (locfl==1) {					colm++;					return 1;				}				goto exit;			case SYM_FPP:				if (locfl==1 && colm==0) {				        unnextch(c);					ungetsym('\n');					return 0;				}				goto exit;			default:				goto exit;			}			*p++ = (char)c;			colm++;		}exit:           unnextch(c);		ungetstr(locbuf, p - locbuf);		if (locfl)			return 1;		else	return 0;	}}static wchargetsym( unsigned mode ) {	wchar 	c;	for (;;) {	        nextch(c);		colm++;		sym_line = line;		if (colm > line_width) {			if (c != '\n' && c!= SYM_EOF)				continue;		}		switch (c) {		case ' ':		case '\t':			if (mode & MOD_SPACE)				continue;			break;		case '\n':		case SYM_EOF:			if ((mode & MOD_RAW) && (mode & MOD_CONT) && colm <= line_width) {				if (falselvl == 0) {					unnextch(c);					c = ' ';				}				else if (c == '\n') {					line++; colm = 0;				}				else {				        colm = 0;				}			}			else if (c == '\n') {				line++; colm = 0;				if (fixedformfl && (mode & MOD_CONT)) {					while (skip_comment(mode));					if (skipcont()) {						CHECK(colm==6);						continue;					}				}			}			else {			        colm = 0;			}			break;		case '!':			if (!(mode & MOD_RAW) && !(fixedformfl && colm==6) 				&& !(mode & MOD_IF)) {			        /* Process a trailing comment */				unnextch(c); 				skip_comment(mode);				CHECK(colm == 0);				if (fixedformfl && (mode & MOD_CONT)) {					while (skip_comment(mode));					if (skipcont()) {						CHECK(colm==6);						continue;					}				}				c = '\n';			}			break;		case '&':			if (!fixedformfl) {				if (mode & MOD_CONT) {					if (skipcont90(mode)) 						continue;				}			}			break;		case '/':			if (!(mode & MOD_RAW) && !no_ccom_fl) {				nextch(c);				if (c == '*') {					int	loclvl=0;						colm++;					for (;;) {						nextch(c);						if (c == '*') {							colm++;							nextch(c);							if (c == '/') {								colm++;								if (!loclvl) break;								else loclvl--;							}							else {							        unnextch(c);							}						}						else if (c == '\n') {							colm = 0;							line++;						}						else if(c == SYM_EOF) {							fppmess(ERR_LCOMM);							break;						}						else if(c == '/') {							colm++;							nextch(c);							if (c == '*') {								colm++;								loclvl++;							}							else {							        unnextch(c);							}						}						else {							colm++;						}					}					c = SYM_DUMMY;				}				else {				        unnextch(c);					c = '/';				}			}			break;		default:			if (!is_special(c) && (mode & MOD_LCASE)) 				c = lowcase(c);			break;		}		return c;	}}		static intget_tkop(SymPtr symp) {	switch (symvali(symp)) {	case FTN_FORMAT:		return(TK_FORMAT);	case FTN_IMPLICIT:		return(TK_IMPLICIT);	case FTN_DO:		return(TK_DO);	case FTN_READ:	case FTN_WRITE:		return(TK_RDWR);	case FTN_ASSIGN:		return(TK_ASGN);	case FTN_TYPE:			/* only for F90 */		return(TK_TYPE0);	case FTN_BYTE:	case FTN_CHARACTER:	case FTN_COMPLEX:	case FTN_DOUBLECOMP:	case FTN_DOUBLEPREC:	case FTN_INTEGER:	case FTN_LOGICAL:	case FTN_REAL:		return(TK_TYPE);	default:		return(TK_KEY);	}/*	return(TK_KEY);	*/}static intisfspec( char *s ) {	char	c;	c = lowcase(*s); s++;	switch (c) {	case 'b':		c = lowcase(*s);		if (c == 'n' || c== 'z') {			s++;			if ( *s == '\0') return 1;			else break;		}		while (is_num(*s)) s++;		if (*s == '\0') return 1;		break;	case 't':		c = lowcase(*s);		if (c == 'l' || c== 'r') 			s++;		while (is_num(*s)) s++;		if (*s == '\0') return 1;		break;	case 'e':		c = lowcase(*s);		if (c == 'n' || c== 's') 			s++;		while (is_num(*s)) s++;		if (*s == '\0') return 1;		break;	case 'a': case 'd': case 'f': case 'g':	case 'i': case 'l': case 'o': case 'z':		while (is_num(*s)) s++;		if (*s == '\0') return 1;		break;	case 's':		c = lowcase(*s);		if (c == 'p' || c == 's' || c == 'u')			s++;		if (*s == '\0')			return 1;		break;			case 'x': case 'r': case 'q': case 'p':		if (*s == '\0')			return 1;		break;			default: 		return 0;	}	return 0;}#define st_move1(x)  if(!(mode & MOD_NOGRAM)) {st_move(x);}Token   *get_token(unsigned mode) {	wchar 	c,c0;	char    *endp;	int	flreal;			/* used in number processing */	SymPtr	symp;	static	int fllogic = 0;	/* to process kind in logical constants */	static	int flimpl = 0;		/* to process implicit statement */	static	int flformat = 0;	/* to process format statement */	unsigned lmode;                 /* local mode */	lmode = mode /* & ~MOD_CONT */;loop:	endp = curtok->token;	curtok->val = TK_DUMMY;	c = getsym(mode);	CHECK(c);	curtok->lineno  = sym_line;	curtok->stid    = cur_stmt_id;	switch (c) {	case '\n':		case SYM_EOF:	curtok->val = TK_NL;	                st_move1(curtok->val);			*endp++ = (char)c;			onequalsym = NULL;	/* break assignment subst control */			flimpl = 0;		/* break implicit processing */			flformat = 0;		/* break format processing */			cur_stmt_id++;			break;	                	case SYM_FPP:	curtok->val = TK_FPP;	                st_move1(curtok->val);			*endp++ = (char)c;			break;	case SYM_DUMMY: *endp++ = ' ';			break;	case SYM_BOS:   curtok->val = TK_BOS;	                st_move1(curtok->val);			if (fixedformfl) {				CHECK(colm == 6);			}			*endp++ = cont_symbol;			break;	case SYM_EOMS:  /* it also delimits lexems */	                sympop();				if (sbfl) sb_mref_end();			goto loop;	case SYM_BF:	/* it simply delimits lexems */	                symhide();			goto loop;	case SYM_EF:    /* it simply delimits lexems */	                symunhide();			goto loop;	case SYM_EOC:   curtok->val = TK_EOC;			break;	case '\\':	*endp++ = (char)c;			c = getsym(MOD_RAW);			if (is_special(c)) {				ungetsym(c);			}			else if (c == '\n' || c == SYM_EOF) {			        goto loop;				/* endp[-1] = c = ' '; */			}			else {				*endp++ = (char)c;				st_move1(curtok->val);  /* TK_DUMMY */			}			break;/*	case ' ':	case '\t':	*endp++ = c;			break;			while (is_blank(c)) {				*endp++ = c;				if (endp - curtok->token >= MAXTOKENSIZE) {					curtok->length = MAXTOKENSIZE;					outtok(curtok);					endp = curtok->token;				}				c = getsym(lmode);			}			ungetsym(c);			break;*/	case '(':	curtok->val = TK_LPAR;			st_move1(curtok->val);			*endp++ = (char)c;			if (flimpl) {				flimpl++;				if (flimpl == 2 && !st_is(ST_NOIMPL)) {					st_move1(TK_IMPLICIT1);				}			}			if (flformat) {				flformat++;			}			break;	case ')':	curtok->val = TK_RPAR;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区久久| 亚洲男帅同性gay1069| 国产日韩欧美精品综合| 亚洲美女免费在线| 色呦呦国产精品| 51午夜精品国产| 亚洲欧美日韩中文播放| 国产精品一区二区三区网站| 日本乱人伦aⅴ精品| 91浏览器打开| 久久99精品久久久久婷婷| 国产精品国产三级国产普通话99 | 美女网站一区二区| 91麻豆国产香蕉久久精品| 久久久久久久性| 麻豆精品在线视频| 91麻豆精品国产| 丝袜亚洲另类欧美| 欧美性生活久久| 亚洲欧美一区二区视频| 成人激情免费网站| 亚洲国产精品激情在线观看| 精品在线一区二区三区| 日韩限制级电影在线观看| 亚洲mv大片欧洲mv大片精品| 在线视频亚洲一区| 亚洲蜜臀av乱码久久精品| 99精品视频中文字幕| 日韩午夜av电影| 综合中文字幕亚洲| 亚洲男女一区二区三区| 免费成人小视频| 日本va欧美va瓶| 一区二区在线电影| 337p粉嫩大胆噜噜噜噜噜91av | 国产精品三级久久久久三级| 久久国产精品免费| 日韩欧美一区在线| 蜜桃久久久久久| 欧美大片一区二区三区| 蜜臀a∨国产成人精品| 精品理论电影在线观看| 极品少妇一区二区| 久久综合久久综合久久综合| 国产精品1区二区.| 欧美大黄免费观看| 日本乱码高清不卡字幕| 欧美丝袜丝交足nylons图片| 一区二区久久久久久| 日韩一区二区影院| 日韩一区精品视频| 精品少妇一区二区三区在线播放| 精品无码三级在线观看视频| 日本一区二区三区国色天香 | 精品亚洲porn| 国产三级精品三级| 91老司机福利 在线| 亚洲成人一区二区在线观看| 日韩精品一区二区三区老鸭窝| 狠狠色狠狠色综合系列| 国产精品久久久久久户外露出| 色噜噜久久综合| 久久 天天综合| 一级做a爱片久久| 自拍av一区二区三区| 亚洲成人午夜影院| 韩国精品久久久| 91丝袜呻吟高潮美腿白嫩在线观看| xnxx国产精品| 色av成人天堂桃色av| 五月天丁香久久| 国产日韩影视精品| 欧美视频在线一区| 国产精品69毛片高清亚洲| 亚洲欧美区自拍先锋| 欧美大尺度电影在线| 色香蕉成人二区免费| 国产一区二区看久久| 一区二区免费看| 欧美激情一区二区三区全黄| 884aa四虎影成人精品一区| 国产精品一线二线三线精华| 亚洲国产成人精品视频| 美女视频黄频大全不卡视频在线播放| 99久久久无码国产精品| 亚洲乱码日产精品bd| 国产精品成人网| 91精品国产欧美一区二区| 不卡一区二区中文字幕| 蜜桃视频一区二区| 午夜私人影院久久久久| 亚洲图片欧美激情| 欧美韩国日本不卡| 精品久久久久久久久久久院品网| 欧美丝袜丝nylons| 91免费版pro下载短视频| 国内精品伊人久久久久av一坑| 亚洲综合成人在线视频| 日韩理论在线观看| 中文字幕在线观看一区二区| 久久久久久免费网| 欧美xxxxx裸体时装秀| 在线一区二区三区四区| 91在线云播放| 91丨porny丨蝌蚪视频| 99久久综合精品| 成人h精品动漫一区二区三区| 国内精品久久久久影院色| www.久久久久久久久| 国产综合成人久久大片91| 精品91自产拍在线观看一区| 欧美日韩国产乱码电影| 欧美一a一片一级一片| 欧美亚洲国产一区在线观看网站 | 国产婷婷精品av在线| 久久夜色精品国产噜噜av| 日韩欧美一级二级三级久久久| 884aa四虎影成人精品一区| 欧美日本在线一区| 欧美一区二区三区不卡| 欧美一区三区二区| 日韩你懂的在线观看| 精品国产91洋老外米糕| 日韩一级精品视频在线观看| 日韩三级高清在线| 欧美精品一区二区三区蜜桃| 久久久久久久免费视频了| 国产午夜精品美女毛片视频| 国产免费观看久久| 亚洲女人的天堂| 婷婷丁香激情综合| 狠狠色丁香久久婷婷综合_中| 美国毛片一区二区| 亚洲精品综合在线| 精品少妇一区二区三区视频免付费| 欧美一区二区成人| 久久久91精品国产一区二区三区| 久久久精品日韩欧美| 综合激情成人伊人| 午夜精品视频一区| 久久激情五月激情| 99在线热播精品免费| 精品视频一区三区九区| 精品捆绑美女sm三区| 中文av一区二区| 午夜久久久久久久久| 激情成人综合网| 色综合天天性综合| 日韩视频免费直播| 国产精品电影一区二区三区| 亚洲成人资源在线| 国产精品1024| 欧美日韩一区三区四区| 久久久三级国产网站| 亚洲综合图片区| 久久国产精品无码网站| 91麻豆国产精品久久| 日韩美女主播在线视频一区二区三区| 中文字幕不卡一区| 青青青爽久久午夜综合久久午夜 | 精品国产凹凸成av人导航| 日韩美女视频一区| 国产最新精品免费| 色呦呦国产精品| 国产亚洲一本大道中文在线| 午夜精品福利一区二区三区av | 精品一区二区国语对白| 91国产成人在线| 国产偷v国产偷v亚洲高清| 亚洲va欧美va人人爽| 成人免费观看男女羞羞视频| 在线成人av网站| 亚洲精品日韩一| 成人免费视频国产在线观看| 欧美一区二区播放| 亚洲444eee在线观看| 色综合中文字幕| 国产片一区二区| 国产一区二区三区四区五区入口| 欧美无人高清视频在线观看| 国产精品天干天干在观线| 国内精品伊人久久久久av影院 | 免费人成网站在线观看欧美高清| 色综合久久精品| 国产精品福利一区二区三区| 国产二区国产一区在线观看| 日韩欧美一区在线观看| 日韩成人av影视| 337p亚洲精品色噜噜| 亚洲成av人片一区二区三区| 日本二三区不卡| 亚洲自拍偷拍综合| 色成人在线视频| 一区二区三区在线观看动漫| 91在线观看视频| 在线成人免费视频| 不卡一区二区三区四区| 亚洲激情网站免费观看| 成人午夜在线视频| 国产精品丝袜一区|