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

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

?? fparse.y

?? Solaris操作系統下的過濾驅動程序, C源碼程序.
?? Y
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 1997-2003 Erez Zadok * Copyright (c) 2001-2003 Stony Brook University * Copyright (c) 1997-2000 Columbia University * * For specific licensing information, see the COPYING file distributed with * this package, or get one from ftp://ftp.filesystems.org/pub/fist/COPYING. * * This Copyright notice must be kept intact and distributed with all * fistgen sources INCLUDING sources generated by fistgen. */%{/* * fparse.y: parser for FiST language * Fistgen sources. * Copyright (c) 1997-2003 Erez Zadok * Copyright (c) 2001-2003 Stony Brook University * Copyright (c) 1997-2000 Columbia University */#ifdef HAVE_CONFIG_H# include <config.h>#endif /* HAVE_CONFIG_H */extern char *yytext;extern int fyylex(void);extern int yylineno;extern void free(void *);static int yyerror(const char *s);static void fyy_echo(const char *s);static void add_func_arg(const char *s);static char *dv, *dn, *da;static char buf[MAX_BUF_LEN], errmsg[MAX_BUF_LEN], fxnbuf[MAX_BUF_LEN];static bdt_t *tmp_bdt = NULL;ecl_t *tmp_ecl = NULL;int num_func_args, parsing_fist_fxn;static char *func_args[MAX_FUNCARGS];#define YYDEBUG 0#define PARSE_DEBUG 0#if PARSE_DEBUG# define dprintf(f,s) fprintf(stderr, (f), yylineno, (s))# define fist_return(v)#else /* not PARSE_DEBUG */# define dprintf(f,s)# define fist_return(v) return((v))#endif /* not PARSE_DEBUG */static int parsedebug;%}%union {char *strtype;int inttype;}%token NEWLINE SEMICOLON COLON%token LEFT_BRACE RIGHT_BRACE%token LEFT_BRACKET RIGHT_BRACKET%token LEFT_PAREN RIGHT_PAREN%token DOUBLE_PCT PCT_LEFT PCT_RIGHT%token <strtype> PCT_KEY DOLLAR_KEY%token <strtype> WORD PCT_ALPHA%token <inttype> NUMBER%token <strtype> CODELINE%token <strtype> MISC%token <strtype> DOLLAR_VNA%token <strtype> DOLLAR_VN DOLLAR_NA DOLLAR_VA%token <strtype> DOLLAR_V DOLLAR_N%token <strtype> FIST_FXN FIST_RULE_DEF FUNCARG%token <strtype> MSOURCE_LIST USOURCE_LIST MHEADER_LIST ADDMK_LIST%start file%%/****************************************************************************/file		: {		   yylineno = 1;#if YYDEBUG != 0		   yydebug = YYDEBUG;#endif /* YYDEBUG != 0 */		   parsedebug = PARSE_DEBUG;		  } sections		;sections	: opt_decls_sect fist_decls_sect fist_rules_sect opt_code_sect		;/****************************************************************************/opt_decls_sect	: PCT_LEFT opt_decls_lines PCT_RIGHT		| PCT_LEFT PCT_RIGHT		| /* can be empty */		;opt_decls_lines	: opt_decls_line		| opt_decls_line opt_decls_lines		;opt_decls_line	: CODELINE		{		  if (parsedebug)		    fprintf(stderr, "opt_decl1 = \"%s\"\n", $1 ? $1 : "null");		  fprintf(out_fp_h, "%s", $1);		}		;/****************************************************************************/fist_decls_sect	: fist_decls		| /* can be empty */		;fist_decls	: fist_decl		| fist_decl fist_decls		;fist_decl	: WORD WORD SEMICOLON		{		  if (parsedebug)		    fprintf(stderr, "WORD+WORD LINE! %s %s\n", $1, $2);		  if (STREQ($1, "accessmode")) {		    if (parsedebug)		      fprintf(stderr, "accessmode +%s\n", $2);		    if (!fist_validate_decl_accessmode($2)) {		      yyerror("unknown FiST accessmode");		      YYABORT;		    }		  } else if (STREQ($1, "debug")) {		    if (parsedebug)		      fprintf(stderr, "debug +%s\n", $2);		    if (!fist_validate_decl_debug($2)) {		      yyerror("unknown FiST debug flag");		      YYABORT;		    }		  } else if (STREQ($1, "dynamic_inode_numbers")) {		    if (parsedebug)		      fprintf(stderr, "dynamic_inode_numbers +%s\n", $2);		    if (!fist_validate_decl_dynamic_inode_numbers($2)) {		      yyerror("unknown FiST dynamic_inode_numbers flag");		      YYABORT;		    }		  } else if (STREQ($1, "encoding_type")) {		    if (parsedebug)		      fprintf(stderr, "encoding_type +%s\n", $2);		    if (!fist_validate_decl_encoding_type($2)) {		      yyerror("unknown FiST encoding_type flag");		      YYABORT;		    }		  } else if (STREQ($1, "errorcode")) {		    if (parsedebug)		      fprintf(stderr, "errorcode +%s\n", $2);		    if (!fist_validate_decl_errorcode($2, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		  } else if (STREQ($1, "filter")) {		    if (parsedebug)		      fprintf(stderr, "filter +%s\n", $2);		    if (!fist_validate_decl_filter($2)) {		      yyerror("unknown FiST filter type");		      YYABORT;		    }		  } else if (STREQ($1, "fsname")) {		    if (parsedebug)		      fprintf(stderr, "fsname +%s\n", $2);		    if (STREQ(fist_globals.fg_fsname, $2))		      strcpy(fist_globals.fg_fsname, $2);		    else {		      yyerror("not allowed to override fsname (taken from the fist file)");		      YYABORT;		    }		  } else if (STREQ($1, "mntflag")) {		    if (parsedebug)		      fprintf(stderr, "mntflag +%s\n", $2);		    if (!fist_validate_decl_mntflag($2, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		  } else if (STREQ($1, "mntstyle")) {		    if (parsedebug)		      fprintf(stderr, "mntstyle +%s\n", $2);		    if (!fist_validate_decl_mntstyle($2)) {		      yyerror("unknown FiST mntstyle flag");		      YYABORT;		    }		  } else {		    yyerror("unknown FiST declaration (word argument)");		    YYABORT;		  }		}		| WORD NUMBER SEMICOLON		{		  if (parsedebug)		    fprintf(stderr, "WORD+NUMBER LINE! %s %d\n", $1, $2);		  if (STREQ($1, "fanout")) {		    if (parsedebug)		      fprintf(stderr, "fanout +%d\n", $2);		    if (!fist_validate_decl_fanout($2)) {		      yyerror("bad FiST fanout value");		      YYABORT;		    }		  } else if (STREQ($1, "encoding_blocksize")) {		    if (parsedebug)		      fprintf(stderr, "encoding_blocksize +%d\n", $2);		    if (!fist_validate_decl_encoding_blocksize($2)) {		      yyerror("bad FiST encoding_blocksize value");		      YYABORT;		    }		  } else {		    yyerror("unknown FiST declaration (numeric argument)");		    YYABORT;		  }		}		| WORD LEFT_BRACE basic_data_types RIGHT_BRACE SEMICOLON		{		  if (parsedebug)		    fprintf(stderr, "WORD BDT line: %s\n", $1);		  if (STREQ($1, "mntdata")) {		    if (parsedebug)		      fprintf(stderr, "mntdata\n");		    if (fist_globals.fg_mntdata) {		      yyerror("already defined mntdata");		      YYABORT;		    }		    fist_globals.fg_mntdata = tmp_bdt;		    tmp_bdt = NULL; /* do not free it */		  } else if (STREQ($1, "pervfs")) {		    if (parsedebug)		      fprintf(stderr, "pervfs\n");		    if (fist_globals.fg_pervfs) {		      yyerror("already defined pervfs");		      YYABORT;		    }		    fist_globals.fg_pervfs = tmp_bdt;		    tmp_bdt = NULL; /* do not free it */		  } else if (STREQ($1, "pervnode")) {		    if (parsedebug)		      fprintf(stderr, "pervnode\n");		    if (fist_globals.fg_pervnode) {		      yyerror("already defined pervnode");		      YYABORT;		    }		    fist_globals.fg_pervnode = tmp_bdt;		    tmp_bdt = NULL; /* do not free it */		  } else {		    yyerror("unknown FiST declaration (word+bdt argument)");		    YYABORT;		  }		}		| WORD WORD LEFT_BRACE basic_data_types RIGHT_BRACE SEMICOLON		{		  if (parsedebug)		    fprintf(stderr, "WORD WORD BDT line: %s\n", $1);		  if (STREQ($1, "fileformat")) {		    if (parsedebug)		      fprintf(stderr, "fileformat +%s\n", $2);		    if (!fist_validate_decl_fileformat($2, tmp_bdt, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		    tmp_bdt = NULL; /* do not free it */		  } else if (STREQ($1, "ioctl")) {		    if (parsedebug)		      fprintf(stderr, "ioctl +%s\n", $2);		    if (!fist_validate_decl_ioctl($2, "both", tmp_bdt, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		    tmp_bdt = NULL; /* do not free it */		  } else {		    yyerror("unknown FiST declaration (word+word+bdt argument)");		    YYABORT;		  }		}		| WORD COLON WORD WORD LEFT_BRACE basic_data_types RIGHT_BRACE SEMICOLON		{		  if (parsedebug)		    fprintf(stderr, "WORD:WORD WORD BDT line: %s\n", $1);		  if (STREQ($1, "ioctl")) {		    if (parsedebug)		      fprintf(stderr, "ioctl:%s +%s\n", $3, $4);		    if (!fist_validate_decl_ioctl($4, $3, tmp_bdt, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		    tmp_bdt = NULL; /* do not free it */		  } else {		    yyerror("unknown FiST declaration (word:word+word+bdt argument)");		    YYABORT;		  }		}		| MSOURCE_LIST SEMICOLON		{		  char *cp;		  if (parsedebug)		    fprintf(stderr, "mod_src: %s\n", $1);		  cp = strtok($1, " \t");		  while (cp) {		    if (!fist_validate_decl_msources(cp, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		    cp = strtok(NULL, " \t");		  }		}		| MHEADER_LIST SEMICOLON		{		  char *cp;		  if (parsedebug)		    fprintf(stderr, "mod_hdr: %s\n", $1);		  cp = strtok($1, " \t");		  while (cp) {		    if (!fist_validate_decl_mheaders(cp, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		    cp = strtok(NULL, " \t");		  }		}		| USOURCE_LIST SEMICOLON		{		  char *cp;		  if (parsedebug)		    fprintf(stderr, "user_src: %s\n", $1);		  cp = strtok($1, " \t");		  while (cp) {		    if (!fist_validate_decl_usources(cp, errmsg)) {		      yyerror(errmsg);		      YYABORT;		    }		    cp = strtok(NULL, " \t");		  }		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av影院| 欧美特级限制片免费在线观看| 欧美日韩精品免费观看视频 | 欧美写真视频网站| www.在线欧美| 成人福利视频网站| 色综合天天做天天爱| 在线观看视频91| 91精品国产手机| 精品国产乱码久久久久久老虎| 日韩一二三区不卡| 欧美成人免费网站| 欧美激情一区二区| 成人免费小视频| 亚洲成av人片一区二区| 久久国产免费看| 成人综合婷婷国产精品久久| 欧美精品自拍偷拍| 国产精品美女久久久久久久| 国产精品国产a级| 99久久久无码国产精品| 在线一区二区三区| 国产亚洲一本大道中文在线| 国产成人在线电影| 亚洲欧洲综合另类| 国产一区二区女| 亚洲日本免费电影| 日韩一级免费观看| 成人午夜av电影| 亚洲一区二区三区四区在线观看| 91麻豆精品国产91久久久更新时间| 国内成人免费视频| 亚洲综合精品久久| 久久久久久久久久电影| 欧美三级视频在线| 国产精华液一区二区三区| 亚洲一区二区三区四区五区中文| 日韩一级在线观看| 99国产欧美另类久久久精品| 蜜臀91精品一区二区三区| 亚洲天堂2014| 久久久久国产精品厨房| 精品污污网站免费看| 国产a级毛片一区| 爽好多水快深点欧美视频| 国产精品免费丝袜| 欧美成人精精品一区二区频| 91久久精品一区二区| 国产精品99久久不卡二区| 日韩电影在线免费看| 国产精品国产三级国产有无不卡 | 91视视频在线观看入口直接观看www | 欧美三级日韩三级国产三级| 韩国女主播成人在线| 亚洲va欧美va人人爽| 国产精品久久久久精k8| 久久免费的精品国产v∧| 欧美一区二区在线免费观看| 91久久精品网| 91国产视频在线观看| 91丨porny丨首页| 成人一级片网址| 国产精品一区二区久久精品爱涩| 三级不卡在线观看| 亚洲一区在线观看免费观看电影高清 | 91美女在线观看| 国产一区二区三区av电影| 久久99国产精品成人| 亚洲成人在线免费| 亚洲尤物在线视频观看| 亚洲欧美在线观看| 亚洲手机成人高清视频| 久久久国产精品午夜一区ai换脸| 日韩欧美一区二区久久婷婷| 欧美丝袜第三区| 成人动漫视频在线| 国产精品一二三区在线| 精品在线视频一区| 免费欧美高清视频| 日韩精品午夜视频| 婷婷丁香久久五月婷婷| 一区二区三区鲁丝不卡| 国产精品视频免费看| 国产精品国产三级国产aⅴ原创| 精品91自产拍在线观看一区| 欧美一区二区三区免费视频| 欧美日韩久久久| 欧美三级电影在线观看| 欧美性xxxxxxxx| 欧洲人成人精品| 91高清视频在线| 不卡视频在线观看| 在线国产电影不卡| 欧美性大战久久久久久久蜜臀| 色综合久久久久| 91麻豆免费观看| 色欲综合视频天天天| 色播五月激情综合网| 91久久国产综合久久| 99国产精品久久久久久久久久久| 色丁香久综合在线久综合在线观看| 91视频精品在这里| 欧洲日韩一区二区三区| 欧美日韩成人综合| 日韩一区二区高清| www国产成人| 国产日韩三级在线| 欧美国产成人在线| 亚洲国产综合人成综合网站| 亚洲国产日韩在线一区模特| 午夜视频久久久久久| 日本视频一区二区三区| 精品无人码麻豆乱码1区2区 | 91啪在线观看| 在线观看日韩一区| 日韩欧美亚洲一区二区| 久久久五月婷婷| 亚洲视频在线观看三级| 午夜久久福利影院| 精品亚洲欧美一区| 国产毛片精品国产一区二区三区| 97se亚洲国产综合自在线| 欧美性大战久久| 久久综合色天天久久综合图片| 国产精品家庭影院| 午夜电影网亚洲视频| 麻豆精品一区二区| 91国内精品野花午夜精品| 7777精品伊人久久久大香线蕉的 | 欧美经典一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 日本色综合中文字幕| 国产成人在线观看免费网站| 色94色欧美sute亚洲13| 日韩一级成人av| 亚洲视频一区在线| 精品亚洲porn| 欧美伊人久久大香线蕉综合69| 欧美人与禽zozo性伦| 中文字幕免费不卡| 爽好久久久欧美精品| 成人sese在线| 欧美一区二区视频免费观看| 国产精品久久久久影院| 日日摸夜夜添夜夜添国产精品 | 国产精品久久99| 日本怡春院一区二区| 成人av资源下载| 精品久久五月天| 亚洲成人动漫精品| 国产1区2区3区精品美女| 欧美精品日日鲁夜夜添| 一区精品在线播放| 久久99国产精品免费网站| 在线观看91精品国产入口| 久久久激情视频| 日本美女一区二区三区视频| 不卡免费追剧大全电视剧网站| 日韩一区和二区| 亚洲高清免费观看| 92国产精品观看| 亚洲精品一区二区三区蜜桃下载 | 久久久电影一区二区三区| 午夜成人在线视频| 不卡高清视频专区| 欧美经典一区二区三区| 精品综合久久久久久8888| 久久精品一级爱片| 美日韩一级片在线观看| 欧美影院一区二区| 亚洲一级二级在线| 色悠悠久久综合| 久久久久久久精| 亚洲第一二三四区| 精品视频1区2区3区| 亚洲综合色网站| 一本大道久久a久久精品综合| 久久久99精品久久| 不卡的av在线| 国产精品免费aⅴ片在线观看| 国产精品综合二区| 国产亚洲福利社区一区| 精品一区二区三区蜜桃| 亚洲精品在线观| 成人网在线免费视频| 国产蜜臀av在线一区二区三区| 国产激情一区二区三区四区| 精品成a人在线观看| 国产一区二区影院| 国产亚洲1区2区3区| 成人av在线播放网址| 中文字幕日韩精品一区| 91在线高清观看| 亚洲一区免费在线观看| 欧洲一区在线电影| 天天亚洲美女在线视频| 日韩视频不卡中文| 国产自产2019最新不卡| 国产欧美日韩另类视频免费观看| 福利电影一区二区|