問題タブ [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.
c++ - c ++関数のparsecパーサー?
parsecを使用したc ++関数のオープンソースパーサー実装はありますか?
インストールが失敗するため、libClang を使用したくありません。
parsing - FParsecの再帰文法
私はFParsecをチェックすることにし、λ式のパーサーを書こうとしました。結局のところ、熱心さは再帰的な構文解析を困難にします。どうすればこれを解決できますか?
コード:
ありがとう!
haskell - パーセクでの入力の予期しない終了
次のようなファイルを解析したい:
私のコードは次のようなものです:
ただし、実行すると例外がスローされます。
私のdata.testファイルに10行しかないのに、なぜ11行目と言ったのかわかりません。そのため、何度か試行した後、この問題を修正できませんでした。
haskell - parsecはendBy関数のルールを定義できません
ある言語のパーセクルールを書くのに問題があります次の言語の定義があります(問題のある部分)
ここで、WSは空白を表し、LITERALは空白または空白を含むことができる引用符で囲まれた文字を除くすべての文字なので、次の関数を記述します。
問題はその記号';'です は有効なリテラルであるため、(1)関数はそれを解析します。したがって、(2)は';'を見つけられないため、解析エラーが発生します。キャラクター。
この問題を克服する方法はありますか:リテラル関数を作成して';'を受け入れないようにする 文字通りまたはどういうわけか修正(2)?
sclvのコメントの後、私は解決策を見つけました:
haskell - Parsec 関数 'parse' とクラス 'Stream' の型シグネチャ
(Stream s Identity t)
次の型宣言の制約はどういう意味ですか?
Stream
次のクラス宣言には何がありますか、それはどういう意味ですか。私は完全に迷っています。
Parsec を使用していると、型シグネチャ ( xxx :: yyy
) でいつも渋滞に陥ります。私は常に署名をスキップし、src を ghci にロードしてから、型署名を .hs ファイルにコピーします。動作しますが、これらすべての署名が何であるかはまだわかりません。
編集:私の質問のポイントについての詳細。
タイプシグネチャの「コンテキスト」についてまだ混乱しています:
meansa
は class のインスタンスでなければなりませんShow
。
この「コンテキスト」の意味は何ですかt
?=>
実行するパーサーがたくさんあるので、ワープ関数を作成して、実際のファイルでそれらのパーサーを実行します。しかし、ここに問題があります:
これが私のコードです。ロードできません。どうすれば動作させることができますか?
arrays - 配列を使用した haskell でのスキーム ベクトルの解析
Write Yourself a Scheme in 48 Hours チュートリアルを試みていますが、haskell を初めて使用する人としてはかなり難しいです。私は現在、スキーム ベクトルを解析する機能を追加することになっている問題に取り組んでいます (セクション 3.4 演習 2)。
私はこのデータ型を使用しています:
解析するには、「#(」を探してから、ベクターの内容を解析し、それらをリストにドロップして、そのリストを配列に変換しようとしています。
私はすでに持っていて使用しているリスト解析関数を使用しようとしていますが、スキームリストを上記の LispVal リストに解析し、それを通常のリストに戻すのに苦労しています。または、少なくともそれが私の問題だと思います。
リストパーサーは次のとおりです。
これを修正する方法についてのアイデアはありますか? ありがとう、サイモン
-編集-これが私が得るコンパイルエラーです:
予想される型と一致しませんでした
a -> LispVal' against inferred type
Parser LispVal' parseList の 2 番目の引数(.)' namely
' の 2 番目の引数(.)' namely
lispValToList 内。parseList' 式内: listToArray 。lispValToList . parseList
haskell - Parsecのユーザー状態
Parsecを使用して式を解析していますが、Parsecのユーザー状態を使用してこれらの式の変数を追跡したいと思います。残念ながら、私はそれを行う方法を本当に理解していません。
次のコードが与えられます:
したがって、u
inParsecT s u m a
はになりますSet.Set
。しかし、どのように状態更新をに統合しvar
ますか?
のようなものを試しましたが、州のモナドではないためmodify $ Set.insert v
、これは機能しません。Set.Set
haskell - Haskell:FRPリアクティブパーセク?
Parsec
Haskellにリアクティブ(または他の純粋な関数型パーサー)はありますか(または持つことは可能ですか)?
簡単に言えば、パーサーにcharごとにフィードして、出力を取得するのに十分な量の結果を取得したいと考えています。
または、もっと簡単に、どうすればそれを実行できますfoldr
かmap
?
そのような反応的な振る舞いをサポートするために、それらの異なるバージョンが必要ですか?
編集
私の質問は特にFRPについてです。例としてパーサーを使用しました。これは、質問を明確にし、必要なものの全体像を示すために考えられる最善の方法でした。
FRPはUIだけではないと思いますよね?
haskell - 些細なパーセクの例で型エラーが発生する
この些細なパーセクコードをコンパイルしようとしています
しかし、私はこのエラーが発生し続けます