File tree 1 file changed +13
-4
lines changed
1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change 5
5
import
6
6
macros
7
7
8
+ const IdentLike = {nnkIdent, nnkSym, nnkOpenSymChoice}
8
9
9
10
type
10
11
SectionInfo = object
@@ -63,17 +64,25 @@ proc createLayerInfo(sectionInfo: SectionInfo): seq[LayerInfo] =
63
64
64
65
if layer.kind != nnkCall or
65
66
layer.len != 2 or
66
- layer[0 ].kind != nnkIdent or
67
+ layer[0 ].kind notin IdentLike or
67
68
layer[1 ].kind != nnkStmtList or
68
69
layer[1 ].len != 1 or
69
70
layer[1 ][0 ].kind != nnkCall or
70
71
layer[1 ][0 ].len < 1 or
71
- layer[1 ][0 ][0 ].kind != nnkIdent :
72
+ layer[1 ][0 ][0 ].kind notin IdentLike :
72
73
error (" Unknown configuration of layer section: \" " & $ toStrLit (layer) & " \" " , layer)
73
74
75
+ let
76
+ nameNode = layer[0 ]
77
+ typeNameNode = layer[1 ][0 ][0 ]
78
+
74
79
result .add LayerInfo (
75
- name: layer[0 ],
76
- typeName: layer[1 ][0 ][0 ]
80
+ name:
81
+ if nameNode.kind != nnkOpenSymChoice: nameNode
82
+ else : nameNode.repr.ident (),
83
+ typeName:
84
+ if typeNameNode.kind != nnkOpenSymChoice: typeNameNode
85
+ else : typeNameNode.repr.ident (),
77
86
)
78
87
if layer[1 ][0 ].len >= 2 :
79
88
result [^ 1 ].arguments = layer[1 ][0 ][1 ..^ 1 ]
You can’t perform that action at this time.
0 commit comments