Throw proper parse errors, stop using error

This commit is contained in:
Evan Czaplicki 2013-08-25 19:22:41 -07:00
parent ca75e60628
commit 082e6a20c0

View file

@ -72,8 +72,8 @@ exportEvent = do
T.Data "Signal" [t] ->
case isExportable t of
Nothing -> return (ExportEvent eventName elmVar tipe)
Just err -> error err
_ -> error "When importing foreign events, the imported value must have type Signal."
Just err -> fail err
_ -> fail "When importing foreign events, the imported value must have type Signal."
importEvent :: IParser (Declaration t v)
importEvent = do
@ -89,14 +89,14 @@ importEvent = do
T.Data "Signal" [t] ->
case isExportable t of
Nothing -> return (ImportEvent eventName baseValue elmVar tipe)
Just err -> error err
_ -> error "When importing foreign events, the imported value must have type Signal."
Just err -> fail err
_ -> fail "When importing foreign events, the imported value must have type Signal."
jsVar :: IParser String
jsVar = betwixt '"' '"' $ do
v <- (:) <$> (letter <|> char '_') <*> many (alphaNum <|> char '_')
if Set.notMember v jsReserveds then return v else
error $ "'" ++ v ++
fail $ "'" ++ v ++
"' is not a good name for a importing or exporting JS values."
isExportable tipe =