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

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

?? ansic.y

?? ANSI C的標準詞法描述和文法描述
?? Y
字號:
/*below is Yacc Grammer source for ANSI C*/ 

/*YACC--LALR(1) PARSER*/ 

%token IDENTIFIER CONSTANT STRING_LITERAL SIZEOF
%token PTR_OP INC_OP DEC_OP LEFT_OP RIGHT_OP LE_OP GE_OP EQ_OP NE_OP
%token AND_OP OR_OP MUL_ASSIGN DIV_ASSIGN MOD_ASSIGN ADD_ASSIGN
%token SUB_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN
%token XOR_ASSIGN OR_ASSIGN TYPE_NAME 

%token TYPEDEF EXTERN STATIC AUTO REGISTER
%token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE CONST VOLATILE VOID
%token STRUCT UNION ENUM ELIPSIS RANGE 

%token CASE DEFAULT IF ELSE SWITCH WHILE DO FOR GOTO CONTINUE BREAK RETURN 

%start file
%% 

primary_expr
 : identifier
 | CONSTANT
 | STRING_LITERAL
 | '(' expr ')'
 ; 

postfix_expr
 : primary_expr
 | postfix_expr '[' expr ']'
 | postfix_expr '(' ')'
 | postfix_expr '(' argument_expr_list ')'
 | postfix_expr '.' identifier
 | postfix_expr PTR_OP identifier
 | postfix_expr INC_OP
 | postfix_expr DEC_OP
 ; 

argument_expr_list
 : assignment_expr
 | argument_expr_list ',' assignment_expr
 ; 

unary_expr
 : postfix_expr
 | INC_OP unary_expr
 | DEC_OP unary_expr
 | unary_operator cast_expr
 | SIZEOF unary_expr
 | SIZEOF '(' type_name ')'
 ; 

unary_operator
 : '&'
 | '*'
 | '+'
 | '-'
 | '~'
 | '!'
 ; 

cast_expr
 : unary_expr
 | '(' type_name ')' cast_expr
 ; 

multiplicative_expr
 : cast_expr
 | multiplicative_expr '*' cast_expr
 | multiplicative_expr '/' cast_expr
 | multiplicative_expr '%' cast_expr
 ; 

additive_expr
 : multiplicative_expr
 | additive_expr '+' multiplicative_expr
 | additive_expr '-' multiplicative_expr
 ; 

shift_expr
 : additive_expr
 | shift_expr LEFT_OP additive_expr
 | shift_expr RIGHT_OP additive_expr
 ; 

relational_expr
 : shift_expr
 | relational_expr '<' shift_expr
 | relational_expr '>' shift_expr
 | relational_expr LE_OP shift_expr
 | relational_expr GE_OP shift_expr
 ; 

equality_expr
 : relational_expr
 | equality_expr EQ_OP relational_expr
 | equality_expr NE_OP relational_expr
 ; 

and_expr
 : equality_expr
 | and_expr '&' equality_expr
 ; 

exclusive_or_expr
 : and_expr
 | exclusive_or_expr '^' and_expr
 ; 

inclusive_or_expr
 : exclusive_or_expr
 | inclusive_or_expr '|' exclusive_or_expr
 ; 

logical_and_expr
 : inclusive_or_expr
 | logical_and_expr AND_OP inclusive_or_expr
 ; 

logical_or_expr
 : logical_and_expr
 | logical_or_expr OR_OP logical_and_expr
 ; 

conditional_expr
 : logical_or_expr
 | logical_or_expr '?' logical_or_expr ':' conditional_expr
 ; 

assignment_expr
 : conditional_expr
 | unary_expr assignment_operator assignment_expr
 ; 

assignment_operator
 : '='
 | MUL_ASSIGN
 | DIV_ASSIGN
 | MOD_ASSIGN
 | ADD_ASSIGN
 | SUB_ASSIGN
 | LEFT_ASSIGN
 | RIGHT_ASSIGN
 | AND_ASSIGN
 | XOR_ASSIGN
 | OR_ASSIGN
 ; 

expr
 : assignment_expr
 | expr ',' assignment_expr
 ; 

constant_expr
 : conditional_expr
 ; 

declaration
 : declaration_specifiers ';'
 | declaration_specifiers init_declarator_list ';'
 ; 

declaration_specifiers
 : storage_class_specifier
 | storage_class_specifier declaration_specifiers
 | type_specifier
 | type_specifier declaration_specifiers
 ; 

init_declarator_list
 : init_declarator
 | init_declarator_list ',' init_declarator
 ; 

init_declarator
 : declarator
 | declarator '=' initializer
 ; 

storage_class_specifier
 : TYPEDEF
 | EXTERN
 | STATIC
 | AUTO
 | REGISTER
 ; 

type_specifier
 : CHAR
 | SHORT
 | INT
 | LONG
 | SIGNED
 | UNSIGNED
 | FLOAT
 | DOUBLE
 | CONST
 | VOLATILE
 | VOID
 | struct_or_union_specifier
 | enum_specifier
 | TYPE_NAME
 ; 

struct_or_union_specifier
 : struct_or_union identifier '{' struct_declaration_list '}'
 | struct_or_union '{' struct_declaration_list '}'
 | struct_or_union identifier
 ; 

struct_or_union
 : STRUCT
 | UNION
 ; 

struct_declaration_list
 : struct_declaration
 | struct_declaration_list struct_declaration
 ; 

struct_declaration
 : type_specifier_list struct_declarator_list ';'
 ; 

struct_declarator_list
 : struct_declarator
 | struct_declarator_list ',' struct_declarator
 ; 

struct_declarator
 : declarator
 | ':' constant_expr
 | declarator ':' constant_expr
 ; 

enum_specifier
 : ENUM '{' enumerator_list '}'
 | ENUM identifier '{' enumerator_list '}'
 | ENUM identifier
 ; 

enumerator_list
 : enumerator
 | enumerator_list ',' enumerator
 ; 

enumerator
 : identifier
 | identifier '=' constant_expr
 ; 

declarator
 : declarator2
 | pointer declarator2
 ; 

declarator2
 : identifier
 | '(' declarator ')'
 | declarator2 '[' ']'
 | declarator2 '[' constant_expr ']'
 | declarator2 '(' ')'
 | declarator2 '(' parameter_type_list ')'
 | declarator2 '(' parameter_identifier_list ')'
 ; 

pointer
 : '*'
 | '*' type_specifier_list
 | '*' pointer
 | '*' type_specifier_list pointer
 ; 

type_specifier_list
 : type_specifier
 | type_specifier_list type_specifier
 ; 

parameter_identifier_list
 : identifier_list
 | identifier_list ',' ELIPSIS
 ; 

identifier_list
 : identifier
 | identifier_list ',' identifier
 ; 

parameter_type_list
 : parameter_list
 | parameter_list ',' ELIPSIS
 ; 

parameter_list
 : parameter_declaration
 | parameter_list ',' parameter_declaration
 ; 

parameter_declaration
 : type_specifier_list declarator
 | type_name
 ; 

type_name
 : type_specifier_list
 | type_specifier_list abstract_declarator
 ; 

abstract_declarator
 : pointer
 | abstract_declarator2
 | pointer abstract_declarator2
 ; 

abstract_declarator2
 : '(' abstract_declarator ')'
 | '[' ']'
 | '[' constant_expr ']'
 | abstract_declarator2 '[' ']'
 | abstract_declarator2 '[' constant_expr ']'
 | '(' ')'
 | '(' parameter_type_list ')'
 | abstract_declarator2 '(' ')'
 | abstract_declarator2 '(' parameter_type_list ')'
 ; 

initializer
 : assignment_expr
 | '{' initializer_list '}'
 | '{' initializer_list ',' '}'
 ; 

initializer_list
 : initializer
 | initializer_list ',' initializer
 ; 

statement
 : labeled_statement
 | compound_statement
 | expression_statement
 | selection_statement
 | iteration_statement
 | jump_statement
 ; 

labeled_statement
 : identifier ':' statement
 | CASE constant_expr ':' statement
 | DEFAULT ':' statement
 ; 

compound_statement
 : '{' '}'
 | '{' statement_list '}'
 | '{' declaration_list '}'
 | '{' declaration_list statement_list '}'
 ; 

declaration_list
 : declaration
 | declaration_list declaration
 ; 

statement_list
 : statement
 | statement_list statement
 ; 

expression_statement
 : ';'
 | expr ';'
 ; 

selection_statement
 : IF '(' expr ')' statement
 | IF '(' expr ')' statement ELSE statement
 | SWITCH '(' expr ')' statement
 ; 

iteration_statement
 : WHILE '(' expr ')' statement
 | DO statement WHILE '(' expr ')' ';'
 | FOR '(' ';' ';' ')' statement
 | FOR '(' ';' ';' expr ')' statement
 | FOR '(' ';' expr ';' ')' statement
 | FOR '(' ';' expr ';' expr ')' statement
 | FOR '(' expr ';' ';' ')' statement
 | FOR '(' expr ';' ';' expr ')' statement
 | FOR '(' expr ';' expr ';' ')' statement
 | FOR '(' expr ';' expr ';' expr ')' statement
 ; 

jump_statement
 : GOTO identifier ';'
 | CONTINUE ';'
 | BREAK ';'
 | RETURN ';'
 | RETURN expr ';'
 ; 

file
 : external_definition
 | file external_definition
 ; 

external_definition
 : function_definition
 | declaration
 ; 

function_definition
 : declarator function_body
 | declaration_specifiers declarator function_body
 ; 

function_body
 : compound_statement
 | declaration_list compound_statement
 ; 

identifier
 : IDENTIFIER
 ;
%% 

#include <stdio.h> 

extern char yytext[];
extern int column; 

yyerror(s)
char *s;
{
 fflush(stdout);
 printf("\n%*s\n%*s\n", column, "^", column, s);
} 

main()
{
 int yyparse(); 

 return(yyparse());
}
\Rogue\Monster\
else
  echo "will not over write ./main.c"
fi
if `test ! -s ./scan.l`
then
echo "writting ./scan.l"
cat > ./scan.l << '\Rogue\Monster\'
D   [0-9]
L   [a-zA-Z_]
H   [a-fA-F0-9]
E   [Ee][+-]?{D}+
FS   (f|F|l|L)
IS   (u|U|l|L)* 

%{
#include <stdio.h>
#include "y.tab.h" 

void count();
%} 

%%
"/*"   { comment(); } 

"auto"   { count(); return(AUTO); }
"break"   { count(); return(BREAK); }
"case"   { count(); return(CASE); }
"char"   { count(); return(CHAR); }
"const"   { count(); return(CONST); }
"continue"  { count(); return(CONTINUE); }
"default"  { count(); return(DEFAULT); }
"do"   { count(); return(DO); }
"double"  { count(); return(DOUBLE); }
"else"   { count(); return(ELSE); }
"enum"   { count(); return(ENUM); }
"extern"  { count(); return(EXTERN); }
"float"   { count(); return(FLOAT); }
"for"   { count(); return(FOR); }
"goto"   { count(); return(GOTO); }
"if"   { count(); return(IF); }
"int"   { count(); return(INT); }
"long"   { count(); return(LONG); }
"register"  { count(); return(REGISTER); }
"return"  { count(); return(RETURN); }
"short"   { count(); return(SHORT); }
"signed"  { count(); return(SIGNED); }
"sizeof"  { count(); return(SIZEOF); }
"static"  { count(); return(STATIC); }
"struct"  { count(); return(STRUCT); }
"switch"  { count(); return(SWITCH); }
"typedef"  { count(); return(TYPEDEF); }
"union"   { count(); return(UNION); }
"unsigned"  { count(); return(UNSIGNED); }
"void"   { count(); return(VOID); }
"volatile"  { count(); return(VOLATILE); }
"while"   { count(); return(WHILE); } 

{L}({L}|{D})*  { count(); return(check_type()); } 

0[xX]{H}+{IS}?  { count(); return(CONSTANT); }
0[xX]{H}+{IS}?  { count(); return(CONSTANT); }
0{D}+{IS}?  { count(); return(CONSTANT); }
0{D}+{IS}?  { count(); return(CONSTANT); }
{D}+{IS}?  { count(); return(CONSTANT); }
{D}+{IS}?  { count(); return(CONSTANT); }
'(\\.|[^\\'])+'  { count(); return(CONSTANT); } 

{D}+{E}{FS}?  { count(); return(CONSTANT); }
{D}*"."{D}+({E})?{FS}? { count(); return(CONSTANT); }
{D}+"."{D}*({E})?{FS}? { count(); return(CONSTANT); } 

\"(\\.|[^\\"])*\" { count(); return(STRING_LITERAL); } 

">>="   { count(); return(RIGHT_ASSIGN); }
"<<="   { count(); return(LEFT_ASSIGN); }
"+="   { count(); return(ADD_ASSIGN); }
"-="   { count(); return(SUB_ASSIGN); }
"*="   { count(); return(MUL_ASSIGN); }
"/="   { count(); return(DIV_ASSIGN); }
"%="   { count(); return(MOD_ASSIGN); }
"&="   { count(); return(AND_ASSIGN); }
"^="   { count(); return(XOR_ASSIGN); }
"|="   { count(); return(OR_ASSIGN); }
">>"   { count(); return(RIGHT_OP); }
"<<"   { count(); return(LEFT_OP); }
"++"   { count(); return(INC_OP); }
"--"   { count(); return(DEC_OP); }
"->"   { count(); return(PTR_OP); }
"&&"   { count(); return(AND_OP); }
"||"   { count(); return(OR_OP); }
"<="   { count(); return(LE_OP); }
">="   { count(); return(GE_OP); }
"=="   { count(); return(EQ_OP); }
"!="   { count(); return(NE_OP); }
";"   { count(); return(';'); }
"{"   { count(); return('{'); }
"}"   { count(); return('}'); }
","   { count(); return(','); }
":"   { count(); return(':'); }
"="   { count(); return('='); }
"("   { count(); return('('); }
")"   { count(); return(')'); }
"["   { count(); return('['); }
"]"   { count(); return(']'); }
"."   { count(); return('.'); }
"&"   { count(); return('&'); }
"!"   { count(); return('!'); }
"~"   { count(); return('~'); }
"-"   { count(); return('-'); }
"+"   { count(); return('+'); }
"*"   { count(); return('*'); }
"/"   { count(); return('/'); }
"%"   { count(); return('%'); }
"<"   { count(); return('<'); }
">"   { count(); return('>'); }
"^"   { count(); return('^'); }
"|"   { count(); return('|'); }
"?"   { count(); return('?'); } 

[ \t\v\n\f]  { count(); }
.   { /* ignore bad characters */ } 

%% 

yywrap()
{
 return(1);
} 

comment()
{
 char c, c1; 

loop:
 while ((c = input()) != '*' && c != 0)
  putchar(c); 

 if ((c1 = input()) != '/' && c != 0)
 {
  unput(c1);
  goto loop;
 } 

 if (c != 0)
  putchar(c1);
} 

int column = 0; 

void count()
{
 int i; 

 for (i = 0; yytext[i] != '\0'; i++)
  if (yytext[i] == '\n')
   column = 0;
  else if (yytext[i] == '\t')
   column += 8 - (column % 8);
  else
   column++; 

 ECHO;
} 

int check_type()
{
/*
* pseudo code --- this is what it should check
*
* if (yytext == type_name)
*  return(TYPE_NAME);
*
* return(IDENTIFIER);
*/ 

/*
* it actually will only return IDENTIFIER
*/ 

 return(IDENTIFIER);
}
\Rogue\Monster\
else
  echo "will not over write ./scan.l"
fi
if `test ! -s ./y.tab.h`
then
echo "writting ./y.tab.h"
cat > ./y.tab.h << '\Rogue\Monster\'
# define IDENTIFIER 257
# define CONSTANT 258
# define STRING_LITERAL 259
# define SIZEOF 260
# define PTR_OP 261
# define INC_OP 262
# define DEC_OP 263
# define LEFT_OP 264
# define RIGHT_OP 265
# define LE_OP 266
# define GE_OP 267
# define EQ_OP 268
# define NE_OP 269
# define AND_OP 270
# define OR_OP 271
# define MUL_ASSIGN 272
# define DIV_ASSIGN 273
# define MOD_ASSIGN 274
# define ADD_ASSIGN 275
# define SUB_ASSIGN 276
# define LEFT_ASSIGN 277
# define RIGHT_ASSIGN 278
# define AND_ASSIGN 279
# define XOR_ASSIGN 280
# define OR_ASSIGN 281
# define TYPE_NAME 282
# define TYPEDEF 283
# define EXTERN 284
# define STATIC 285
# define AUTO 286
# define REGISTER 287
# define CHAR 288
# define SHORT 289
# define INT 290
# define LONG 291
# define SIGNED 292
# define UNSIGNED 293
# define FLOAT 294
# define DOUBLE 295
# define CONST 296
# define VOLATILE 297
# define VOID 298
# define STRUCT 299
# define UNION 300
# define ENUM 301
# define ELIPSIS 302
# define RANGE 303
# define CASE 304
# define DEFAULT 305
# define IF 306
# define ELSE 307
# define SWITCH 308
# define WHILE 309
# define DO 310
# define FOR 311
# define GOTO 312
# define CONTINUE 313
# define BREAK 314
# define RETURN 315
\Rogue\Monster\
else
  echo "will not over write ./y.tab.h"
fi
echo "Finished archive 1 of 1"
exit

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品无码永久免费888| 亚洲欧美怡红院| 不卡大黄网站免费看| 免费看欧美女人艹b| 成人欧美一区二区三区小说| 日韩欧美区一区二| 欧洲精品一区二区三区在线观看| 国产成a人亚洲| 美国毛片一区二区| 五月激情六月综合| 亚洲免费观看在线视频| 中文字幕乱码日本亚洲一区二区| 日韩丝袜情趣美女图片| 欧美日韩精品二区第二页| 成人av网站免费| 国产激情视频一区二区在线观看 | 成人在线视频首页| 免费久久99精品国产| 亚洲国产成人av网| 亚洲激情图片一区| 日韩毛片高清在线播放| 中文字幕av一区二区三区免费看 | 欧美刺激脚交jootjob| 欧美亚洲国产bt| 91丝袜美女网| 一本色道久久综合狠狠躁的推荐| av在线播放成人| 成人午夜电影小说| 成人精品亚洲人成在线| 风间由美一区二区av101| 91精品啪在线观看国产60岁| 99国产精品久| av资源网一区| 91视频com| 色嗨嗨av一区二区三区| 色综合视频在线观看| 一本一本久久a久久精品综合麻豆| 粉嫩13p一区二区三区| 国产成人精品综合在线观看| 国产精品1区二区.| 成人午夜大片免费观看| thepron国产精品| 91色九色蝌蚪| 欧美偷拍一区二区| 制服丝袜国产精品| 日韩一区二区三区免费看| 欧美精品久久久久久久久老牛影院| 欧美性色黄大片| 欧美一区二区美女| 精品奇米国产一区二区三区| 精品美女被调教视频大全网站| 欧美成人一区二区三区在线观看| 26uuu国产电影一区二区| 久久精品欧美日韩精品| 国产精品传媒在线| 亚洲综合激情另类小说区| 天天爽夜夜爽夜夜爽精品视频| 日本亚洲最大的色成网站www| 国内成人免费视频| 成人毛片在线观看| 欧美性受xxxx黑人xyx性爽| 91精品国产色综合久久久蜜香臀| 精品入口麻豆88视频| 国产精品美女久久福利网站| 亚洲人123区| 美脚の诱脚舐め脚责91| 国产99久久久国产精品潘金| 91女厕偷拍女厕偷拍高清| 欧美偷拍一区二区| 久久久精品天堂| 夜夜嗨av一区二区三区| 久久精品国产亚洲一区二区三区| 成人在线视频一区二区| 欧美日韩一区二区三区免费看| 精品国产污网站| 亚洲视频中文字幕| 免费亚洲电影在线| 91影院在线免费观看| 日韩视频一区二区在线观看| 中文字幕在线不卡一区| 午夜精品久久久久久| 成人国产精品免费| 欧美一区二区视频在线观看| 国产精品久久久久天堂| 日韩在线a电影| www.亚洲精品| 精品久久久久一区| 一区二区三区在线观看网站| 日韩免费成人网| 国产精品不卡在线观看| 精一区二区三区| 欧美性受xxxx黑人xyx性爽| 国产日本一区二区| 美女性感视频久久| 欧美在线观看视频在线| 中文字幕免费不卡| 狠狠色狠狠色综合系列| 欧美日韩一级二级| 亚洲美女精品一区| 福利视频网站一区二区三区| 欧美成人猛片aaaaaaa| 亚洲成年人影院| 91蜜桃婷婷狠狠久久综合9色| 国产亚洲欧美日韩日本| 免费观看成人av| 欧美乱妇23p| 一区二区在线观看免费| 国产经典欧美精品| 精品国产91久久久久久久妲己| 亚洲午夜一区二区| 色婷婷综合久久久久中文一区二区| 久久先锋影音av鲁色资源| 麻豆91免费观看| 在线不卡一区二区| 婷婷六月综合网| 欧美三日本三级三级在线播放| 国产精品成人免费| www.亚洲色图| 中文字幕一区二区三区不卡| 国产精品亚洲а∨天堂免在线| 精品久久久久久久久久久久久久久 | 97精品视频在线观看自产线路二 | 亚洲一区二区三区在线| 97se亚洲国产综合自在线| 国产日韩欧美高清在线| 国产精品一区免费视频| 久久精品男人的天堂| 国产成人在线视频免费播放| 国产亚洲精品超碰| 国产99久久久国产精品免费看 | 天天综合色天天综合色h| 欧美日本一区二区三区| 午夜久久久久久久久久一区二区| 欧美日韩激情一区二区三区| 五月天亚洲婷婷| 日韩一区二区三区视频| 另类人妖一区二区av| 亚洲精品一区二区三区在线观看 | 亚洲一区二区三区视频在线播放| 波多野结衣中文字幕一区| 中文字幕一区二区三区在线播放| www.欧美日韩| 亚洲久草在线视频| 欧美视频一二三区| 日韩精品国产欧美| 精品久久久久久亚洲综合网| 国产成人综合亚洲91猫咪| 国产精品久久久久久久久晋中| av不卡免费电影| 亚洲一区二区三区视频在线| 欧美美女激情18p| 美女视频网站黄色亚洲| 久久婷婷综合激情| 99国产精品视频免费观看| 亚洲午夜羞羞片| 精品成人佐山爱一区二区| 国产91丝袜在线播放| 亚洲精品自拍动漫在线| 欧美另类久久久品| 国产精品一区二区久久精品爱涩| 国产精品久久久久久久裸模| 欧美三级电影在线看| 经典三级一区二区| 亚洲欧美电影一区二区| 在线播放91灌醉迷j高跟美女| 久久爱www久久做| 国产精品美女久久久久av爽李琼| 欧美色中文字幕| 国产精品自拍在线| 亚洲一区二区三区爽爽爽爽爽| 日韩欧美久久久| 99久久久久久| 美女网站在线免费欧美精品| 中文字幕亚洲成人| 日韩一区二区在线观看视频| 成人蜜臀av电影| 免费在线观看不卡| 亚洲三级电影网站| 欧美白人最猛性xxxxx69交| 99re在线精品| 久久91精品国产91久久小草| 最好看的中文字幕久久| 精品少妇一区二区三区在线视频| voyeur盗摄精品| 黄页视频在线91| 亚洲综合精品自拍| 国产精品女人毛片| 欧美一级夜夜爽| 一本到一区二区三区| 国产乱对白刺激视频不卡| 亚洲国产aⅴ天堂久久| 国产精品区一区二区三区| 欧美一区日本一区韩国一区| 99re这里只有精品首页| 精品在线观看免费| 天堂成人国产精品一区| 亚洲欧美另类久久久精品2019| 久久精品综合网| 欧美一级理论性理论a| 日本韩国欧美在线|