|
A tool to support plural arguments by a transformation on Curry programs.
Author: Michael Hanus
Version: July 2021
banner
:: String |
defaultTParam
:: TParam |
setRunQuiet
:: TParam -> TParam |
setCompile
:: TParam -> TParam |
setExec
:: TParam -> TParam |
main
:: IO () |
usageInfo
:: String |
transformPlural
:: TParam -> String -> IO () |
compileAcyFcy
:: Bool -> String -> IO () |
pluralArgsOfProg
:: CurryProg -> [((String,String),[Int])] |
pluralArgsOfFunc
:: CFuncDecl -> [((String,String),[Int])] |
pluralArgsOfType
:: Int -> CTypeExpr -> [Int] |
tcPlural
:: (String,String) |
tcPluralArg
:: (String,String) |
tcplural
:: (String,String) |
tPluralProg
:: [((String,String),[Int])] -> CurryProg -> CurryProg |
tPluralFunc
:: String -> [((String,String),[Int])] -> CFuncDecl -> CFuncDecl |
tPluralType
:: [Int] -> Int -> CTypeExpr -> CTypeExpr |
tPluralRule
:: String -> [((String,String),[Int])] -> [Int] -> CRule -> CRule |
replacePluralCPatterns
:: [Int] -> (Int,CPattern) -> CPattern |
funPatError
:: a |
lazyPatError
:: a |
recPatError
:: a |
freshVar
:: Int -> (Int,String) |
matchForPluralCPatterns
:: String -> [Int] -> (Int,CPattern) -> [CExpr] |
pluralVarsOfPattern
:: String -> [Int] -> (Int,CPattern) -> ([((Int,String),CExpr)],[CFuncDecl]) |
pluralVarsOfPattern'
:: String -> [Int] -> (Int,String) -> (Int,CPattern) -> ([((Int,String),CExpr)],[CFuncDecl]) |
projectPluralPatternVars
:: String -> (Int,String) -> String -> (Int,CPattern) -> [((Int,String),CExpr)] |
projectFunctions
:: String -> CPattern -> String -> (Int,CPattern) -> [CFuncDecl] |
tPluralExp
:: [((String,String),[Int])] -> [((Int,String),CExpr)] -> CExpr -> CExpr |
tPluralBranch
:: [((String,String),[Int])] -> [((Int,String),CExpr)] -> (CPattern,CRhs) -> (CPattern,CRhs) |
tPluralRhs
:: [((String,String),[Int])] -> [((Int,String),CExpr)] -> CRhs -> CRhs |
tPluralLocalDecl
:: [((String,String),[Int])] -> [((Int,String),CExpr)] -> CLocalDecl -> CLocalDecl |
tPluralStat
:: [((String,String),[Int])] -> [((Int,String),CExpr)] -> CStatement -> CStatement |
tPluralApply
:: [((String,String),[Int])] -> [((Int,String),CExpr)] -> CExpr -> CExpr -> CExpr |
apply2funcall
:: CExpr -> Maybe ((String,String),[CExpr]) |
preTrue
:: CExpr |
list2conj
:: [CExpr] -> CExpr |
Constructors:
TParam
:: Bool -> Bool -> Bool -> TParam
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|