Haskell lexer输入和返回令牌或错误列表

问题描述

您好,我正在研究lexer接受输入字符串并返回令牌列表或错误的问题。如果有人知道如何解决问题,请提供帮助。谢谢:)

lexer :: String -> Either Error [Token]

我不使用任何一种都无法工作,但是无法使用Haskell的任何一种功能。我想让左边给出一个错误,而右边则想生成带有多个条件匹配的令牌列表。

这是无效的代码:

lexar (x:xs) 
  | isSpace x = Main.lexar xs 
  | isDigit x = Right (Literal (show x): Main.lexar xs) 
  | x == '+' = Right (Plus : Main.lexar xs) 
  | x == '-' = Right (Minus : Main.lexar xs) 
  | x == '*' = Right (Mult : Main.lexar xs) 
  | x == '/' = Right (Div : Main.lexar xs) 
  | x == '(' = Right (LeftP : Main.lexar xs) 
  | x == ')' = Right (RightP : Main.lexar xs) 
  | otherwise = Left (error "fail")

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)