なぜかYAML
テストをコードに埋めていくと悲しい気持ちになるので、何故かYAMLで外だし。
テストに使うデータが.cppに埋め込まれた悲しい感じ↓
_Y("and" , "(_ a b ...)" , "(and a b c)"); _Y("when" , "(_ pred a b)" , "(when (= x 3) (display \"x=3\") (display \"\n\"))"); _Y("decf" , "(_ x) (begin (set! x (- x 1)) x)", "(decf x)"); _Y("decf" , "(_ x dx)" , "(decf x 1)"); 続く
なんか C++ 用の YAMLパーサの良いのがない。
STLに適当にマッピングしてくれれば良いのに。
今回はYAMLのフォーマットが固定なので自分で超適当パーサを書きました。
void MacroMatchTest::testNormalMatch() { YAML yaml; loadYAML("match_ok.yml", yaml);
こんな感じでロードされます。
それで YAML は
- my-if - (_ a my-then b) - (my-if (= 3 3) my-then 3) - - my-if - (_ a my-then b my-else c) - (my-if (= 3 3) my-then 4 my-else 5) - - pp - (_ a b ...) - (pp a b c d) 続く