on master help sign in
Show parse errors, albeit with bad messages
e221231Evan Czaplicki
src/Reporting/Error/Syntax.hs+17−1
@@ -39,7 +39,7 @@ toHint :: Error -> String
39toHint err =
39toHint err =
40 case err of
40 case err of
41 Parse messages ->
41 Parse messages ->
42− error "TODO" messages
42+ unlines (map parseErrorHint messages)
43
43
44 InfixDuplicate opName ->
44 InfixDuplicate opName ->
45 "The infix declarations for " ++ operator ++ " must be removed.\n\n"
45 "The infix declarations for " ++ operator ++ " must be removed.\n\n"
@@ -126,3 +126,19 @@ unboundTypeVars typeName tvar tvars revisedDeclaration =
126indent :: String -> String
126indent :: String -> String
127indent string =
127indent string =
128 List.intercalate "\n" (map (" " ++ ) (lines string))
128 List.intercalate "\n" (map (" " ++ ) (lines string))
129+
130+
131+parseErrorHint :: Parsec.Message -> String
132+parseErrorHint message =
133+ case message of
134+ Parsec.SysUnExpect msg ->
135+ "SysUnExpect: " ++ msg
136+
137+ Parsec.UnExpect msg ->
138+ "UnExpect: " ++ msg
139+
140+ Parsec.Expect msg ->
141+ "UnExpect: " ++ msg
142+
143+ Parsec.Message msg ->
144+ "UnExpect: " ++ msg