Hatena::Grouprubyist

Going My Ruby Way このページをアンテナに追加 RSSフィード

Ruby ロゴ (C) Ruby Association LLC

2012年05月11日(金)

Ripper を使う

23:56 | Ripper を使う - Going My Ruby Way を含むブックマーク はてなブックマーク - Ripper を使う - Going My Ruby Way Ripper を使う - Going My Ruby Way のブックマークコメント

Ripper を使った Ruby スクリプトのシンタックスハイライトを実現してみました。

Ripper::Filter が切り出したトークンに、VT100 のエスケープシーケンスで色をつけるだけの非常に単純なものです。gist に置きました。

lexer なんで当然といえば当然なんですが、Ripper は字句解析しているだけです。

例えば、:symbol

 [:symbeg, ':'] + [:ident, 'symbol']   # [記号, 記号値]

のように解析されます。:ident は識別子一般です。

なので、「:symbol」に色をつけたい場合は、これらの構文解析が必要になります。

(gist に貼ったものは「:」にしか色がつきません)


Ripper は構文解析を行なう Racc などと組み合わせて使うと、もっと気の利いたことができそうです。

kenchan505050kenchan5050502012/05/12 14:56はじめまして。まだRubyのグループに入ったばかりです。参考にさせてもらいます。ブログの更新応援しています。

lnzntlnznt2012/05/13 15:12id:kenchan505050 さん、コメントありがとうございます。
ツコッミ等ありましたら、またコメントお寄せください。
貴blog の更新も期待しています。