Perl6 には Grammar という機能があるのですが、これがまた凄いんです。スキャナとトークナイザと処理系が引っ付いている様な物がデフォルトで提供されているんです。 通常はこれらが別の機能として提供されており、プログラミング言語を実装する過程でデータの受け渡しがシームレスではなく、実装を変えたりするのが非常に面倒だったりします。しかしこれが Perl6 という一つの処理系の中で提供されてしまっている為、本来であれば数百ステップくらい掛かってしまう俺言語のコードが50ステップ程度で書けてしまいます。 use v6; grammar SyoboiScript::Grammar { token num { <[0..9]>+ } token ident { <[a..z]>+ } token op { '+' || '-' || '*' || '/' } token exp { <iden
![Big Sky :: Perl6 の grammar で俺言語「しょぼいスクリプト」を作った。](https://cdn-ak-scissors.b.st-hatena.com/image/square/ae5f360d3c82cd87e23b34fb6f5013ab7cf0f1a6/height=288;version=1;width=512/https%3A%2F%2Fmattn.kaoriya.net%2Fimages%2Flogo.png)