最近我一直在尝试用Haskell创建一个正则表达式解释器。我所做的是创建一个新数据类型,其中包含所有可能的构造函数(序列、
*
、^
、区间等),然后定义一个匹配函数。它效果很好,但我的问题是,我必须将输入(例如字符串"a(b*)(c|d)ef"
)转换为我的数据类型("Seq (Sym a) (Seq (Rep Sym b) (Seq (Or Sym c Sym d) Sym ef))"
)。我在这个问题的部分遇到了麻烦(我尝试创建一个新的数据类型,即解析树,但我完全失败了)。你有什么想法可以帮我解决这个问题吗?