Pot.js と PotLite.js で利用可能。
引数 code を JavaScript コードとみなし、トークン単位に分解して返します。
引数 code を JavaScript コードとしてトークン単位に分解して配列で返します。
分解した際に ホワイトスペースとコメントは除去されます。改行は残ります。
E4X など一部の表現については完全に分解できないかもしれません。
Pot.globalize() が適応されている場合、Pot.tokenize() が tokenize() で実行できます。
トークン単位に分解された配列が返ります。
var hoge = function() {
var a = 1, b = 0.5, c = '"hoge"', $d = /'\/'/g;
return $d.test(c) ? a : b;
};
debug( Pot.tokenize(hoge) );
// ----- results e.g., -----
// [
// 'function', '(', ')', '{', '\n',
// 'var', 'a', '=', '1', ',', 'b', '=', '0.5', ',',
// 'c', '=', '\'"hoge"\'', ',',
// '$d', '=', '/\'\\/\'/g', ';', '\n',
// 'return', '$d', '.', 'test', '(', 'c', ')', '?',
// 'a', ':', 'b', ';', '\n',
// '}'
// ]