Narcissus - JS implemented in JS. Lexical scanner and parser.
Narcissus - JS implemented in JS. Lexical scanner and parser.
10分で書く構文解析器をやってみました。 再帰下降法を使っています。 四則演算して結果を返します。 最初に、簡単なスタックのように使える文字読み込み関数pop(),push(),peek()をつくり、 その関数を利用して、再帰下降構文解析の関数expr,term,factを作成しています。 字句解析は、pop()とfact()関数内でやってる感じです。 時間が余った分、空白の処理を入れています。 htmlはありものを使ってるので、実質、作ってる時間は5,6分です。 ムービー http://sakurai.s59.xrea.com/10min/10minparse.html できあがったもの http://sakurai.s59.xrea.com/10min/parse.html 詳しいところは、id:tanakhさんの 10分で書ける、お手軽パーザーを見てください。 http://fxp.
これを使ってこんなことが出来ます。 サンプル http://sample.ecmascript.jp/tokenizer/ ソース http://sample.ecmascript.jp/tokenizer/character.js http://sample.ecmascript.jp/tokenizer/tokenizer.js サンプルの使いかた 例えば textarea に var hoge = 3e3;と書くと No Type Operation Atom Dval 1VARDEFVAR2NAMENAMEhoge3ASSIGNNOP4NUMBER30005SEMIと表示される ソースの使いかた character.jsを読み込む tokenizer.jsを読み込む new TokenStream(source) instance.getToken(); var tokenStre
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く