電卓アプリで 再帰下降構文解析を使った話 かものはし 2018/5/27 @kawai
View Slide
どんな電卓?
デモ
1. 式の計算 2. 式の編集 3. 式の参照 要件
行計算できる 電卓
「式」の計算
“3+4” ↓ 3 + 4 ↓ 7
“√4+(3-15)” ↓ √4+(3-15) ↓ 2+-12
“100+8%” ↓ 100+(100×0.08) ↓ 100+8
“100×÷8” ↓ 無効な式
構文解析が必要
式の文字列から結果を導くには 1. トークンに分解 2. 処理用にパース 3. パース結果を処理
↑をトークンに分解 √4+(3-15)
√4+(3-15)4√ + -3 15 )(
処理用にパース
アルゴリズム
・操車場アルゴリズム(Shunting Yard Algorithm) 中置 → 後置(逆ポーランド記法) ・再帰降下法 中置 → 構文木 → 評価
-3 5-3 5-3 5操車場再帰降下法
-3 154√ + -3 15 )(√4+
実装など
EvaluaterParserTokenizerParserTestEvaluaterTestUnit TestTokenizerTestCore Logic
電卓アプリで 再帰降下法を使った話 以上