【发布时间】:2023-01-16 23:30:23
【问题描述】:
我在 parsec 的帮助下编写解析器,但遇到问题
data Param = Param {paramName::String, argument :: Maybe String}
deriving (Show)
paramExpr1 :: Parser Param
paramExpr1 = do
paramKeyword
void $ lexeme $ char '-'
paramName <- word
return $ Param paramName Nothing
paramExpr3 :: Parser Param
paramExpr3 = do
pN <- paramExpr1 -- <- PROBLEM HERE
return $ Param pN Nothing
简而言之,我不明白如何获取命名字段,paramExpr1 将返回 Param,我想获取 paramName,但我不明白如何
【问题讨论】:
-
目前尚不清楚您真正想要什么。您想要名称,还是要在执行时生成名称的解析器?
-
这解析器没有命名字段,所以如果是前者,
Parser Param是错误的类型。您要么想要Parser String,要么想要Parser Param -> String。
标签: haskell