diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/astalgo.nim | 144 | ||||
-rw-r--r-- | compiler/dfa.nim | 3 | ||||
-rw-r--r-- | compiler/lookups.nim | 19 |
3 files changed, 82 insertions, 84 deletions
diff --git a/compiler/astalgo.nim b/compiler/astalgo.nim index bd60ddd7d..47cf83715 100644 --- a/compiler/astalgo.nim +++ b/compiler/astalgo.nim @@ -24,55 +24,55 @@ proc typeToYaml*(conf: ConfigRef; n: PType, indent: int = 0, maxRecDepth: int = proc symToYaml*(conf: ConfigRef; n: PSym, indent: int = 0, maxRecDepth: int = - 1): Rope proc lineInfoToStr*(conf: ConfigRef; info: TLineInfo): Rope -when declared(echo): - # these are for debugging only: They are not really deprecated, but I want - # the warning so that release versions do not contain debugging statements: - proc debug*(n: PSym; conf: ConfigRef = nil) {.exportc: "debugSym", deprecated.} - proc debug*(n: PType; conf: ConfigRef = nil) {.exportc: "debugType", deprecated.} - proc debug*(n: PNode; conf: ConfigRef = nil) {.exportc: "debugNode", deprecated.} - - proc typekinds*(t: PType) {.deprecated.} = - var t = t - var s = "" - while t != nil and t.len > 0: - s.add $t.kind - s.add " " - t = t.lastSon - echo s - - template debug*(x: PSym|PType|PNode) {.deprecated.} = - when compiles(c.config): - debug(c.config, x) - elif compiles(c.graph.config): - debug(c.graph.config, x) - else: - error() - - template debug*(x: auto) {.deprecated.} = - echo x - - template mdbg*: bool {.deprecated.} = - when compiles(c.graph): - c.module.fileIdx == c.graph.config.projectMainIdx - elif compiles(c.module): - c.module.fileIdx == c.config.projectMainIdx - elif compiles(c.c.module): - c.c.module.fileIdx == c.c.config.projectMainIdx - elif compiles(m.c.module): - m.c.module.fileIdx == m.c.config.projectMainIdx - elif compiles(cl.c.module): - cl.c.module.fileIdx == cl.c.config.projectMainIdx - elif compiles(p): - when compiles(p.lex): - p.lex.fileIdx == p.lex.config.projectMainIdx - else: - p.module.module.fileIdx == p.config.projectMainIdx - elif compiles(m.module.fileIdx): - m.module.fileIdx == m.config.projectMainIdx - elif compiles(L.fileIdx): - L.fileIdx == L.config.projectMainIdx + +# these are for debugging only: They are not really deprecated, but I want +# the warning so that release versions do not contain debugging statements: +proc debug*(n: PSym; conf: ConfigRef = nil) {.exportc: "debugSym", deprecated.} +proc debug*(n: PType; conf: ConfigRef = nil) {.exportc: "debugType", deprecated.} +proc debug*(n: PNode; conf: ConfigRef = nil) {.exportc: "debugNode", deprecated.} + +proc typekinds*(t: PType) {.deprecated.} = + var t = t + var s = "" + while t != nil and t.len > 0: + s.add $t.kind + s.add " " + t = t.lastSon + echo s + +template debug*(x: PSym|PType|PNode) {.deprecated.} = + when compiles(c.config): + debug(c.config, x) + elif compiles(c.graph.config): + debug(c.graph.config, x) + else: + error() + +template debug*(x: auto) {.deprecated.} = + echo x + +template mdbg*: bool {.deprecated.} = + when compiles(c.graph): + c.module.fileIdx == c.graph.config.projectMainIdx + elif compiles(c.module): + c.module.fileIdx == c.config.projectMainIdx + elif compiles(c.c.module): + c.c.module.fileIdx == c.c.config.projectMainIdx + elif compiles(m.c.module): + m.c.module.fileIdx == m.c.config.projectMainIdx + elif compiles(cl.c.module): + cl.c.module.fileIdx == cl.c.config.projectMainIdx + elif compiles(p): + when compiles(p.lex): + p.lex.fileIdx == p.lex.config.projectMainIdx else: - error() + p.module.module.fileIdx == p.config.projectMainIdx + elif compiles(m.module.fileIdx): + m.module.fileIdx == m.config.projectMainIdx + elif compiles(L.fileIdx): + L.fileIdx == L.config.projectMainIdx + else: + error() # --------------------------- ident tables ---------------------------------- proc idTableGet*(t: TIdTable, key: PIdObj): RootRef @@ -628,30 +628,30 @@ proc value(this: var DebugPrinter; value: PNode) = this.closeCurly -when declared(echo): - proc debug(n: PSym; conf: ConfigRef) = - var this: DebugPrinter - this.visited = initTable[pointer, int]() - this.renderSymType = true - this.useColor = not defined(windows) - this.value(n) - echo($this.res) - - proc debug(n: PType; conf: ConfigRef) = - var this: DebugPrinter - this.visited = initTable[pointer, int]() - this.renderSymType = true - this.useColor = not defined(windows) - this.value(n) - echo($this.res) - - proc debug(n: PNode; conf: ConfigRef) = - var this: DebugPrinter - this.visited = initTable[pointer, int]() - #this.renderSymType = true - this.useColor = not defined(windows) - this.value(n) - echo($this.res) + +proc debug(n: PSym; conf: ConfigRef) = + var this: DebugPrinter + this.visited = initTable[pointer, int]() + this.renderSymType = true + this.useColor = not defined(windows) + this.value(n) + echo($this.res) + +proc debug(n: PType; conf: ConfigRef) = + var this: DebugPrinter + this.visited = initTable[pointer, int]() + this.renderSymType = true + this.useColor = not defined(windows) + this.value(n) + echo($this.res) + +proc debug(n: PNode; conf: ConfigRef) = + var this: DebugPrinter + this.visited = initTable[pointer, int]() + #this.renderSymType = true + this.useColor = not defined(windows) + this.value(n) + echo($this.res) proc nextTry(h, maxHash: Hash): Hash = result = ((5 * h) + 1) and maxHash diff --git a/compiler/dfa.nim b/compiler/dfa.nim index 0f23d7f1a..e4cadde5b 100644 --- a/compiler/dfa.nim +++ b/compiler/dfa.nim @@ -91,8 +91,7 @@ proc echoCfg*(c: ControlFlowGraph; start=0; last = -1) {.deprecated.} = ## echos the ControlFlowGraph for debugging purposes. var buf = "" codeListing(c, buf, start, last) - when declared(echo): - echo buf + echo buf proc forkI(c: var Con; n: PNode): TPosition = result = TPosition(c.code.len) diff --git a/compiler/lookups.nim b/compiler/lookups.nim index 8c231212d..fe0e6fe7c 100644 --- a/compiler/lookups.nim +++ b/compiler/lookups.nim @@ -100,16 +100,15 @@ proc searchInScopes*(c: PContext, s: PIdent): PSym = if result != nil: return result = nil -when declared(echo): - proc debugScopes*(c: PContext; limit=0) {.deprecated.} = - var i = 0 - for scope in walkScopes(c.currentScope): - echo "scope ", i - for h in 0..high(scope.symbols.data): - if scope.symbols.data[h] != nil: - echo scope.symbols.data[h].name.s - if i == limit: break - inc i +proc debugScopes*(c: PContext; limit=0) {.deprecated.} = + var i = 0 + for scope in walkScopes(c.currentScope): + echo "scope ", i + for h in 0..high(scope.symbols.data): + if scope.symbols.data[h] != nil: + echo scope.symbols.data[h].name.s + if i == limit: break + inc i proc searchInScopes*(c: PContext, s: PIdent, filter: TSymKinds): PSym = for scope in walkScopes(c.currentScope): |