diff options
Diffstat (limited to 'rod/condsyms.nim')
-rw-r--r-- | rod/condsyms.nim | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/rod/condsyms.nim b/rod/condsyms.nim deleted file mode 100644 index 0325a2b77..000000000 --- a/rod/condsyms.nim +++ /dev/null @@ -1,113 +0,0 @@ -# -# -# The Nimrod Compiler -# (c) Copyright 2008 Andreas Rumpf -# -# See the file "copying.txt", included in this -# distribution, for details about the copyright. -# - -# This module handles the conditional symbols. - -import - ast, astalgo, msgs, nhashes, platform, strutils, idents - -var gSymbols*: TStrTable - -proc InitDefines*() -proc DeinitDefines*() -proc DefineSymbol*(symbol: string) -proc UndefSymbol*(symbol: string) -proc isDefined*(symbol: PIdent): bool -proc ListSymbols*() -proc countDefinedSymbols*(): int -# implementation - -proc DefineSymbol(symbol: string) = - var - sym: PSym - i: PIdent - i = getIdent(symbol) - sym = StrTableGet(gSymbols, i) - if sym == nil: - new(sym) # circumvent the ID mechanism - sym.kind = skConditional - sym.name = i - StrTableAdd(gSymbols, sym) - sym.position = 1 - -proc UndefSymbol(symbol: string) = - var sym: PSym - sym = StrTableGet(gSymbols, getIdent(symbol)) - if sym != nil: sym.position = 0 - -proc isDefined(symbol: PIdent): bool = - var sym: PSym - sym = StrTableGet(gSymbols, symbol) - result = (sym != nil) and (sym.position == 1) - -proc ListSymbols() = - var - it: TTabIter - s: PSym - s = InitTabIter(it, gSymbols) - MessageOut("-- List of currently defined symbols --") - while s != nil: - if s.position == 1: MessageOut(s.name.s) - s = nextIter(it, gSymbols) - MessageOut("-- End of list --") - -proc countDefinedSymbols(): int = - var - it: TTabIter - s: PSym - s = InitTabIter(it, gSymbols) - result = 0 - while s != nil: - if s.position == 1: inc(result) - s = nextIter(it, gSymbols) - -proc InitDefines() = - initStrTable(gSymbols) - DefineSymbol("nimrod") # 'nimrod' is always defined - - # add platform specific symbols: - case targetCPU - of cpuI386: DefineSymbol("x86") - of cpuIa64: DefineSymbol("itanium") - of cpuAmd64: DefineSymbol("x8664") - else: - nil - case targetOS - of osDOS: - DefineSymbol("msdos") - of osWindows: - DefineSymbol("mswindows") - DefineSymbol("win32") - of osLinux, osMorphOS, osSkyOS, osIrix, osPalmOS, osQNX, osAtari, osAix: - # these are all 'unix-like' - DefineSymbol("unix") - DefineSymbol("posix") - of osSolaris: - DefineSymbol("sunos") - DefineSymbol("unix") - DefineSymbol("posix") - of osNetBSD, osFreeBSD, osOpenBSD: - DefineSymbol("unix") - DefineSymbol("bsd") - DefineSymbol("posix") - of osMacOS: - DefineSymbol("macintosh") - of osMacOSX: - DefineSymbol("macintosh") - DefineSymbol("unix") - DefineSymbol("posix") - else: - nil - DefineSymbol("cpu" & $cpu[targetCPU].bit) - DefineSymbol(normalize(endianToStr[cpu[targetCPU].endian])) - DefineSymbol(cpu[targetCPU].name) - DefineSymbol(platform.os[targetOS].name) - -proc DeinitDefines() = - nil |