Parsing 使用parens解析问题。帕塞克-哈斯克尔
这是我的代码:Parsing 使用parens解析问题。帕塞克-哈斯克尔,parsing,haskell,parsec,Parsing,Haskell,Parsec,这是我的代码: expr :: Parser Integer expr = buildExpressionParser table factor <?> "expression" table :: [[ Operator Char st Integer ]] table = [ [ op "*" (*) AssocLeft], [ op "+" (+) AssocLeft] ] where op s f assoc = Infix (do { s
expr :: Parser Integer
expr = buildExpressionParser table factor <?> "expression"
table :: [[ Operator Char st Integer ]]
table = [
[ op "*" (*) AssocLeft],
[ op "+" (+) AssocLeft]
]
where
op s f assoc = Infix (do { string s ; return f }) assoc
factor = do { char '(' ; x <- expr ; char ')' ; return x }
<|> number
<?> "simple expression"
number :: Parser Integer
number = do { ds <- many1 digit; return read(ds))) } <?> "number"
expr::解析器整数
expr=buildExpressionParser表因子“表达式”
表:[[Operator Char st Integer]]
表=[
[op“*”(*)关联左],
[操作“+”(+)关联左]
]
哪里
op s f assoc=Infix(do{string s;return f})assoc
factor=do{char'(';x您需要使用eof
解析器来确保您已经阅读了整个输入:
myParser = do
parsed <- expr
eof
return parsed
您需要使用eof
解析器来确保您已经阅读了整个输入:
myParser = do
parsed <- expr
eof
return parsed
您需要使用eof
解析器来确保您已经阅读了整个输入:
myParser = do
parsed <- expr
eof
return parsed
您需要使用eof
解析器来确保您已经阅读了整个输入:
myParser = do
parsed <- expr
eof
return parsed