diff options
author | Araq <rumpf_a@web.de> | 2013-12-24 01:30:48 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-12-24 01:30:48 +0100 |
commit | 1081c104d06c084e73230d0c7fc73b3824fb4f1d (patch) | |
tree | a1861108b9788f961023091d391be7968f187c50 /compiler/vmdeps.nim | |
parent | c3b3339e779dfe19ed1891295a763aea47981131 (diff) | |
parent | feb9af48f1600ce814bc3b62765894ba503ec108 (diff) | |
download | Nim-1081c104d06c084e73230d0c7fc73b3824fb4f1d.tar.gz |
Merge branch 'vm2' of github.com:Araq/Nimrod into vm2
Diffstat (limited to 'compiler/vmdeps.nim')
-rw-r--r-- | compiler/vmdeps.nim | 59 |
1 files changed, 1 insertions, 58 deletions
diff --git a/compiler/vmdeps.nim b/compiler/vmdeps.nim index 2a40276d1..07100897b 100644 --- a/compiler/vmdeps.nim +++ b/compiler/vmdeps.nim @@ -32,62 +32,5 @@ proc opSlurp*(file: string, info: TLineInfo, module: PSym): string = appendToModule(module, newNode(nkIncludeStmt, info, @[ newStrNode(nkStrLit, filename)])) except EIO: - result = "" LocalError(info, errCannotOpenFile, file) - -when false: - proc opExpandToAst*(c: PEvalContext, original: PNode): PNode = - var - n = original.copyTree - macroCall = n.sons[1] - expandedSym = macroCall.sons[0].sym - - for i in countup(1, macroCall.sonsLen - 1): - macroCall.sons[i] = evalAux(c, macroCall.sons[i], {}) - - case expandedSym.kind - of skTemplate: - let genSymOwner = if c.tos != nil and c.tos.prc != nil: - c.tos.prc - else: - c.module - result = evalTemplate(macroCall, expandedSym, genSymOwner) - of skMacro: - # At this point macroCall.sons[0] is nkSym node. - # To be completely compatible with normal macro invocation, - # we want to replace it with nkIdent node featuring - # the original unmangled macro name. - macroCall.sons[0] = newIdentNode(expandedSym.name, expandedSym.info) - result = evalMacroCall(c, macroCall, original, expandedSym) - else: - InternalError(macroCall.info, - "ExpandToAst: expanded symbol is no macro or template") - result = emptyNode - - proc opIs*(n: PNode): PNode = - InternalAssert n.sonsLen == 3 and - n[1].kind == nkSym and n[1].sym.kind == skType and - n[2].kind in {nkStrLit..nkTripleStrLit, nkType} - - let t1 = n[1].sym.typ - - if n[2].kind in {nkStrLit..nkTripleStrLit}: - case n[2].strVal.normalize - of "closure": - let t = skipTypes(t1, abstractRange) - result = newIntNode(nkIntLit, ord(t.kind == tyProc and - t.callConv == ccClosure and - tfIterator notin t.flags)) - of "iterator": - let t = skipTypes(t1, abstractRange) - result = newIntNode(nkIntLit, ord(t.kind == tyProc and - t.callConv == ccClosure and - tfIterator in t.flags)) - else: - let t2 = n[2].typ - var match = if t2.kind == tyTypeClass: matchTypeClass(t2, t1) - else: sameType(t1, t2) - result = newIntNode(nkIntLit, ord(match)) - - result.typ = n.typ - + result = "" |