%{
#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>"教
武汉大学编译原理第二次作业
最新推荐文章于 2024-01-11 12:59:31 发布
这个博客展示了如何使用C语言实现一个简单的编译器,它将特定的词汇转换为有趣的表达方式。代码中定义了词法规则,并通过`yylex()`函数处理输入,根据预定义的规则对字符进行替换,例如将'我'替换为'偶',并将一些短语转换为网络流行用语。

最低0.47元/天 解锁文章
3557

被折叠的 条评论
为什么被折叠?



