diff options
Diffstat (limited to 'src/Parser')
-rw-r--r-- | src/Parser/Expr.hs | 20 | ||||
-rw-r--r-- | src/Parser/Statement.hs | 2 |
2 files changed, 5 insertions, 17 deletions
diff --git a/src/Parser/Expr.hs b/src/Parser/Expr.hs index 5ff3f15..d8d96eb 100644 --- a/src/Parser/Expr.hs +++ b/src/Parser/Expr.hs @@ -415,22 +415,10 @@ functionArguments check param lit promote = do [ T.pack "multiple unnamed parameters" ] parseArgs False - ,do off <- stateOffset <$> getParserState - x <- identifier - choice - [do off' <- stateOffset <$> getParserState - y <- pparam <|> (promote off' =<< identifier) - checkAndInsert off' (Just (ArgumentKeyword x)) y $ parseArgs allowUnnamed - - ,if allowUnnamed - then do - y <- promote off x - checkAndInsert off Nothing y $ return M.empty - else do - registerParseError $ FancyError off $ S.singleton $ ErrorFail $ T.unpack $ T.concat - [ T.pack "multiple unnamed parameters" ] - return M.empty - ] + ,do x <- identifier + off <- stateOffset <$> getParserState + y <- pparam <|> (promote off =<< identifier) + checkAndInsert off (Just (ArgumentKeyword x)) y $ parseArgs allowUnnamed ,do return M.empty ] diff --git a/src/Parser/Statement.hs b/src/Parser/Statement.hs index 4bed1ef..7765b12 100644 --- a/src/Parser/Statement.hs +++ b/src/Parser/Statement.hs @@ -129,7 +129,7 @@ instance ExprType a => ParamType (TypedVarName a) where instance ExprType a => ParamType (Expr a) where parseParam _ = do off <- stateOffset <$> getParserState - SomeExpr e <- literal <|> variable <|> between (symbol "(") (symbol ")") someExpr + SomeExpr e <- literal <|> between (symbol "(") (symbol ")") someExpr unifyExpr off Proxy e showParamType _ = "<" ++ T.unpack (textExprType @a Proxy) ++ ">" |