File tree 2 files changed +23
-4
lines changed
2 files changed +23
-4
lines changed Original file line number Diff line number Diff line change 1
1
import macros, strutils, sequtils, tables
2
2
3
- const debugMacro = false
3
+ const debugMacro = true
4
4
5
5
proc build (b: NimNode ): NimNode
6
6
@@ -131,11 +131,30 @@ macro buildMacro*(b: untyped): untyped =
131
131
var stmtsNode = newIdentNode (! " stmts" )
132
132
var lastNode = newIdentNode (! " last" )
133
133
var x = newIdentNode (! " x" )
134
- result = quote:
134
+ var resultNode = newIdentNode (! " result" )
135
+ var start = quote:
135
136
var `stmtsNode` = nnkStmtList.newTree ()
136
137
var `lastNode` = `stmtsNode`
137
138
var `x`: NimNode
138
- result .add (build (b))
139
+ var finish = quote:
140
+ `resultNode` = `stmtsNode`
141
+
142
+ start.add (build (b))
143
+ start.add (finish)
144
+ var empty = newEmptyNode ()
145
+
146
+ result = nnkCall.newTree (
147
+ nnkPar.newTree (
148
+ nnkLambda.newTree (
149
+ empty,
150
+ empty,
151
+ empty,
152
+ nnkFormalParams.newTree (
153
+ newIdentNode (! " NimNode" )),
154
+ empty,
155
+ empty,
156
+ start)))
157
+
139
158
when debugMacro:
140
159
echo " build: $1" % repr (result )
141
160
Original file line number Diff line number Diff line change 1
- version = " 0.0.1 "
1
+ version = " 0.0.4 "
2
2
packageName = " breeze"
3
3
author = " Alexander Ivanov"
4
4
description = " macro dsl"
You can’t perform that action at this time.
0 commit comments