diff options
author | Einhard Leichtfuß <alguien@respiranto.de> | 2025-05-20 19:40:53 +0200 |
---|---|---|
committer | Einhard Leichtfuß <alguien@respiranto.de> | 2025-05-20 22:36:30 +0200 |
commit | fd94a9d8a3e4fc86e5128715a2bc68187c872970 (patch) | |
tree | acee31c8049cbcd6b8c73c7e55192eca1203486b /src/Language/SimpleShell/Parser/Function.hs | |
parent | b40c163b40615ccd46a80d9119262f9c386bac63 (diff) |
Reduce name parsers to nameP
There is no good reason to have different syntax for variable and
function names, for example.
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 |