相关疑难解决方法(0)

使用 Parsec 在 Haskell 中编写小型解析器时出现问题

我正在尝试使用以下代码为小语言编写解析器

import Text.ParserCombinators.Parsec
import Text.Parsec.Token

data Exp = Atom String | Op String Exp

instance Show Exp where
  show (Atom x) = x
  show (Op f x) = f ++ "(" ++ (show x) ++ ")"

parse_exp :: Parser Exp
parse_exp = (try parse_atom) <|> parse_op

parse_atom :: Parser Exp
parse_atom = do
  x <- many1 letter
  return (Atom x)

parse_op :: Parser Exp
parse_op = do
  x <- many1 letter
  char '(' 
  y <- parse_exp
  char ')'
  return (Op …
Run Code Online (Sandbox Code Playgroud)

parsing haskell parsec

2
推荐指数
1
解决办法
426
查看次数

标签 统计

haskell ×1

parsec ×1

parsing ×1