system.writeFile works at compile-time
This commit is contained in:
parent
c99ec16544
commit
4298553de4
3 changed files with 10 additions and 3 deletions
|
|
@ -21,6 +21,9 @@ template mathop(op) {.immediate, dirty.} =
|
|||
template osop(op) {.immediate, dirty.} =
|
||||
registerCallback(c, "stdlib.os." & astToStr(op), `op Wrapper`)
|
||||
|
||||
template systemop(op) {.immediate, dirty.} =
|
||||
registerCallback(c, "stdlib.system." & astToStr(op), `op Wrapper`)
|
||||
|
||||
template wrap1f(op) {.immediate, dirty.} =
|
||||
proc `op Wrapper`(a: VmArgs) {.nimcall.} =
|
||||
setResult(a, op(getFloat(a, 0)))
|
||||
|
|
@ -36,6 +39,11 @@ template wrap1s(op) {.immediate, dirty.} =
|
|||
setResult(a, op(getString(a, 0)))
|
||||
osop op
|
||||
|
||||
template wrap2svoid(op) {.immediate, dirty.} =
|
||||
proc `op Wrapper`(a: VmArgs) {.nimcall.} =
|
||||
op(getString(a, 0), getString(a, 1))
|
||||
systemop op
|
||||
|
||||
proc registerAdditionalOps*(c: PCtx) =
|
||||
wrap1f(sqrt)
|
||||
wrap1f(ln)
|
||||
|
|
@ -64,3 +72,4 @@ proc registerAdditionalOps*(c: PCtx) =
|
|||
wrap1s(existsEnv)
|
||||
wrap1s(dirExists)
|
||||
wrap1s(fileExists)
|
||||
wrap2svoid(writeFile)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue