summary refs log tree commit diff stats
path: root/rod/options.nim
diff options
context:
space:
mode:
Diffstat (limited to 'rod/options.nim')
-rw-r--r--rod/options.nim193
1 files changed, 0 insertions, 193 deletions
diff --git a/rod/options.nim b/rod/options.nim
deleted file mode 100644
index 514c3db3b..000000000
--- a/rod/options.nim
+++ /dev/null
@@ -1,193 +0,0 @@
-#
-#
-#           The Nimrod Compiler
-#        (c) Copyright 2010 Andreas Rumpf
-#
-#    See the file "copying.txt", included in this
-#    distribution, for details about the copyright.
-#
-
-import 
-  os, lists, strutils, nstrtabs
-
-type                          # please make sure we have under 32 options
-                              # (improves code efficiency a lot!)
-  TOption* = enum             # **keep binary compatible**
-    optNone, optObjCheck, optFieldCheck, optRangeCheck, optBoundsCheck, 
-    optOverflowCheck, optNilCheck,
-    optNaNCheck, optInfCheck,
-    optAssert, optLineDir, optWarns, optHints, 
-    optOptimizeSpeed, optOptimizeSize, optStackTrace, # stack tracing support
-    optLineTrace,             # line tracing support (includes stack tracing)
-    optEndb,                  # embedded debugger
-    optByRef,                 # use pass by ref for objects
-                              # (for interfacing with C)
-    optCheckpoints,           # check for checkpoints (used for debugging)
-    optProfiler               # profiler turned on
-  TOptions* = set[TOption]
-  TGlobalOption* = enum 
-    gloptNone, optForceFullMake, optBoehmGC, optRefcGC, optDeadCodeElim, 
-    optListCmd, optCompileOnly, optNoLinking, optSafeCode, # only allow safe code
-    optCDebug,                # turn on debugging information
-    optGenDynLib,             # generate a dynamic library
-    optGenGuiApp,             # generate a GUI application
-    optGenScript,             # generate a script file to compile the *.c files
-    optGenMapping,            # generate a mapping file
-    optRun,                   # run the compiled project
-    optSymbolFiles,           # use symbol files for speeding up compilation
-    optSkipConfigFile,        # skip the general config file
-    optSkipProjConfigFile,    # skip the project's config file
-    optNoMain                 # do not generate a "main" proc
-  TGlobalOptions* = set[TGlobalOption]
-  TCommands* = enum           # Nimrod's commands
-    cmdNone, cmdCompileToC, cmdCompileToCpp, cmdCompileToEcmaScript, 
-    cmdCompileToLLVM, cmdInterpret, cmdPretty, cmdDoc, 
-    cmdGenDepend, cmdListDef, cmdCheck, # semantic checking for whole project
-    cmdParse,                 # parse a single file (for debugging)
-    cmdScan,                  # scan a single file (for debugging)
-    cmdDebugTrans,            # debug a transformation pass
-    cmdRst2html,              # convert a reStructuredText file to HTML
-    cmdRst2tex,               # convert a reStructuredText file to TeX
-    cmdInteractive            # start interactive session
-  TStringSeq* = seq[string]
-
-const 
-  ChecksOptions* = {optObjCheck, optFieldCheck, optRangeCheck, optNilCheck, 
-    optOverflowCheck, optBoundsCheck, optAssert, optNaNCheck, optInfCheck}
-
-var 
-  gOptions*: TOptions = {optObjCheck, optFieldCheck, optRangeCheck, 
-                         optBoundsCheck, optOverflowCheck, optAssert, optWarns, 
-                         optHints, optStackTrace, optLineTrace}
-  gGlobalOptions*: TGlobalOptions = {optRefcGC}
-  gExitcode*: int8
-  searchPaths*: TLinkedList
-  outFile*: string = ""
-  gIndexFile*: string = ""
-  gCmd*: TCommands = cmdNone  # the command
-  gVerbosity*: int            # how verbose the compiler is
-  gNumberOfProcessors*: int   # number of processors
-
-proc FindFile*(f: string): string
-
-const 
-  genSubDir* = "nimcache"
-  NimExt* = "nim"
-  RodExt* = "rod"
-  HtmlExt* = "html"
-  TexExt* = "tex"
-  IniExt* = "ini"
-  DocConfig* = "nimdoc.cfg"
-  DocTexConfig* = "nimdoc.tex.cfg"
-
-proc completeGeneratedFilePath*(f: string, createSubDir: bool = true): string
-proc toGeneratedFile*(path, ext: string): string
-  # converts "/home/a/mymodule.nim", "rod" to "/home/a/nimcache/mymodule.rod"
-proc getPrefixDir*(): string
-  # gets the application directory
-
-# additional configuration variables:
-var 
-  gConfigVars*: PStringTable
-  libpath*: string = ""
-  projectPath*: string = ""
-  gKeepComments*: bool = true # whether the parser needs to keep comments
-  gImplicitMods*: TStringSeq = @[] # modules that are to be implicitly imported
-
-proc existsConfigVar*(key: string): bool
-proc getConfigVar*(key: string): string
-proc setConfigVar*(key, val: string)
-proc addImplicitMod*(filename: string)
-proc getOutFile*(filename, ext: string): string
-proc binaryStrSearch*(x: openarray[string], y: string): int
-# implementation
-
-proc existsConfigVar(key: string): bool = 
-  result = hasKey(gConfigVars, key)
-
-proc getConfigVar(key: string): string = 
-  result = nstrtabs.get(gConfigVars, key)
-
-proc setConfigVar(key, val: string) = 
-  nstrtabs.put(gConfigVars, key, val)
-
-proc getOutFile(filename, ext: string): string = 
-  if options.outFile != "": result = options.outFile
-  else: result = changeFileExt(filename, ext)
-  
-proc addImplicitMod(filename: string) = 
-  var length: int
-  length = len(gImplicitMods)
-  setlen(gImplicitMods, length + 1)
-  gImplicitMods[length] = filename
-
-proc getPrefixDir(): string = 
-  result = SplitPath(getApplicationDir()).head
-
-proc shortenDir(dir: string): string = 
-  # returns the interesting part of a dir
-  var prefix = getPrefixDir() & dirSep
-  if startsWith(dir, prefix): 
-    return copy(dir, len(prefix))
-  prefix = getCurrentDir() & dirSep
-  if startsWith(dir, prefix): 
-    return copy(dir, len(prefix))
-  prefix = projectPath & dirSep #writeln(output, prefix);
-                                #writeln(output, dir);
-  if startsWith(dir, prefix): 
-    return copy(dir, len(prefix))
-  result = dir
-
-proc removeTrailingDirSep(path: string): string = 
-  if (len(path) > 0) and (path[len(path) - 1] == dirSep): 
-    result = copy(path, 0, len(path) - 2)
-  else: 
-    result = path
-  
-proc toGeneratedFile(path, ext: string): string = 
-  var (head, tail) = splitPath(path)
-  if len(head) > 0: head = shortenDir(head & dirSep)
-  result = joinPath([projectPath, genSubDir, head, changeFileExt(tail, ext)])
-
-proc completeGeneratedFilePath(f: string, createSubDir: bool = true): string = 
-  var (head, tail) = splitPath(f)
-  if len(head) > 0: head = removeTrailingDirSep(shortenDir(head & dirSep))
-  var subdir = joinPath([projectPath, genSubDir, head])
-  if createSubDir: 
-    try: 
-      createDir(subdir)
-    except EOS: 
-      writeln(stdout, "cannot create directory: " & subdir)
-      quit(1)
-  result = joinPath(subdir, tail)
-
-proc rawFindFile(f: string): string = 
-  if ExistsFile(f): 
-    result = f
-  else: 
-    var it = PStrEntry(SearchPaths.head)
-    while it != nil: 
-      result = JoinPath(it.data, f)
-      if ExistsFile(result): return 
-      it = PStrEntry(it.Next)
-    result = ""
-
-proc FindFile(f: string): string = 
-  result = rawFindFile(f)
-  if len(result) == 0: result = rawFindFile(toLower(f))
-  
-proc binaryStrSearch(x: openarray[string], y: string): int = 
-  var a = 0
-  var b = len(x) - 1
-  while a <= b: 
-    var mid = (a + b) div 2
-    var c = cmpIgnoreCase(x[mid], y)
-    if c < 0: 
-      a = mid + 1
-    elif c > 0: 
-      b = mid - 1
-    else: 
-      return mid
-  result = - 1
-
-gConfigVars = newStringTable([], modeStyleInsensitive)