かきフライ買ってきたけどタルタルソースがなかったので餃子のタレをかけてみたら意外とイケた。牡蠣の苦味と絶妙にマッチしてこれはアリ
かきフライ買ってきたけどタルタルソースがなかったので餃子のタレをかけてみたら意外とイケた。牡蠣の苦味と絶妙にマッチしてこれはアリ
ルーターを更新するために適当に注文した後に気が付いたのだが、重量1100gとかあって???となった。ルーターってそんな重かったっけ…。
大まかな作りはMarkedを参考にしてるけど、中の処理は全く違う。Markedの作りは気合の正規表現(複数行に対して複雑な正規表現で捕獲式を書いている)だけど、あんなの保守できないので行単位の処理でやってる
実際Markedバグってるからな…
その代わり私の奴はMarkdownの全文法に対応する気はなくて主に自分が良く使うメジャーそうな構文だけサポートする予定
処理的には行を上から舐め>構文マッチ>構文の種類とplaintextをTokenとして記憶→順次配列に詰め込み→詰め込んだ配列を順次展開→plain textを良しなにHTMLや専用構文にデコードでfixかな
ネスト構文の再帰によるスタックオーバーフローは考慮しない(そんなの書くやつは知らん
Perlの最新情報が少なすぎて新しい構文で書くとハマりまくるが一旦ループ処理とトークン化処理が分離できたような気がするようなしないような
取り敢えずこれで単体テストは書けるからいいかという感じ
モックもできるらしいので大体のケースは網羅できそう
https://tech.mobilefactory.jp/entry/2019/12/03/203000
instanceofはblessedなんか
https://stackoverflow.com/questions/45376119/perl-is-object-instance-of-class
これだとfenceしか処理できないのでfence以外も処理できるようにする必要があるという意味ではここがメインループであり、Lexerと言えるのかな
そしてfenceに切り出すのはTokenizer
あと<>&のエスケープがいるが、トークン可の状態ではそこはいらんかね?(HTMLに落とす後処理でやるのが良さげ
タグの開始中はそこの分岐に入り続けネストがあれば再帰で行けそう