問題タブ [ragel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ストリーミング入力で Ragel を使用して URL を検出しますか?
タイプセット中に入力ストリームで URL を効率的に検出する必要があります。
URL 検出器は、組版フローの一部になります。入力として一度に 1 文字を受け入れ、その文字が属する URL とともに一度に 1 文字を出力する必要があります。これを行うために、先読みのためにテキストをバッファできます。
たとえば、入力ストリームが の"Hello http://foo.com World"
場合、出力は次のようになります。
必要に応じて入力と出力をストリーミングするように Ragel を作成できますか?
ちなみに、(Java) ragel URL parser hereがあり、これを出発点として使用することを考えています。
html - Ragel を使用した HTML の解析に関する問題
私のプロジェクトでは、HTML ドキュメントからリンクを抽出する必要があります。この目的のために、主に次の作業に基づいて、ragel HTML 文法を用意しました: https://github.com/brianpane/jitify-core/blob/master/src/core/jitify_html_lexer.rl (ここで言及: http:// ragel-users.complang.narkive.com/qhjr33zj/ragel-grammars-for-html-css-and-javascript )
現在のところ克服できない1つの問題を除いて、ほとんどすべてがうまく機能します(素晴らしいツールに感謝します!)。
このテキストを入力として指定すると:
私のパーサーは最初のリンクを正しく抽出できますが、2 番目のリンクは抽出できません。それらの違いは、 と の間にスペースがあるが、 と の間に'bbbb'
スペースが'<a'
ないことです。'cccc'
'<a'
一般に、スペースを除くテキストがタグの前に存在する'<a'
場合、解析はそれをコンテンツと見なし、パーサーはタグの開始を認識しません。
このリポジトリで見つけてください: https://github.com/amdei/ragel_html_sample C プログラム ( ngx_url_html_portion.rl ) として機能することを目的として、意図的に文法を単純化したサンプルです。入力ファイル input-nbsp.html もあります。これには、アプリケーションへの入力が含まれていると予想されます。
それをいじるために、文法から .c-file を作ります:
次に、結果の .c ファイルをコンパイルし、programm を実行します。
入力ファイルは同じディレクトリにある必要があります。
どんな手がかりにも心から感謝します。