GeSHiにSMLのsyntax highlightがマージされた
だいぶ前に書いてpull reqestしておいた、SMLコードのGeSHi用syntax highlight設定が本家にマージされてました。やったー。
support StandardML syntax #6
GeSHiはphpで書かれた汎用syntax highlighterで、言語毎に正規表現(のキモイ拡張)の塊を持っています。
各言語の設定は言語要素(文字列とかキーワードとか)毎に、それを切り出すための正規表現を持ちます。
今回StandardML用のファイルを書き、それが取り込まれました。
以下のように読み込んで表示すると…、
<?php $src = file_get_contents('sample.sml'); $language = 'standardml'; $geshi = new GeSHi($src, $language); $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); $geshi->set_line_style('background: #fcfcfc;', true); $geshi->set_tab_width(4); echo $geshi->parse_code(); ?>
こんな感じになります。
(レコードとかラムダとか使うともうちょっとカラフルになります)
真面目にパースしているわけではないのでそもそも仕組みから怪しいわけですが、手元ではそれなりに動いているようです。文字リテラルが怪しかった気がする。(もう忘れた)
とりあえず全てのキーワードとBasisのモジュールは拾ってあるはず。
ところでSMLは中置演算子を好きに導入できるので…。まぁその辺はカンベンして下さい(^^;;