gpt4 book ai didi

parsing - 如何在 Haskell 中运行 Parsec 测试?

转载 作者:行者123 更新时间:2023-12-04 10:51:05 24 4
gpt4 key购买 nike

最近,我开始使用 Hackage 库学习解析器实现,尤其是 Parsec。到目前为止,我有这段代码来测试整数加法作为简单计算器功能之一:

import Text.Parsec hiding(digit)
import Data.Functor

type Parser a = Parsec String () a

digit :: Parser Char
digit = oneOf ['0'..'9']

number :: Parser Integer
number = read <$> many1 digit

addition = do
lhv <- number
spaces
char '+'
spaces
rhv <- number
return $ lhv + rhv

由于缺少 GHCI 启动此解析器的线索,我有点困惑(我的操作系统是 Windows 10)。我想在命令提示符中输入什么只是为了进行一些测试?

最佳答案

您可以使用 parseTest来自 Text.Parsec module 的函数. GHCI 中的示例 session :

~/g/scripts $ stack ghci parser.hs
GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/sibi/.ghci
[1 of 1] Compiling Main ( /home/sibi/github/scripts/parser.hs, interpreted )
Ok, one module loaded.
Loaded GHCi configuration from /tmp/haskell-stack-ghci/452ad586/ghci-script
λ> :t addition
addition
:: ParsecT String () Data.Functor.Identity.Identity Integer
λ> :t parseTest
parseTest
:: (Stream s Data.Functor.Identity.Identity t, Show a) =>
Parsec s () a -> s -> IO ()
λ> parseTest addition "3 + 2"
5

关于parsing - 如何在 Haskell 中运行 Parsec 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59469354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com