repositories
/
cc1516.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improved error reporting with positions
[cc1516.git]
/
src
/
yard.icl
diff --git
a/src/yard.icl
b/src/yard.icl
index
278bac8
..
932999a
100644
(file)
--- a/
src/yard.icl
+++ b/
src/yard.icl
@@
-4,6
+4,9
@@
import StdTuple
import StdClass
import StdString
import StdList
import StdClass
import StdString
import StdList
+import StdInt
+from Data.List import intersperse
+from Text import instance Text String, class Text(concat)
import Data.Functor
import Data.Either
import Control.Monad
import Data.Functor
import Data.Either
import Control.Monad
@@
-13,6
+16,8
@@
from Data.Func import $
instance toString Error where
toString ParseError = "General parse error"
toString (LexError e) = "Lexer error: " +++ e
instance toString Error where
toString ParseError = "General parse error"
toString (LexError e) = "Lexer error: " +++ e
+ toString (Expected ts pos) = "Expected " +++ (concat $ intersperse ", " ts)
+ +++ " at position " +++ (toString pos)
instance + Error where
(+) (Expected as _) (Expected bs p) = Expected (as++bs) p
instance + Error where
(+) (Expected as _) (Expected bs p) = Expected (as++bs) p