問題タブ [parsing]
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.
java - Java で自然な DSL を作成するのに最適なツールは何ですか?
数日前、私はブログ エントリ ( http://ayende.com/Blog/archive/2008/09/08/Implementing-generic-natural-language-DSL.aspx ) を読みました。 .NET を使用した一般的な自然言語 DSL パーサー。
私の意見では、彼のアイデアの素晴らしい部分は、テキストが解析され、文と同じ名前を使用するクラスと照合されることです。
例として、次の行を取り上げます。
解析の結果を取得する「既知の」オブジェクトのコレクションを使用して変換されます。オブジェクトの例は次のとおりです (私の例では Java を使用しています)。
したがって、最初の文を処理するとき、CreateUser クラスは一致し (明らかに「ユーザーの作成」の連結であるため)、コンストラクターでパラメーターを受け取るため、パーサーはユーザー パラメーターとして「user1」を受け取ります。
その後、パーサーは次の部分「with email」もメソッド名と一致することを識別し、そのメソッドはパラメーターを受け取るため、「test@email.com」を email パラメーターとして解析します。
もうお分かりだと思いますよね?少なくとも私にとっては、アプリケーション テスターが自然言語で「テスト スクリプト」を作成し、その文を JUnit を使用してアプリの動作をチェックするクラスに解析できるようにするという非常に明確なアプリケーションの 1 つです。
Java を使用してそのようなパーサーをコーディングできるツールまたはリソースに関するアイデア、ヒント、意見を聞きたいです。複雑な字句解析器や ANTLR のようなフレームワークの使用を避けることができればなおさらです。これはハエを殺すためにハンマーを使用することになると思います。
それ以上に、そのためのオープンソース プロジェクトを開始する人がいれば、私は間違いなく興味があります。
c++ - INI ファイルから構成ファイルのエントリを読み取る方法
Get*Profile
これらの機能を持たない古いバージョンの Windows CE プラットフォーム SDK を使用しているため、これらの機能を使用できません。一般的すぎる必要はありません。
ファイルを開き、「セクション」の存在と「名前」に関連付けられた値を確認するだけです。標準 C++ が推奨されます。
c# - フロートを解析する最良の方法は?
CSharp で float を解析する最良の方法は何ですか? TryParseについては知っていますが、特に疑問に思っているのは、ドット、コンマなどです。
ウェブサイトに問題があります。私の開発サーバーでは、「,」は小数用で、「.」は「.」です。セパレーター用。ただし、prod サーバーでは逆です。どうすればこれを最もよく捉えることができますか?
php - 文字列をトークン化し、区切り文字を保持する標準アルゴリズム (PHP)
算術式をトークンに分割して、RPN に変換したいと考えています。
Java には StringTokenizer があり、オプションで区切り文字を保持できます。そうすれば、演算子を区切り記号として使用できます。残念ながら、strtok を備えた PHP でこれを行う必要がありますが、区切り文字が破棄されるため、自分で何かを作成する必要があります。
これは Compiler Design 101 の古典的な教科書の例のように思えますが、残念ながら、私はここで正式な教育を受けていません。あなたが私に指摘できる標準アルゴリズムはありますか?
私の他のオプションは、字句解析を読むか、利用可能な文字列関数を使って手早く汚いものをまとめることです。
parsing - 「解析」の反対語は何ですか?
SQLクエリをそのクエリの抽象表現に解析するparseQueryという関数があります。
クエリの抽象表現を取り、SQL クエリ文字列を返す関数を作成しようとしています。
2 番目の関数は何と呼ぶべきですか?
xml - 100 MB 以上の XML ファイル (sans-DTD/スキーマ) があります。XSLT にはありません。変換/解析の戦略?
この XML ファイルには、昨年のすべてのアーカイブされたニュース記事が含まれていました。これらのストーリーをストーリー カテゴリ [y|ies] ごとに並べ替えて、新しい XML ファイルにするように依頼されました。
になる
...等々。
1 回限りの python スクリプトを使用して作業を完了しましたが、最初は XSLT を使用してこれを試みました。私のXPATHの選択がベッドを台無しにしていたので、これはフラストレーションをもたらしました。テスト ファイルは完全に変換されましたが、大きなファイルをスタイル シートに当てはめた結果、結果は ...何もありませんでした。
このようなファイルが XSLT を介して確実に実行されるようにするために、どのような戦略をお勧めしますか? これはベンダーから渡されたものなので、このファイルの構造を定義することに関しては、あまり力がないと想像してください。
コードサンプルが必要な場合は、いくつかまとめます。
どちらかといえば、XML+XSLT をスムーズに連携させるためのヒントが得られれば満足です。
@Sklivvz
これを処理するためにpythonのlibxml2とlibxsltを使用していました。私は今xsltprocを調べています。
これらの 1 回限りの状況に適したツールのようです。ありがとう!
@diomidis-スピネリス
それは整形式ですが、(前述のように)私にはその有効性を発見する能力がありません。
スキーマを書くことに関しては、私はそのアイデアが気に入っています。
この 1 つのファイルを検証するのに費やした時間は、1 回限りの作業であれば現実的ではありませんが、ベンダーからこのようなファイルをさらに処理する必要があると予測しています。
スキーマを作成する (そしてそれをベンダーに提出する) ことは、このような XML ファンクを管理するための優れた長期戦略になります。ありがとう!
c# - 解析パフォーマンス (If、TryParse、Try-Catch)
テキストを解析して情報を得るさまざまな方法について、私はよく知っています。たとえば、整数を解析する場合、どのようなパフォーマンスが期待できますか。誰かがこれに関する良い統計を知っているかどうか疑問に思っています. これをテストした人からの実数を探しています。
これらのうち、どの状況で最高のパフォーマンスを提供するのはどれですか?
parsing - テキスト/xml/その他の解析を行うコンピューターサイエンスの教科書の方法
しばらくの間、私の脳内でガタガタ鳴っていました。
Compilers/Flex/Byson などについて調査しましたが、「解析スタック」や実装方法について詳しく説明している参考文献は見つかりませんでした。
私が追いつくことができる良い参考文献を知っている人はいますか?
編集:すべてのコンパイラのリファレンスに感謝します。リストされている本をいくつか取得しますが、私の主な焦点は解析自体であり、後でそれをどうするかではありません。
c# - BNF 文法を指定して C# を出力するパーサー ジェネレーター?
BNF 文法 (例: http://savage.net.au/SQL/sql-2003-2.bnf )を指定すると、(C# で) パーサーを構築できるツールを探しています。
そのようなジェネレーターは存在しますか?
python - Python でのカスタマイズされたコマンド ライン解析
私は自分のプロジェクト用にシェルを作成しています。これは、設計上、次のようなコマンドを解析します。
COMMAND_NAME ARG1="長い値" ARG2=123 ARG3=me@me.com
私の問題は、Python のコマンド ライン解析ライブラリ (getopt および optparse) により、引数の前に「-」または「--」を使用する必要があることです。この動作は私の要件と一致しません。
これをどのように解決できますか?このための既存のライブラリはありますか?