元ネタ*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); } %% スタート