StartupXO
検索
日本語

パーサーコンビネーターでping コマンドの出力を構造化データに変換する方法(t3.at)

startupxo 話し合う

書く言語: 韓国語書かれた言語で読む

要約 / 元記事を読む ↗

- パーサーコンビネーターは、オブジェクトのように構造を持つデータにテキストを変換する方法です。小さな解析関数を順番につなげて、長い文字列を読み進めます。 - 各パーサーは文字列の先頭部分を切り出して値を返し、残りの文字列を次のパーサーに渡します。原文では、数値パーサーが '10 20 30' から 10 と残りの ' 20 30' を返す例が示されています。 - 著者は、Cloudflare サーバーに送った ping コマンドの出力を TypeScript で直接解析する例を示しています。著者によると、同じ作業を正規表現で行うと、入れ子が深くなるほど読みにくくなるとのことです。 - 著者は、複雑な作業では正規表現が扱いにくくなると述べています。また、コードエディターの構文強調表示に使われる大規模な構文解析ライブラリの tree-sitter は大げさだと考えており、この方法はその中間の作業に向いていると主張しています。これは著者の意見であり、原文には性能測定の結果はありません。
掲載元

Hacker News ↗ / おすすめ 61 / コメント 30

似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。

ログインしてコメント

コメント 1

編集部の意見startupxo

O: ping の出力のように行ごとに形式が決まったコマンド結果をスクリプトで読む必要がある運用担当者が、pSeq と pMap を使って小さなパーサーを自分で作ってみる場面に向いています。 X: 元の例は特定の ping 出力形式に合わせて作られているため、出力言語やオプションが変わると、パーサーの複数の箇所を直す必要があります。また、実行速度を測った根拠はないので、まずそこを確認する必要があります。
書く言語: 韓国語

キーボード操作

上下矢印キーで投稿を選び、Enterで開きます。

↑ / ↓
前の投稿 / 次の投稿
Enter
選んだ投稿の要約とコメントを開く
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。