parsec

    0熱度

    1回答

    #!/usr/bin/env runhaskell import Control.Applicative ((<|>)) import Text.Parsec.Char import Text.ParserCombinators.Parsec hiding (spaces, (<|>)) main :: IO() main = do print $ pars

    1熱度

    2回答

    爲了學習更多的哈斯克爾(特別是Monads)我試圖建立一個拼寫檢查器。我的目標是能夠通過LaTeX文檔並對不在詞典列表中的單詞進行操作。 我已經寫了解析器(字符串到AST),我粘貼下面的代碼。它基本上返回分割成相關片段(文本,公式,命令等)的LaTeX源代碼。我想知道如何建立一個程序,以便在列表中找不到的每個單詞,我們要求用戶用什麼詞替代。 (我們真正關心的LaTeX的是,我們有源的某些部分是文字

    4熱度

    1回答

    我有一個關於重構Parsec代碼使用Applicative接口的問題。假設我有使用單子接口這樣的解析器: filePath0 :: GenParser Char st Info filePath0 = do optional (string "./") r <- artist slash l <- album slash t <- tr

    1熱度

    1回答

    我試圖調試爲什麼儘管將optionMaybe與try相結合,parsec正在消耗輸入。基本上在下面的代碼中,爲什麼第二次運行不返回Right "abc"(這是我所期望的)? 鑑於 myParser = do optionMaybe $ try (between (char '/') (char '/') $ many1 (noneOf "/") many1 (noneOf "/

    2熱度

    2回答

    Parsec的新手,初學者的問題。如何解析一行文件,其中一些行可能是空白的,只包含空格後跟一個換行符?我只想跳過它們,而不是在解析後的輸出中。 import Text.ParserCombinators.Parsec -- alias for parseTest run :: Show a => Parser a -> String -> IO() run = parseTest --

    3熱度

    2回答

    我學習Haskell,所以它可能是非常微不足道的,但我會很感激如何重寫它以及它如何工作的一些指針。 我有以下工作代碼(使用的包:HTF,Parsec和Flow): {-# OPTIONS_GHC -F -pgmF htfpp #-} {-# LANGUAGE FlexibleContexts #-} module Main where import Test.Framework -- a

    1熱度

    1回答

    我對Haskell相當新,我試圖做一個簡單的解析器,並使用Parsec模塊。我的解析器的語法是: data Frag = Lt String | St deriving (Eq, Show) type Template = [Frag] type FileT = Template type CommandT = Template data Rule

    1熱度

    1回答

    我正在使用Haskell中的Parsec模塊解析文件。這些文件的組件之一是顏色。我創建了一個類型的顏色是這樣的: data Color = Yellow | Red | Blue | Green deriving (Show) 我在解析顏色最初嘗試是這樣的: symbol :: String -> Parsec String() String symbol s = spaces >> str

    1熱度

    1回答

    我只是剛開始學習Parsec庫,而且我想知道庫中是否有任何原語可以執行以下操作:給定解析器let a = char 'a'和字符串aaab,將返回Right ['a', 'a', 'a'],剩餘"b",即,將盡可能多地解析,但不會更多。我覺得這是非常必要的,它必須以某種形式存在於圖書館。

    4熱度

    2回答

    我是Haskell,Parsec的初學者,一般編寫解析器。我試圖解析一個簡單的語言,該語言(爲了這個問題進一步簡化它)僅僅由嵌套括號的字符串組成,例如, [[][]][]。 我有下面的Haskell代碼,它工作正常。但是,我想擴展它,以便不匹配的括號將匹配字符串的末尾。因此,例如,]][][[應等於[[]][][[]],而[]]應等於[[]]。這樣做開放括號匹配字符串的結尾很容易,但這樣做是爲了匹