問題タブ [parsekit]
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.
parsing - ParseKit の文法の定義に関する詳細なドキュメントはどこで読むことができますか?
「基本的な文法構文」を読んで、ParseKit を理解しようとしていますが、これは非常に基本的な紹介にすぎません。自分の文法を定義することに着手したいので、すぐに理解が深まりました。ここからどこへ行けばいいですか?
たとえば、非常にカスタムな形式でログ ファイルを解析したいとします。ヘッダー、ボディ、フッターに分解すると、これがヘッダーの最初の行の BNF になります。
ParseKitが理解できるように、それをどのように定義しますか? ここまで来ました。
文字の範囲を定義する方法が少なくともあるに違いないと思いますか?
確かに、parsekit の著者によって引用された本はおそらく私を助けるでしょうが、主題を深く掘り下げる前に、誰かが私自身の小さな例を始めるのを手伝ってくれるといいでしょう. アイデアを調査しているだけで、概念の証明にすぎません。
objective-c - ParseKit アセンブラー コールバックが呼び出されない: 何が間違っているのでしょうか?
ParseKit 文法構文 (デモ アプリで遊んでいる) に少し慣れてきたので、自分のミニ デモを動作させようとしていますが、これまでのところあまり成功していません。アセンブラのコールバックが呼び出されていません。
以下は、関連するコードの要約版です。実行するtestParse
と、パーサーは問題ないように見え、文字列をプロダクションに正しく一致させますanything
(デモでも機能します)が、 didMatchAnything: が呼び出されていません。
ParseKit コードを掘り下げてみると、PKParser の 129 行目
assembler
はnilであるため、実行されていません。これにより、パーサー ファクトリにたどり着きます。何が起こっているのかについての私の理解が失敗し始めます。
免責事項; 私はおそらく本を読む必要があることを知っていますが、一度に1つずつ。私のプロジェクトがスターターではない場合、二度と読まないかもしれない本のために30匹のマウスをフォークする前に、小さな概念実証を行いたい:)
objective-c - ParseKit をプライベート フレームワークとして Mac アプリ バンドルに埋め込む方法
Mac Os X で cocoa を使用してコンパイルするには、ParseKit をインストールする必要があります。xcode 4 を使用します。オンラインで検索しましたが、iPhone 用の解析キットをインストールするためのガイドしかありません。Mac Os X のダウンロードやガイドはどこにありますか?
objective-c - ParseKitがEOLシンボルと一致しない:何が間違っているのですか?
ParseKitの冒険は続きます...そして私の次のハードルは改行記号を認識させようとしています。
これが私の文法です:
これが私のテストテキストです:
テキストは、Unix形式(LF)の行末を持つUTF-8テキストファイルから読み取られています。Xcode(ファイルインスペクター->テキスト設定)と外部の両方で、TextWranglerを使用してその形式を確認しました。
そして、ここに関連するコードがあります:
しかし、私は塗料が乾燥していないのではないかと心配しています!上記のさまざまなバリエーションを試しました。私の人生では、パーサーに改行を認識させることはできません。ファイルバッファを1行ずつ読み取ることで(とにかくパフォーマンスが向上する可能性がありますか?)、おそらくこれを回避できますが、「\n」に一致するオプションがあると便利です。
objective-c - ParseKit 文法を使用してタイムスタンプを解析する
ParseKit とタイムスタンプの解析についてかなり簡単な質問があります...ドット/ピリオドの象徴的な性質を強制するにはどうすればよいですか。
たとえば、 を解析しようとしている場合、2008-01-25
のようなものを使用できますdate = /\d{4}/ '-' /\d{2}/ '-' /\d{2}/
。実際、date.grammar
まさにこれを行う ParseKit が同梱されています (興味深いことに、提供された文法は、追加しない限り DemoApp では機能しませんが、脱線します@symbolState='-';
...)
ただし、ドットを含む日付を解析したい場合はどうすればよいですか...たとえば、2008.01.25
または2008-01-25-12.34.45
. ディレクティブに追加しようとしまし'.'
たが、@symbolState
無視され続けます。現時点では、文法をテストするために DemoApp に依存していることに注意してください...違いがあるかどうかはわかりません。
どんな考えでも大歓迎です。
objective-c - さまざまな数のフィールドを使用してParseKit文法を(順番に)作成する
私は文法を書くのにあまり経験がありませんが、次のようなレコードタイプを持っているとしましょう:(例)
基本的に:
- 「レコード番号」で始まり、セミコロンで終わる必要があります。
- 次の順序で0または1のキャプチャを含めることができます。
- ソースデータセット
- データセットのパラメータ
- データセットのフィールド
- データセットからの値
これが私の文法です、それは機能していません:
---文法を開始します:
---文法を終了します
@「ParseKitの開発者」、助けてくれませんか?
ありがとう :)
objective-c - ParseKitフレームワークで解析エラーを見つける方法
構文エラーが発生する前に、PKParserが解析したアセンブリのどこまで戻るかを考えていました。
参照: http: //parsekit.com/
基本的に接頭記法の表現言語を記述する文法を使用しています。
例えば:
標準のプレフィックス表記式の文法と文字列"(+ a --bc))"が与えられた場合、一致する場所でその[(、+、a]を取得したいので、修正する場所をユーザーに示すことができます。エラーが発生しましたが、completeMatchForとbestMatchForは、この情報を見つけるために使用できるものを返しません。
理想的には、「(」が期待されていたと言いたいのですが、私が使用しているものほど単純な文法では必要ありません。
ユーザーマニュアルとして言及されている本からは、このためのカスタムパーサーを作成する必要があるように見えましたが、フレームワークで何かを見逃してしまったのではないかと期待していました。
考え?
objective-c - ParseKitのアセンブラコールバックはどのように機能しますか?自分の仕事をどこに保存すればいいですか?
parsekitでコールバック関数をどのように使用する必要がありますか?次のルールがあるとします。
結果のPKAssemblyから3つのシンボルをポップし、最初と最後の数字を追加してから、答えをスタックにプッシュする必要がありますか?
そして、上記のルールの場合、一致を引き起こしたのは最初または2番目のルールであることをどのように知る必要がありますか?
ParseKitがコールバック関数を呼び出す順序がわかりません。私は本当にいくつかの助けを使うことができました。
Toddの回答に感謝します。あなたの指示を念頭に置いて、加算と乗算を含む単純な数式の次の文法とコールバック関数を作成しました。
これが私が得た出力です:
なぜ私の解像度は0ですか?
objective-c - ParseKit を使用して不要なトークンを除外する方法は?
PK を使用して .gift ファイル形式をトークン化しようとしています。私は次のことをしようとしています:
@"= 2 + 2" のような文字列があるとします。
その文字列を通過するトークンがシンボルと等しいかどうかを判断し、出力文字列がどうあるべきかを定義する手間をかけずに、「2 + 2」を返そうとしています。私がやろうとしているのは、[PKToken.stringValue isEqualToString: @"="] の場合、その値を PKTokenizer からポップし、残りの文字列をそのままの形式で返すことです。
これが十分に明確かどうか教えてください...
――スカイラー。
objective-c - Parsekit または自分で解析しますか?
ワインメニューを解析する必要があるアプリケーションを書いています。私がこれまで見てきたことから、それらはすべて何らかの構造に従っており、トリックはそれらすべての構造を定義することです。私は現在、Parsekit を使用して文法を作成することを検討していますが、学習曲線はかなり急勾配です。次の数週間を費やしてそれを理解し、これが正しいアプローチではないことに気付くのではなく、質問することにしました.
そのようなものを解析する上で人々が共有したい洞察/リソースはありますか? ありがとう、オリヴィエ