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

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

?? parser.lma

?? its about compiler for LL1 and LR
?? LMA
字號:
/*@A (C) 1992 Allen I. Holub                                                */

%{
#include <stdarg.h>
#include <tools/debug.h>
#include <tools/hash.h>
#include <tools/set.h>

#define CREATING_LLAMA_PARSER	/* Suppress various definitions in parser.h */
#include "parser.h"		/* that conflict with llama-generated defs. */

/* This file is a llama input file that creates a parser for llama, like a snake
 * eating its tail. The resulting yyparse.c file can be used in place of the
 * recursive-descent parser in llpar.c. Note that, though this file is certainly
 * easier to write than the recursive-descent version, the resulting code is
 * about 1K larger. nows() should be called before firing up the parser.
 * Most of the external subroutines called from this module are in acts.c.
 * Exceptions are:
 */

extern char	*yytext;	/* Generated by lex	  */
extern int	yylineno;	/* Generated by lex	  */
extern void	nows P((void));	/* Declared in llama.lex. */
extern void	ws   P((void));	/* Declared in llama.lex. */

#define YYSTYPE  char*		/* Value-stack type.	  */
%}

%token ACTION		/*	{str}	   */
%token CODE_BLOCK	/*	%{ ... %}  */
%token COLON		/*	:	   */
%token END_OPT		/*      ]  ]*	   */
%token FIELD		/*	<name>	   */
%token LEFT		/*	%left	   */
%token NAME		/*	name	   */
%token NONASSOC		/*	%nonassoc  */
%token OR		/*	|	   */
%token OTHER		/*  anything else     (USED only in llpar.c) */
%token PREC		/*	%prec	   */
%token RIGHT		/*	%right	   */
%token SEMI		/*	;	   */
%token SEPARATOR	/*	%%	   */
%token START		/*	%start	   */
%token START_OPT	/*      [ 	   */
%token SYNCH		/*	%synch	   */
%token TERM_SPEC	/* %term or %token */
%token TYPE		/*      %type	   */
%token PERCENT_UNION	/*	%union	   */
%token WHITESPACE	/*  0 <= c <= ' '     (USED only in llpar.c) */

%synch SEMI OR
%%
spec 		: defs SEPARATOR { first_sym(); } rules end
		;
end		: {ws();} SEPARATOR
		| /* empty */
		;
defs		: SYNCH snames defs
		| PERCENT_UNION ACTION  { union_def( yytext ); } defs
		| TYPE				fnames {new_field("");} defs
		| TERM_SPEC  { new_lev ( 0 ); }	tnames {new_field("");} defs
		| LEFT       { new_lev ('l'); }	pnames {new_field("");} defs
		| RIGHT      { new_lev ('r'); }	pnames {new_field("");} defs
		| NONASSOC   { new_lev ('n'); }	pnames {new_field("");} defs
	 	| CODE_BLOCK	/* the block is copied out by yylex */  defs
		| START
		  {
		     lerror(NONFATAL,"%%start not supported by occs. First " );
		     lerror(NOHDR,   "production is the start production\n." );
		  }
		  opt_names defs

		| /* empty */
		;
fnames		: NAME  { new_nonterm (yytext,0); } fnames
		| FIELD { new_field   (yytext);   } fnames
		| /* empty */
		;
tnames		: NAME  { make_term(yytext); } tnames
		| FIELD { new_field(yytext); } tnames
		| /* empty */
		;
pnames          : NAME  { prec_list(yytext); } pnames
		| FIELD { new_field(yytext); } pnames
		| /* empty */
		;
opt_names	: NAME opt_names
		| /* empty */
		;
snames		: NAME { add_synch(yytext); } snames | /* empty */ ;
rules		: rule rules
		| /* empty */
		;
rule		: NAME  { new_nonterm(yytext,1); } COLON right_sides
		| FIELD { new_nonterm(yytext,1); } COLON right_sides
		;
right_sides	: { new_rhs(); } rhs end_rhs
		;
end_rhs		: OR right_sides
		| SEMI
		;
rhs		: NAME	      { add_to_rhs(yytext, 0             ); }  rhs
		| FIELD	      { add_to_rhs(yytext, 0             ); }  rhs
		| ACTION      { add_to_rhs(yytext, start_action()); }  rhs
		| PREC NAME   { prec      (yytext                ); }  rhs
		| START_OPT       { start_opt( yytext ); }
		      rhs END_OPT { end_opt  ( yytext ); }
		          rhs
		| /* empty */
		;
%%
/* Support routines for the llama parser. The arguments must be declared void*
 * to get them to match the prototypes in l.h. They are really ponters to
 * yyvstypes, though.
 */

void 	yy_init_llama( tovs )
void	*tovs;
{
    ((yyvstype *)tovs)->left = ((yyvstype *)tovs)->right = "" ;
}

#ifdef __TURBOC__
#pragma argsused
#endif

char *yypstk(tovs, tods)
void *tovs;
char *tods;
{
    static char buf[128];
    yyvstype *vs = (yyvstype *)tovs;

    if( *vs->left || *vs->right )
    {
	sprintf(buf,"[%s,%s]", vs->left, vs->right);
	return buf;
    }
    else
	return "";
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区福利视频| 97精品久久久午夜一区二区三区| 亚洲精品国产成人久久av盗摄| www激情久久| 精品美女被调教视频大全网站| 欧美精品一级二级三级| 911精品国产一区二区在线| 欧美视频一区二区在线观看| 欧美日韩成人综合在线一区二区| 欧美日韩精品福利| 欧美一区二区视频网站| 日韩免费性生活视频播放| 久久免费电影网| 国产精品视频看| 一区二区三区在线观看动漫| 亚洲尤物视频在线| 免费成人性网站| 国产精品中文字幕欧美| 波多野结衣在线一区| 91电影在线观看| 欧美一区二区福利视频| 国产欧美一二三区| 亚洲美女免费视频| 视频一区国产视频| 国产精品资源在线| 欧美性生活一区| 精品国精品国产尤物美女| 中日韩免费视频中文字幕| 亚洲欧美电影一区二区| 青青草原综合久久大伊人精品优势| 国产成人午夜视频| 欧美综合一区二区| 欧美成人r级一区二区三区| 国产精品天美传媒| 日本aⅴ免费视频一区二区三区| 国产福利一区在线| 欧美精品丝袜久久久中文字幕| 精品国内二区三区| 亚洲国产日韩a在线播放| 国产一区在线观看视频| 在线欧美日韩精品| 国产精品天美传媒沈樵| 视频一区欧美精品| 91久久奴性调教| 久久蜜臀精品av| 免费观看久久久4p| 欧美午夜精品免费| 国产精品久久久久久妇女6080| 日韩电影在线观看电影| 99国产精品久| 国产日韩欧美一区二区三区乱码 | 成人综合婷婷国产精品久久免费| 欧美伊人久久大香线蕉综合69| 欧美激情在线免费观看| 蜜臀精品一区二区三区在线观看| 91小视频在线免费看| 国产色婷婷亚洲99精品小说| 亚洲电影第三页| 91理论电影在线观看| 国产拍欧美日韩视频二区| 日本不卡在线视频| 欧美日本一道本| 亚洲一区欧美一区| 色综合中文综合网| 国产98色在线|日韩| 欧美mv日韩mv| 日本v片在线高清不卡在线观看| 欧美亚洲国产bt| 一区二区三区av电影| av影院午夜一区| 国产精品乱子久久久久| 国产精品99久久久久久宅男| wwwwxxxxx欧美| 国产中文一区二区三区| 精品粉嫩超白一线天av| 激情av综合网| 国产三级精品三级| 国产传媒久久文化传媒| 欧美韩国一区二区| 国产成人精品综合在线观看| 久久久91精品国产一区二区精品| 久久精品国产成人一区二区三区 | 国产精品网曝门| www.66久久| 亚洲欧美成aⅴ人在线观看| 99re热这里只有精品视频| 椎名由奈av一区二区三区| 在线亚洲精品福利网址导航| 亚洲免费伊人电影| 欧美日韩在线精品一区二区三区激情 | 国产一区二区伦理| 久久久蜜臀国产一区二区| 成人毛片在线观看| 亚洲美女屁股眼交3| 欧美日韩大陆一区二区| 激情综合色综合久久综合| 国产日韩精品一区二区浪潮av| 成人丝袜视频网| 亚洲国产日日夜夜| 久久蜜桃av一区二区天堂| 日本韩国欧美一区| 天使萌一区二区三区免费观看| 日韩免费在线观看| 99国产精品国产精品久久| 日韩精品福利网| 国产清纯美女被跳蛋高潮一区二区久久w | 在线观看区一区二| 久久不见久久见中文字幕免费| 国产欧美一区视频| 欧美影视一区在线| 狠狠色丁香久久婷婷综合丁香| 国产精品三级电影| 欧美人伦禁忌dvd放荡欲情| 国产一区二区电影| 亚洲超碰97人人做人人爱| 久久奇米777| 欧美性感一类影片在线播放| 国产综合久久久久影院| 一区二区三区不卡视频| 久久久777精品电影网影网| 欧美日韩成人综合| 99精品在线免费| 开心九九激情九九欧美日韩精美视频电影| 国产精品精品国产色婷婷| 911国产精品| 色婷婷一区二区三区四区| 国产呦萝稀缺另类资源| 热久久国产精品| 亚洲天堂av一区| 久久一二三国产| 日韩一区二区三区观看| 欧美在线不卡一区| 91视频精品在这里| 国产精品小仙女| 国产精品99久久久久久有的能看 | 国产麻豆视频精品| 欧美aaaaaa午夜精品| 亚洲午夜一区二区| 亚洲六月丁香色婷婷综合久久| 亚洲国产精品t66y| 日本一区免费视频| 久久久久久久久伊人| 欧美大片在线观看| 精品少妇一区二区三区日产乱码| 欧美性猛交xxxxxxxx| 欧美丝袜丝交足nylons| 一本一道久久a久久精品综合蜜臀| 成人伦理片在线| 成人av午夜影院| av欧美精品.com| 北条麻妃一区二区三区| 91同城在线观看| 91麻豆视频网站| 精品视频123区在线观看| 在线观看视频欧美| 91福利视频网站| 制服丝袜av成人在线看| 欧美高清视频一二三区 | 午夜不卡av在线| 日日欢夜夜爽一区| 久久99国产精品久久99果冻传媒| 日韩精品一级中文字幕精品视频免费观看 | 亚洲伦理在线精品| 悠悠色在线精品| 日日夜夜精品视频天天综合网| 午夜精品视频在线观看| 欧美aaaaa成人免费观看视频| 久久99精品久久久久婷婷| 国产一区二区在线观看视频| 成人ar影院免费观看视频| 91美女在线观看| 日韩欧美一二三| 国产精品视频一二| 亚洲大片在线观看| 国模一区二区三区白浆| av午夜一区麻豆| 日韩欧美一级二级三级久久久| 26uuu成人网一区二区三区| 中文字幕精品一区二区精品绿巨人 | 亚洲精品一区二区三区影院| 国产欧美精品国产国产专区| 国产精品电影一区二区三区| 五月激情六月综合| 国产精品一区二区不卡| 欧美日韩日本视频| 久久久久国产精品厨房| 国产精品视频在线看| 三级精品在线观看| 高清久久久久久| 在线观看精品一区| 久久久电影一区二区三区| 一区二区三区中文在线| 九九国产精品视频| 在线观看av不卡| 精品福利在线导航| 亚洲成人av在线电影| 9i在线看片成人免费| 日韩精品一区国产麻豆| 一级特黄大欧美久久久| 国产aⅴ精品一区二区三区色成熟|