相关疑难解决方法(0)

Haskell词法布局规则实现

我一直在研究一种宠物语言,它具有类似Haskell的语法.Haskell做的一件很好的事情,我一直试图复制,是它插入{,}和; 在解析步骤之前,基于代码布局的标记.

我找到了http://www.haskell.org/onlinereport/syntax-iso.html,其中包含了如何实现布局程序的规范,并制作了它的一个版本(当然,为我修改了(更简单) ) 语言).

不幸的是,我输出的输出不正确:

f (do x y z) a b

它应该是生成令牌流ID ( DO { ID ID ID } ) ID ID,而是生成令牌流ID ( DO { ID ID ID ) ID ID }.

我想这是由于我对parse-error(t)(parse-error(t) = false)的实现不满意,但我不知道如何parse-error(t)有效地实现.

像GHC等Haskell编译器如何处理这种情况?是否有一种简单的方法可以实现parse-error(t)它处理这种情况(希望其他人还没有注意到)?

haskell lexer ghc

6
推荐指数
1
解决办法
228
查看次数

标签 统计

ghc ×1

haskell ×1

lexer ×1