問題タブ [parsec]
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 - Parsec.Token で "stringLiteral" トークンを再定義します
Parsec ライブラリを使用して Haskell で Pascal 言語パーサーを開発しており、Parsec.Token クラスで定義されたいくつかのトークンを再定義する必要があります。
それについて言えば、ここに私の場合があります:
stringLiteral
トークンの照合方法を変更する必要があります。デフォルトの定義では、それは何かbetween char '"'
(こちらを参照between '\''
) ですが、 (アポストロフィ)にする必要があります。この変更を Parsec の動作に行うにはどうすればよいですか?
ありがとう!!!
parsing - パーセクのデバッグ
私はパーセックで作業しており、コードのデバッグに問題があります。たとえば、ghci でブレークポイントを設定することはできますが、どのくらいの入力が消費されたかなどを確認する方法がわかりません。
parsec コードのデバッグに役立つツールやガイドラインはありますか?
haskell - Parsecを使用した文字列トークンの字句解析
HaskellParsecライブラリを使用した文字列解析用のこのパーサーがあります。
''
私の言語の文字列は、 (例:)内の英数字として定義されてい'this is my string'
ますが、これらの文字列はその中に含めることもできます'
(この場合'
、別'
のexでエスケープする必要があります'this is my string with '' inside of it'
)。
'
私がする必要があるのは、文字列の解析中に表示されるのを楽しみにして、'
後に別の文字列があるかどうかを判断することです(ない場合は、文字列の終わりを返します)。しかし、私はそれを行う方法がわかりません。何か案は?ありがとう!
haskell - Parsec: 予測解析
私は haskell のスキルを少ししか持っていないので、parsec で予測解析 (LL*) を実装する方法について助けが必要です。
私は文脈自由文法を持っています:
http://research.microsoft.com/en-us/um/people/daan/download/parsec/parsec.pdf (チャプター予測パーサー) に基づいて、次のコードを書きました。
このコードは '(' との一致を試み、そうでない場合はパーサーが継続して識別子のみに一致することを期待していました。このコードは一致する識別子 '(' args ')' に対してのみ機能します。
識別子「a」でのみ呼び出すと、次がスローされます。
haskell - 連結解析結果
次のように、コンマで区切られた 2 つまたは 3 つの数値を処理できるパーサーを作成できます。
数字だけが重要で、残りは破棄できます。n1,n2,n3
外部で処理するために中間解析結果 ( ) を連結する方法はありinput
ますか? たとえば、Scala のパーサー コンビネーターは次のことができます。
さまざまな場所でパーサーをパターン一致させるために、これを行いたいと考えています。たとえば、Scala では次のようなことができます。
ここで、入力は解析する文字列です。parsec には、同様の動作を可能にする組み込み関数がありますか? そうでない場合、自分でそのような動作を構築する方法はありますか?
html - Haskell: パーサーが適切にバックトラックしないのはなぜですか?
の使い方を独学することにしParsec
ましたが、自分に割り当てたおもちゃのプロジェクトでちょっとした障害にぶつかりました。
具体的には、HTMLを解析しようとしています:
私のコードは次のとおりです。
問題は、私のパーサーが終了タグを好まないことのようです-それは貪欲に<
常に開始タグを意味すると仮定しているようです(私が知る限り):
私はそれを少しいじっていましたが、なぜchar '<'
試合を過ぎても後戻りしないのかわかりません.
haskell - HaskellText.Parsec.Combinatorの選択は後戻りしません
私はparsecでいくつかのテキストを解析しようとしています:
choice
「leave」と一致させようと思っていますが、失敗した場合は「login」などを試してください。ただし、「leave」と一致させようとするだけで、失敗した場合はエラーになります。
私は何が間違っているのですか?
haskell - Haskell: Parsec と IO を使用したファイルの解析
そのため、私はまだ Parsec を快適に使用できるように努力していますが、ゆっくりとツールボックスに組み込んでいます。
解析する必要があるファイルがある場合、ファイルを文字列として読み取り、その内容を parsec に渡します。
ParsecT String u IO a
これはかなり一般的なパターンのようですが、 aと aを取りFilePath
、内容を解析するために使用できる既存の関数はありますか? フーグルで何も見つかりませんが、それは単なる想像力の失敗かもしれません。
antlr - parsec は ANTLR の代替ですか?
私は、特定の目的のために小さなプログラミング言語を作成することを計画しています。ANTLR3はそのような目的に適していると読みました。Parsec が ANTLR3 の代わりになる可能性があるのか、それとも別のカテゴリに分類されるのかを尋ねさせてください。
どうもありがとうございました。
f# - F#を使用した日付の解析
FParsecが文字列に対して行うことを日付に対して行う「日付パーサー」ライブラリはありますか?
つまり、ルールを指定すると、ルールと照合されて、提供されたパターンが認識されます。
逆に、いくつかの解析ルールに基づいて日付を生成するライブラリはありますか?アイデアは、ユーザーに「リアルタイム」の完了を提供して、有効な将来のfparsecマッチングにユーザーを導くことです。
(この生成的構文解析の問題は、人里離れた構文解析サークルに名前がありますか?)