diff options
author | Araq <rumpf_a@web.de> | 2013-07-24 21:58:17 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-07-24 21:58:17 +0200 |
commit | f9426bfcd54258730e14076b541cb20b7f86f6df (patch) | |
tree | 1ff145a3317e5511a0eec17c36faadbb4a1e7ee9 /lib/core | |
parent | b403b41aecaa089e42be74c9a5bd70f1446f0b24 (diff) | |
download | Nim-f9426bfcd54258730e14076b541cb20b7f86f6df.tar.gz |
added macros.genSym
Diffstat (limited to 'lib/core')
-rw-r--r-- | lib/core/macros.nim | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index 720b15189..9130c3ffb 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -85,11 +85,13 @@ type TNimTypeKinds* = set[TNimrodTypeKind] TNimrodSymKind* = enum nskUnknown, nskConditional, nskDynLib, nskParam, - nskGenericParam, nskTemp, nskType, nskConst, - nskVar, nskProc, nskMethod, nskIterator, + nskGenericParam, nskTemp, nskModule, nskType, nskVar, nskLet, + nskConst, nskResult, + nskProc, nskMethod, nskIterator, nskConverter, nskMacro, nskTemplate, nskField, - nskEnumField, nskForVar, nskModule, nskLabel, + nskEnumField, nskForVar, nskLabel, nskStub + TNimSymKinds* = set[TNimrodSymKind] type @@ -220,6 +222,11 @@ proc bindSym*(ident: string, rule: TBindSymRule = brClosed): PNimrodNode {. ## If ``rule == brForceOpen`` always an ``nkOpenSymChoice`` tree is ## returned even if the symbol is not ambiguous. +proc genSym*(kind: TNimrodSymKind = nskLet; ident = ""): PNimrodNode {. + magic: "NGenSym".} + ## generates a fresh symbol that is guaranteed to be unique. The symbol + ## needs to occur in a declaration context. + proc callsite*(): PNimrodNode {.magic: "NCallSite".} ## returns the AST if the invokation expression that invoked this macro. |