parsec

    4

    2答えて

    に参加するパーサを生成します次の関数を実装: customCell :: String -> Parser res -> Parser res customCell typeName subparser = cell >>= either (const $ unexpected typeName) return . parse (subparser <* eo

    3

    2答えて

    私はParsecを使用してメディアウィキテキストを解析しようとしています。メディアウィキマークアップの構造のいくつかは、行の先頭にのみ現れます(ヘッダマーク==header level 2==など)。正規表現では、アンカー(例えば、^)を使用して行の先頭を検索します。 GHCiの中 一つの試みは、 Prelude Text.Parsec> parse (char '\n' *> string "=

    2

    2答えて

    私は適切な設定形式のGUIエディタで作業しています。基本的に、エディタは設定ファイルを解析し、オブジェクトプロパティを表示して、ユーザがGUIから編集してオブジェクトをファイルに書き戻すことができるようにします。が が解析されたデータ構造は唯一のオブジェクトのプロパティ情報が含まれている場合は、コメントや空白が書き込み に失われているので、: - 編集 - のために一部を除き、行わ書き 私はパース

    3

    2答えて

    から最新のコンパイラ実装であるのTiger言語用のパーサを作成しようとしています。再帰型の1つに固執しています。 私は次の文法では、次のタイプ data LValue = Id Atom | RecordAccess LValue Atom

    1

    1答えて

    には、(ファイルparsec-eof-test.hsに入れて)このパーセクパーサを考えてみましょうunexpected end of input - expecting end of input - それは意味をなさない、それは矛盾です。 ここでは何が起こっていますか? それはパーセクで悪いデフォルトです、または私は解析中パーセクはによって来たことを潜在的なエラーの実際にいくつかのスタックを探して

    2

    1答えて

    私はスキームインタープリタを書くときにthis guideに従っています。左要因にDottedList /リストのための文法を試して、私はこの思い付いた: E -> (H T) H -> E H' H' -> <space> H H' -> <term> T -> <term> T -> <space> . <space> E - spaces :: Parser() spaces

    1

    1答えて

    私はそのような文字列があります:***、**(*)*、****(**(**)*)** をそして、私はそのようなデータ構造にそれを解析したい:Sが* ある data Tree = Node [S] Tree Tree | Empty(*は、任意の文字にそれを意味するものではありません私は(私はmegaparsecを使用しますが、それはparsec習慣的に非常によく似ている)パーサを構築しようとしただ

    3

    1答えて

    私はhaskellのParsecでAbap言語の断片を解析しようとしています。 Abapのステートメントはドットで区切られています。関数定義の構文は次のとおりです。 FORM <name> <arguments>. <statements>. ENDFORM. 最小限の例として使用します。 ここでは、対応する型をhaskellとパーサに書き込む試みを行っています。 GenState

    0

    1答えて

    私は、構文解析の世界に新たなんだ、とかなり単純な-見せかけ問題を抱えている: 私は<<key-label>>のようにエンコードされている長い通常のテキストのChunk秒で構成される文字列、およびKey秒を持っています。 data Merge a = Chunk a | Key a deriving (Show) key :: Parser (Merge String)

    2

    2答えて

    パーサーを使用して文字列変換を行います。 normalizeWS :: Parser Stringは重複する空白を削除し、normalizeCaseは特定の文字列を小文字にマップします。私はパーサーを使用します。なぜなら、入力データに構造体があります。例えば、リテラル文字列は変換されずに残されなければなりません。 1つのパーサの出力を次の入力に渡して変換パイプラインを形成するエレガントな方法はあり