blog.bouzuya.net

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"}} のような解釈できないタグもすべて単純な文字列として解釈する。

きちんと解釈されているのか不安になるので、 テンプレートを解釈して、すべての変数を列挙する機能などが欲しくなる。いかんなシンプルにシンプルに……。


今日のコミット。