gwjpmsに行ってきた話
caperを使って簡単に簡易的な電卓を作る
この記事はAizu Advent Calendar 2016の15日目の記事です。
はじめに
艦これイベントとテストとHaskellにどっぷりハマって内容薄いです(本当にすいません)。
数日前、構文解析に使うパーサジェネレータを探していたらcaperを見つけました。
構文解析?パーサジェネレータ?なにそれ?みたいな方はこちらへ
構文解析 - Wikipedia
caperとは
caperとはモダンでクリーンなC++コードを出力するパーサジェネレータで、C++以外にもJavaScript/C#/D/Java/Boo/Ruby/PHP/Haxeにも対応しているみたいです。
こんな感じで定義できます。
非終端記号名<非終端記号の型> : [セマンティックアクション名] 項 項 | [セマンティックアクション名] 項(0) 項(1) | [セマンティックアクション名] 項(0) 項 項(1) ;
(0)とか(1)とか付けるとセマティックアクションに引数として渡すことができます。
詳しくはこちら。
続きを読む