問題タブ [parser-generator]
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.
php - simple_html_dom を使用した PHP の解析、確認してください
単純なhtml domを使用してページごとにすべての画像を保存し、画像クラスを取得するための単純なパーサーを作成しましたが、ページごとに渡すためにループ内にループを作成する必要があり、コードで何かがそのまま最適化されていないと思います非常に遅く、常にタイムアウトまたはメモリ超過が発生します。誰かがコードをざっと見ただけで、私が作った本当にばかげたものを見ることができますか?
ライブラリが含まれていないコードは次のとおりです...
ありがとうございました。
parser-generator - bison はどのタイプのパーサーですか?
bison はどのタイプのパーサーですか。それは LALR(1) または LR(1) ですか?
dom - 階層データのパターンまたは構造の認識
私の質問は、階層またはツリー パターンを検出するための最良のテクノロジは何でしょうか?
ユーザーのログイン メニュー、ナビゲーション メニュー、コンテンツの本文、フッターなど、HTML ページのパーツを認識したい。
私が実装した文法認識を試しています(HTMLデータセンスを気にしないため、この作業ではLex、yaccのようなクラシックは好きではありません)phpとHTMLウォーキング(DOMDocument)にDOMパーサーを使用しています。
htmlでデータを視覚的に表現する方法にばらつきがあるため、問題が発生しています。たとえば、メニューは で実装できますが<ul><li><a href=#>Link1</a><li>Link2....</ul>
、数百の可能性は 1 つしかありません。css イベント (onclick、onmousehover) にも依存します。また、偽のメニューから本物のメニューを認識するのにも問題があります。
私はニューラル トレーニングを考えていましたが、すべての例で、階層データではなく線形データであることがわかりました。いくつかのネットワークをトレーニングしてみましたが、DOM ツリー要素間の関係情報が失われていることは明らかです。あるいは、改善する方法を知らないのかもしれません。
私のパターン認識文法は、html で発生する可能性のある「事故」を受け入れず、認識をスムーズにしないため、結果が不十分です。厳密すぎます (あいまいではありません)。
何か案が?
c# - C#/Python/Ruby の式エバリュエーター
「25 + [変数1] > [変数2]」という形式のやや複雑な式があります。
式を解析し、コールバックを使用して変数値を要求し、式の全体的な結果を計算するには、式評価器が必要です。何千もの変数があるため、コールバックでなければなりません。
通常の数学演算子だけでなく、「if」なども必要です。言語が豊富であるほど良いです。
私たちは好きな言語を使うことができます。誰にも提案はありますか?
yaml - YAML の代替スクリプト?
マージと呼ばれる優れた機能があるため、yaml を使用するつもりでした。(「<<」キー)
そして、私はcppに取り組んでいるので、パーサーに「yaml-cpp」を使用しています。
しかし!yaml-cpp はマージをサポートしていません。代替手段として何ができますか?
他のスクリプト、他のパーサー、解析する他の方法、またはマージ機能を使用できる場合は何でも良いです。
しかし、複数のオブジェクトをマージする必要はありません。何かを定義し、最初のオブジェクトから継承された別のオブジェクトを作成し、いくつかの値をオーバーライドするだけです。そのこと。
読んでくれてありがとう。
python - 解析技術を向上させるにはどうすればよいですか?
私はカスタム言語用のpythonicパーサーを書いていますが、今のところ次のようなものがあります:
今、入力ファイルを読んでいます。特定のキーワードが見つかった場合は、各行で特定の正規表現を使用しています。明らかに、私はこのようなことをしているので、これは私の人生を生き地獄にしています:
同時に、指定された行を可能なすべての正規表現と一致させたくありません。それは無駄になるからです。この時点までに書いたことをすべて破棄せずに、この問題を解決し、より効率的で読みやすいものにするエレガントな方法はありますか?
c# - What is the fastest parser generator tool for C# output?
I am looking for a parser generator tool which gives C# output and fairly fast. My objective is to parse JSON like text and create CLR object out of it. I used GOLD Parser engine for this but it turned out to be slow for my need. Can anyone please suggest me a good and fast parser generator tool which emits C# code? I heard about Irony and ANTLR but don't have experience with them. Do they generate considerably faster parser or is there any better options?
c# - パーサー(lex / yacc)を作成する方法は?
次のファイルがあり、解析する必要があります
で始まる行--
はコメント行として扱われます。ファイルは「開始」で始まり、で終わりend
ます。後の文字列Start
はtheUserID
とthenであり、name
andaddress
は二重引用符の中にあります。
ファイルを解析し、解析したデータをxmlファイルに書き込む必要があります。
したがって、結果のファイルは次のようになります
現在、パターンマッチング(Regular Expressions
)を使用して上記のファイルを解析しています。これが私のサンプルコードです。
メソッド:ReadFile
メソッド:FormateRowData
メソッド:ParseData
メソッド:WriteFile
ParserGeneratorについて聞いたことがあります
lexとyaccを使用してパーサーを作成するのを手伝ってください。この理由は、私の既存のパーサー(Pattern Matching
)は柔軟性がなく、それ以上に正しい方法ではないからです(私はそう思います)。
使用方法(コードプロジェクトサンプル1とコードプロジェクトサンプル2ParserGenerator
を読みまし たが、まだこれに精通していません)。C#パーサーを出力するパーサージェネレーターを教えてください。
python - スキーマからのphpDAL
私は1年前にPHPでWebプラットフォームを開発しましたが、そのために作成したデータアクセス層を少し誇りに思っていました。それ以来、同じコンセプトを何度も使い始めました。しかし今、私はそれを次のレベルに引き上げることを考えています。データベースアクセスコード全体を書き直すのではなく、SQLスキーマを解析してDALクラスを単独で生成するツールを作成したいと思います。
コードを生成するためにSQLスキーマから必要な情報は次のとおりです。
確かに、私はいくつかのSQLパーサーを探して、いくつかのものを見つけましたが、これを別の方法で行うことにしました。SQLスキーマ自体からコードを生成する代わりに、データベースの実際のスキーマに従って作成したメタデータからコードを生成します。
私は次のようなことを考えました:
これは仕様ではありません。私がどのようなことを達成したいのかを示す、簡単な結果です。
ここでの質問は次のとおりです。Pythonには組み込みのAPIがありますか、それとも上記のようにスキーマを定義できる形式を解析するために使用できるサードパーティのライブラリがありますか?私は車輪の再発明をしたくありません、そして私は自分のパーサーを書くことに全く興味がありません、私が欲しいのは基本的で実用的なツールをできるだけ早く手に入れることです。
ありがとう
assembly - アセンブリ言語からマシンコードへの JavaCC パーサー - 命令分離の問題
HY.JavaCC (アセンブラー) を使用してアセンブリ コード (マイクロコントローラー 8051) からマシン コードに変換するパーサーを作成しようとしています。JavaCC の文法とその構造については読みましたが、ジレンマがあります。私はADD
指示を持っています:
そして、それらのそれぞれについて、私は Machine code (hex code)ex: ADD A,R0
translates to 28H を持っています。また、私はMOV
命令を持つことができます:
MOV A,Rn
またはMOV A,@Ri
しかし、私も持ってい MOV data_addr,Rn
ます MOV R6,#data
。
今、私の問題は、2 つの命令の間でこの違いをどのように作成するかです。トークンを次のように
定義するとします。多くの命令があるため、特定の動作を指定する関数であるトークンごとに関数を定義できませんでした。少し、そう思いませんか....だから私はかなり行き詰まっています。どちらの道に進むべきかわかりません。
助けてくれてありがとう!
Token{
<IN_MOV :"mov">
|<IN_ADD:"add"
}token.image==.equals("mov"), then go on one direction to the specific behaviour