AOJ 2438 : YAML

YAML | Aizu Online Judge

構文解析。一発とは行かず結構debugした。
debugの際、どこを今指しているかをビジュアライズすると楽。
例えばSample Input 1の場合

name: shimeji<id: shimejitan<tweets:<  1: shimejilove<  2: azupero
                                       ^

みたいな感じで(改行を'<'にしている)。
改行ごとに区切った配列でも良さそうだけど、
少し面倒なことになりそうだったので改行含んだ1つの文字列として扱った。

あとはつい最近読んだ
構文解析 Howto · GitHub
を参考にしてみた。

http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2359079#1

本当はparse関数をparseObj(0,str,0)に一般化したかったけど、
上手い方法が思いつかなかった・・・。

parseStringというのを作ればよかったのかも。