ゆの in Lex

元ネタ*1がいまいちわかんないすが,id:cho45 さんに捕捉されたかったので書いてみました。

Lex なので C と絡めないと動かないところが歯がゆいところですけど。

%{
#include <stdio.h>
int yywrap(void) { return 1; }
%}

%x BACK
%x SPEAK

%%

[ \t]+          /* whitespaces */

"X"             /* nothing */

"/"             fputs("ひだまり", stdout);

"_"             BEGIN(BACK);

<BACK>[ \t]+	/* whitespaces */

<BACK>"/"	fputs("スケッチ", stdout);

<BACK>"X"	fputs("×", stdout);

<BACK>"<"	{
		    fputs("365", stdout);
		    BEGIN(SPEAK);
		}
%%

スタート状態戻せよ(笑)という気もします。

% flex -8 yuno.l

% gcc -o yuno -lfl lex.yy.c

% ./yuno

X / _ / X < 来週も見てくださいね!
ひだまりスケッチ×365 来週も見てくださいね!
^D