diff options
Diffstat (limited to 'src/Language/SimpleShell/Parser/Function.hs')
-rw-r--r-- | src/Language/SimpleShell/Parser/Function.hs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Language/SimpleShell/Parser/Function.hs b/src/Language/SimpleShell/Parser/Function.hs index 29ebbaa..26f5a5c 100644 --- a/src/Language/SimpleShell/Parser/Function.hs +++ b/src/Language/SimpleShell/Parser/Function.hs @@ -12,7 +12,7 @@ import Language.SimpleShell.AST.Name (VarName) import Language.SimpleShell.AST.SimpleType (FunSig, Typed) import Language.SimpleShell.Parser (Parser, symbol, declareVars) import Language.SimpleShell.Parser.Expr (strongTermP) -import Language.SimpleShell.Parser.Name (funNameP, varNameP, keyword) +import Language.SimpleShell.Parser.Name (nameP, keyword) import Language.SimpleShell.Parser.SimpleType (simpleTypeP, forceType) import Control.Applicative ((<|>)) @@ -23,14 +23,14 @@ functionP :: Parser (FunSig, Function) functionP = do keyword "function" t' <- simpleTypeP - fname <- funNameP + fname <- nameP params <- symbol "(" *> paramP `sepBy` symbol "," <* symbol ")" let (ts, vars) = unzip params body <- forceType t' (bodyP params) <|> fail "Function return type mismatch." return ((t', ts), Function fname vars body) paramP :: Parser (Typed VarName) -paramP = (,) <$> simpleTypeP <*> varNameP +paramP = (,) <$> simpleTypeP <*> nameP bodyP :: [Typed VarName] -> Parser (Typed Expr) bodyP params = declareVars params strongTermP |