[過去ログ] Vue vs React vs Angular Part.3 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
509: 2020/06/04(木)06:50 ID:KwTRcPMk(1/11) AAS
Javascript はweb制作管理板、CGI はWEBプログラミング板へ。
519: 2020/06/04(木)13:59 ID:KwTRcPMk(2/11) AAS
いまHTML5パーサー書いてて一通りの実装が済んだんだけど、次の部品を製造するとしたら、何が求められるんだろね?
パーサーのテスト実装が途中の状態だけど。
520: 2020/06/04(木)14:02 ID:KwTRcPMk(3/11) AAS
WHATWG Encoding standardとWHATWG HTML Standard の Parsing まで実装した。
Chromeがどうやら属性値のエスケープなどごく一部を除いて改行の移動する位置まで厳格に仕様通りなので、Chromeの出力をテストデータにしてるけど。
521: 2020/06/04(木)14:03 ID:KwTRcPMk(4/11) AAS
というより、Chromeのアルゴリズムをそのまま仕様にしてるのかね。
522: 2020/06/04(木)14:10 ID:KwTRcPMk(5/11) AAS
Chromeがなぜ属性値のエスケープを仕様通りにしないのかも気になる。
パーシングと直列化を繰り返すと危険なHTMLに変化させることが出来るのだろか?
もしそうなら仕様の方を修正してほしい。
524: 2020/06/04(木)14:19 ID:KwTRcPMk(6/11) AAS
トークン化ステージ(字句解析に相当)が3000行、木構築ステージ(構文解析に相当)が5000行程度だった。
横にいくらでも伸ばすスタイルなので、80行縛りとかある人なら倍に膨らむだろうけど。
個人で書けない分量ではなかった。

これ、木であるという縛りがあるので、アルゴリズムが不必要に複雑化してるよね。
自分が一から設計するなら別の方法を使うだろな。
528: 2020/06/04(木)14:21 ID:KwTRcPMk(7/11) AAS
板違いスレだし何でもありなんじゃないの?
530: 2020/06/04(木)14:24 ID:KwTRcPMk(8/11) AAS
しかしこれだけ複雑怪奇なアルゴリズムだと、すべてのパスを通すようにテストを書くとしても、テストにはならないよね。
こんなのはどうしたら良いのか。
まあ全部で2万行台のソースに対して、テストが100万行とかなりそうだし、すべてのパスを通すってのがもう無理だけど。
531: 2020/06/04(木)14:25 ID:KwTRcPMk(9/11) AAS
>>529
俺はHTMLの専門家がいると聞いて質問してるだけで、荒らしてるわけじゃないぞ。
532: 2020/06/04(木)14:27 ID:KwTRcPMk(10/11) AAS
ちなみに使った言語はC++17ですハイ。
トークンの型をテンプレートで受け取ってconstexprで判定の一部をコンパイル時に移動することで、高速化を図りました。
これはイイ!やりかた。
533: 2020/06/04(木)14:30 ID:KwTRcPMk(11/11) AAS
一番聞きたいのは、次何作れば良いかなってことだけども。
URL Standardだろか?

二番目が、こんなわけわからん仕様の場合、テストはどうするべきか?ってことだけども。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s