IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

JavaScript の字句の解析エンジンを作りました

サンプルの使いかた

例えば textarea に

var hoge = 3e3;

と書くと

No Type Operation Atom Dval
1VARDEFVAR
2NAMENAMEhoge
3ASSIGNNOP
4NUMBER3000
5SEMI
と表示される

ソースの使いかた

  • character.jsを読み込む
  • tokenizer.jsを読み込む
  • new TokenStream(source)
  • instance.getToken();
var tokenStream = new TokenStream('// ここにJavaScriptのソースを入れる');
var token
while((token = tokenStream.getToken()).type == 'EOF') {
    // token をごにょごにょする
}

ダメな点

  • Unicode Escape なシンボルには対応していない
  • シャープ変数には対応していない
  • ちゃんとエラー書いてない
  • 文字列中の \u \x \000〜 に未対応

今後の展望

次は構文ツリーを作るところを作りたい。