Wiki文法パーサ

やることが整理されたので、ひとつひとつ片付けていこう。
まず、なんでパーサが書きづらいかを考えてみよう。
例えば、はてな風に

*hoge

<h1>hoge</h1>

に変換するとする。
ほいで、こうすると行頭の"*"は特殊な意味をもつ。でも、行中の"*"は別になんの意味も持たない。で、これをlex/yaccで実装する方法が思いつかないわけだ。
じゃあ、それを直接書いてやろう。

head : STAR line eol

eol : EOL /* \nのこと */ 
    | EOF

line: chars eol

chars: char
     | char chars

char : STAR
     | CHAR

ふむ、3つほどshift/reduce conflictが起きてる。でも、動いてるみたいだし、とりあえず後回しで。