前の日 / 次の日 / 最新 / 2009-10

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2009-10-10 Sat

createSimpleLexer を使ってみる [javascript]

google-code-prettify の createSimpleLexer を使うと、
任意の正規表現でハンドラーを生成できる。

たとえば、以下のように書くと、D言語のコメントに対応する。
(ネストできるコメントは手抜き)

PR.registerLangHandler(
    PR.createSimpleLexer(
        /** 特定の文字で判別できる場合ここに書く
          * [style:string, patern:regexp, null, shortcut:string]
          * 例:#で始まるコメント行
          * [PR_COMMENT, /^#[^\r\n]*/, null, '#']
          * shortcut は必須
          */
        [
        ],
        /** 上でマッチしなかった場合に使われる。
          * [style:string, patern:regexp, null, shortcut:string]
          * 例://で始まるコメント行
          * [PR.PR_COMMENT,/^\/\/[^\r\n]*/, null]
          * shortcut は無くても良い
          * 配列の順にテストするので順番に注意する
          */
        [
            [PR.PR_COMMENT,/^\/\/[^\r\n]*/, null],
            [PR.PR_COMMENT,/^\/\*[\s\S]*?(?:\*\/|$)/, null],
            [PR.PR_COMMENT,/^\/\+[\s\S]*?(?:\+\/|$)/, null]
        ]),
    ['d']);