なぜか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)
続く

とすっきり。
テストが増えても、YAMLに追記するだけで再コンパイル不要。
あーすっきり。自己満足。