タグ

ブックマーク / logic.cs.tsukuba.ac.jp/~kam (1)

  • パーサの作り方

    パーサーの作り方 パーサーを作るおおまかな手順は次のようになる。 文法を決める。 内部のデータ構造(クラス)を決める。 パースするコードを書く。 文法を決める miniJavaでは厳密な文法は用意されていない。そこでまず厳密な文法を定める。 文法を作るときには大きな枠組みの方から順に作っていくとよい。 miniJavaではプログラムはクラス宣言の集まりとして宣言される。そこでまず次のように文法を定める。 program ::= class_dec* これは(拡張)BNFという記法(の一種)で、「programはclass_decの0個以上の繰り返し(*で表す)である」という意味になる。 続いてクラス宣言に対応するclass_decの文法を定める。 クラス宣言は次のように定められていた。 class 識別子 { クラス体 } そこでclass_decの文法は次のようにする。 class_d

  • 1