Untitled

Run Settings
LanguageNim
Language Version
Run Command
import macros macro mkmac(a, b, c: untyped): untyped = result = newStmtList() result.add quote do: `a` * (`b` + `c`) macro mkmacro(fn: static[string]): untyped = result = newStmtList() var body = newStmtList() body.add("write".newCall("stdout".ident, "TEST\n".newStrLitNode)) var bra = nnkBracket.newTree bra.add(3.newIntLitNode) bra.add(7.newIntLitNode) bra.add(1.newIntLitNode) let seq = bra.prefix("@") let seqLit = @[3, 7, 1].newLit body.add("echo".newCall(nnkInFix.newTree("==".ident, seq, seqLit))) let ast: NimNode = getAst mkmac("x".ident, "y".ident, "z".ident) body.add(newAssignment("result".ident, ast)) result.add(newProc(fn.ident.postfix("*"), ["int".ident, newIdentDefs("x".ident, "int".ident), newIdentDefs("y".ident, "int".ident), newIdentDefs("z".ident, "int".ident)], body, nnkProcDef, newEmptyNode())) let hoge: int = 3 mkmacro "fuga" echo hoge.fuga(4, 1)
Editor Settings
Theme
Key bindings
Full width
Lines