Updated multiRemove macro

This commit is contained in:
coffeepots 2018-04-24 16:28:01 +01:00 committed by zah
parent f15a48b1c2
commit 4acd6b3ee6

View File

@ -66,16 +66,20 @@ proc sharedRpcServer*(): RpcServer =
result = sharedServer result = sharedServer
macro multiRemove(s: string, values: varargs[string]): untyped = macro multiRemove(s: string, values: varargs[string]): untyped =
## wrapper for multiReplace ## Wrapper for multiReplace
result = newStmtList() var
var call = newNimNode(nnkCall) body = newStmtList()
call.add(ident"multiReplace") multiReplaceCall = newCall(ident"multiReplace", s)
call.add(s)
body.add(newVarStmt(ident"eStr", newStrLitNode("")))
let emptyStr = ident"eStr"
for item in values: for item in values:
# generate tuples of values with the empty string `eStr`
let sItem = $item let sItem = $item
# generate tuples with empty strings multiReplaceCall.add(newPar(newStrLitNode(sItem), emptyStr))
call.add(newPar(newStrLitNode(sItem), newStrLitNode("")))
result.add call body.add multiReplaceCall
result = newBlockStmt(body)
macro on*(server: var RpcServer, path: string, body: untyped): untyped = macro on*(server: var RpcServer, path: string, body: untyped): untyped =
var paramTemplates = newStmtList() var paramTemplates = newStmtList()