小编Jos*_*osh的帖子

在Haskell中解析一个简单的解释器

我对Haskell相对较新,主要编程背景来自OO语言.我正在尝试使用解析器编写一个解释器来编写简单的编程语言.到目前为止,我有一个解释器处于一个我很满意的状态,但我正在与解析器稍微挣扎.

这是我遇到问题的一段代码

data IntExp
 = IVar Var
 | ICon Int
 | Add IntExp IntExp
 deriving (Read, Show)

whitespace = many1 (char ' ')

parseICon :: Parser IntExp
parseICon =
  do x <- many (digit)
     return (ICon (read x :: Int))

parseIVar :: Parser IntExp
parseIVar = 
  do x <- many (letter)
     prime <- string "'" <|> string ""
     return (IVar (x ++ prime))

parseIntExp :: Parser IntExp
parseIntExp =
  do x <- try(parseICon)<|>try(parseIVar)<|>parseAdd
     return x

parseAdd :: Parser IntExp
parseAdd …
Run Code Online (Sandbox Code Playgroud)

parsing haskell

8
推荐指数
1
解决办法
1482
查看次数

标签 统计

haskell ×1

parsing ×1