小编anf*_*nfo的帖子

AST和Harsell中的解析

我有一个任务,我无法弄清楚如何定义答案.

分配

写功能 exp:: [String] -> (AST, [String])

AST:

  • 如果x是数字,应该说Number x.
  • 如果它是"+"og和" - "应该说Atom x.
  • 如果它读取"(",那么"("直到它出现")后面的所有内容""应该是一个列表[AST].

这样输出将是:

exp (token "(hi (4) 32)")
> (List [Atom "hi", List [Number 4], Number 32], [])

exp (token "(+ 3 42 654 2)") 
> (List [Atom "+", Number 3, Number 42, Number 654, Number 2], [])

exp (token "(+ 21 444) junk") 
> (List [Atom "+", Number 21, Number 444], ["junk"])
Run Code Online (Sandbox Code Playgroud)

到目前为止我有什么

我已经有了令牌功能,token :: …

parsing haskell abstract-syntax-tree

5
推荐指数
1
解决办法
1309
查看次数

标签 统计

abstract-syntax-tree ×1

haskell ×1

parsing ×1