on master help sign in
Provide error type as args to Number.precedence and Space.docComment
8e0842cEvan Czaplicki
compiler/src/Parse/Number.hs+4−4
@@ -285,11 +285,11 @@ stepHex pos end word acc
285-- PRECEDENCE
285-- PRECEDENCE
286
286
287
287
288−precedence :: Parser E.Infix Binop.Precedence
288+precedence :: (Row -> Col -> x) -> Parser x Binop.Precedence
289−precedence =
289+precedence toExpectation =
290 P.Parser $ \(P.State pos end indent row col) cok _ _ eerr ->
290 P.Parser $ \(P.State pos end indent row col) cok _ _ eerr ->
291 if pos >= end then
291 if pos >= end then
292− eerr row col E.Precedence
292+ eerr row col toExpectation
293
293
294 else
294 else
295 let !word = P.unsafeIndex pos in
295 let !word = P.unsafeIndex pos in
@@ -299,4 +299,4 @@ precedence =
299 (P.State (plusPtr pos 1) end indent row (col + 1))
299 (P.State (plusPtr pos 1) end indent row (col + 1))
300
300
301 else
301 else
302− eerr row col E.Precedence
302+ eerr row col toExpectation
compiler/src/Parse/Space.hs+5−5
@@ -240,8 +240,8 @@ eatMultiCommentHelp pos end row col openComments =
240-- DOCUMENTATION COMMENT
240-- DOCUMENTATION COMMENT
241
241
242
242
243−docComment :: P.Parser E.Decl ()
243+docComment :: (Row -> Col -> x) -> (Row -> Col -> x) -> (Row -> Col -> x) -> P.Parser x ()
244−docComment =
244+docComment toExpectation toTabError toEndlessError =
245 P.Parser $ \(P.State pos end indent row col) cok _ cerr eerr ->
245 P.Parser $ \(P.State pos end indent row col) cok _ cerr eerr ->
246 let
246 let
247 !pos3 = plusPtr pos 3
247 !pos3 = plusPtr pos 3
@@ -262,7 +262,7 @@ docComment =
262 in
262 in
263 cok () newState
263 cok () newState
264
264
265− MultiTab -> cerr newRow newCol (E.DeclSpace E.HasTab)
265+ MultiTab -> cerr newRow newCol toTabError
266− MultiEndless -> cerr row col E.EndlessDocComment
266+ MultiEndless -> cerr row col toEndlessError
267 else
267 else
268− eerr row col E.DeclDeadend
268+ eerr row col toExpectation