ブラウザ上で演算子の優先順位と結合性を学ぶ

作りたいもの: プログラミング言語のコア概念を学ぶサイトその2の続編。

出来上がってきた部品を少しずつでも紹介していくことにする。全部出揃ってから紹介しようなんて考えているとズルズル遅くなるからね。

というわけでまずはこちら Parser on browser — Learn Languages 1.0 documentation

ブラウザ上でパーサの挙動を実験できるデモです。演算子の優先順位と結合性によってパースの結果がどう変わるのか試してみるとよいでしょう。

ソースも200行ちょいなので読んでみるとよいと思います。読み方の解説とかもあったらいいと思うけども、まずはスモールスタートということで現状で公開します。

追記。1 * 2 + 3は( (1 * 2) + 3 )になるべきだし、1 + 2 * 3は( 1 + (2 * 3) )になるべき。これが演算子の優先順位。1 - 2 - 3は( (1 - 2) - 3 )になるべきだし、1 ** 2 ** 3は( 1 ** (2 ** 3) )になるべき。これが演算子の結合性。