武汉大学编译原理第二次作业

来源:互联网 发布:linux服务器设置ip地址 编辑:程序博客网 时间:2024/06/11 03:41
%{ #include <time.h>#include <stdlib.h>#include <stdio.h>int length;%}SEP (";"|";"|"."|"。"|","|","|","|"!"|"!"|"\""|"”"|":")%x STMT%%[^ \n\t\r]  {  if (rand() % 2 ) printf("尼玛");  unput(yytext[0]);  length = 0;   BEGIN(STMT);  } [ \t\n\r] ;<STMT>{SEP}+[ \t]*(\n)*|{SEP}*[ \t]*(\n)+\r*        {        if (length <= 4) {           printf("!!!!!");        } else {           if (rand() % 3) printf( "!你伤不起啊!!!");           if (rand() % 3) printf( "!亲!!!!!");           if (rand() % 2) printf( "!有木有!!!!!");        }        printf("!\n");        BEGIN(INITIAL);       }<STMT>"我们"     length += 2; printf ("咱们") ; <STMT>"我"     length += 2; printf ("偶") ; <STMT>"什么"   length += 4; printf ("神马");<STMT>"你"   length += 2; printf ("泥");<STMT>"同志"   length += 4; printf ("筒子");<STMT>"院士"   length += 4; printf ("猿士");<STMT>"同学"   length += 4; printf ("童鞋");<STMT>"教授"   length += 4; printf ("叫兽");<STMT>"的"   length += 2; printf ("滴");<STMT>"人才"   length += 4; printf ("淫才");<STMT>[\x81-\xfe][\x40-\xfe] length +=2; ECHO;<STMT>.   length++; ECHO;%%main( int argc, char **argv ){  ++argv, --argc;  if ( argc > 0 ) {    if ((yyin = fopen( argv[0], "rb" )) == NULL) {      printf("the file %s could'nt open!\n", argv[0]);      exit (1);    }  }  else    yyin = stdin;    srand((int)time(0));  yylex();  fclose(yyin);  return 0;}int yywrap(){  return 1;}

0 0
原创粉丝点击