2024-05-16 bouzuya/tempura に template の parse を追加
東京。疲れ。
bouzuya/tempura に template の parse を追加した。
前回は crates:nom で実装したが、今回は単純なものなので愚直に前から読み込む形で実装した。
abc{{def}}ghi
の場合は vec![Val("abc".to_string()), Var("def".to_string()), Val("ghi".to_string())]
になる。
{{"{{"}}
というエスケープ用の構文も一応追加した。 "
が書いてあるものの他の string literal があるわけではない。
あと今回はエラーを発生させないようにしてみた。
たとえば abc{{def
のようにタグが閉じられていないテンプレートは vec![Val("abc{{def".to_string())]
のように単純な文字列として解釈する。
abc{{"def"}}
のような解釈できないタグもすべて単純な文字列として解釈する。
きちんと解釈されているのか不安になるので、 テンプレートを解釈して、すべての変数を列挙する機能などが欲しくなる。いかんなシンプルにシンプルに……。
今日のコミット。