エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
パーサの作り方
パーサーの作り方 パーサーを作るおおまかな手順は次のようになる。 文法を決める。 内部のデータ構造(... パーサーの作り方 パーサーを作るおおまかな手順は次のようになる。 文法を決める。 内部のデータ構造(クラス)を決める。 パースするコードを書く。 文法を決める miniJavaでは厳密な文法は用意されていない。そこでまず厳密な文法を定める。 文法を作るときには大きな枠組みの方から順に作っていくとよい。 miniJavaではプログラムはクラス宣言の集まりとして宣言される。そこでまず次のように文法を定める。 program ::= class_dec* これは(拡張)BNFという記法(の一種)で、「programはclass_decの0個以上の繰り返し(*で表す)である」という意味になる。 続いてクラス宣言に対応するclass_decの文法を定める。 クラス宣言は次のように定められていた。 class 識別子 { クラス本体 } そこでclass_decの文法は次のようにする。 class_d