parsec

    10熱度

    1回答

    我已經決定檢查FParsec並嘗試爲λ表達式編寫解析器。事實證明,渴望使得遞歸解析變得困難。我該如何解決這個問題? 代碼: open FParsec type λExpr = | Variable of char | Application of λExpr * λExpr | Lambda of char * λExpr let rec FV = funct

    2熱度

    1回答

    我有一種語言 寫秒差距的規則我有一個語言定義(有爭議的部分)中的問題 COMMAND ::= ':' WS LITERAL WS {LITERAL WS}* ';' LITERAL ::= "[CHAR]*" | [^"\ ][^\ ]* 其中WS代表空白和文字是任何字符除了可以包含空格 所以,我寫未來功能的空白或引用 本地字符: literal = quotedLiteral <|> ma

    10熱度

    2回答

    在下面的類型聲明中約束(Stream s Identity t)是什麼意思? parse :: (Stream s Identity t) => Parsec s() a -> SourceName -> s -> Either ParseError a 什麼是Stream在下面的類聲明中是什麼意思。我完全迷失了。 class Monad m => Stream s m t | s

    1熱度

    2回答

    我不太清楚還有其他問題。我認爲我需要這裏的一般指導。我有這樣的事情: expr = buildExpressionParser table term <?> "expression" term = choice [ (float >>= return . EDouble) , try (natural >>= return . EInteger) , t

    2熱度

    1回答

    我試圖用一個使用haskell的L系統生成音樂。我使用類似下面的內容來生成我的歌曲。 musicgen mylist 4 = mylist musicgen mylist generation = musicgen (multiReplace [("A","o-B+B"),("B","AoA")] mylist (generation + 1) 在一首歌曲或規則中使用的文字是: .是休息 o

    5熱度

    2回答

    我正在通過Write Yourself a Scheme in Haskell。使用 parseNumber :: Parser LispVal parseNumber = liftM (Number . read) $ many1 digit 重寫parseNumber: 執行 - 符號 明確的測序與>> =操作它是一個偉大的教程,但我已經碰壁與parsing exercises之一 我沒

    5熱度

    2回答

    我在48小時的教程中嘗試編寫自己的方案,並且作爲haskell的新成員,這非常困難。 我目前正在研究一個問題,我應該添加解析方案向量的能力(3.4節練習2)。 我使用這個數據類型: data LispVal = Atom String | List [LispVal] | Vector (Array Int LispVal) 要解析,我在尋找「#(」然後

    3熱度

    1回答

    我想在使用Parsec的Haskell中進行一些解析。我有一些在我的代碼分析器,但我就在其中得到一個錯誤: expression2 = do (operator lexer "|" a <- alternate as <- expression2 return $ a:as ) <|> return [] 錯誤是parse error on in

    1熱度

    1回答

    是否有使用parsec的C++函數的任何開源解析器實現? 找不到任何,不想使用libClang,監守安裝failes

    1熱度

    1回答

    我是新手Haskell和在lernning秒差距LIB 一個例子: nesting :: Parser Int nesting = do{ char '(' ; n <- nesting ; char ')' ; m <- nesting ; return (max (n+1) m) } <|> return 0