diff options
Diffstat (limited to 'compiler/nimfix')
-rw-r--r-- | compiler/nimfix/nimfix.nim | 111 | ||||
-rw-r--r-- | compiler/nimfix/nimfix.nim.cfg | 17 | ||||
-rw-r--r-- | compiler/nimfix/prettybase.nim | 39 |
3 files changed, 0 insertions, 167 deletions
diff --git a/compiler/nimfix/nimfix.nim b/compiler/nimfix/nimfix.nim deleted file mode 100644 index 30c138f79..000000000 --- a/compiler/nimfix/nimfix.nim +++ /dev/null @@ -1,111 +0,0 @@ -# -# -# The Nim Compiler -# (c) Copyright 2015 Andreas Rumpf -# -# See the file "copying.txt", included in this -# distribution, for details about the copyright. -# - -## Nimfix is a tool that helps to convert old-style Nimrod code to Nim code. - -import strutils, os, parseopt -import compiler/[options, commands, modules, sem, - passes, passaux, linter, - msgs, nimconf, - extccomp, condsyms, - modulegraphs, idents] - -const Usage = """ -Nimfix - Tool to patch Nim code -Usage: - nimfix [options] projectfile.nim - -Options: - --overwriteFiles:on|off overwrite the original nim files. - DEFAULT is ON! - --wholeProject overwrite every processed file. - --checkExtern:on|off style check also extern names - --styleCheck:on|off|auto performs style checking for identifiers - and suggests an alternative spelling; - 'auto' corrects the spelling. - --bestEffort try to fix the code even when there - are errors. - -In addition, all command line options of Nim are supported. -""" - -proc mainCommand = - registerPass verbosePass - registerPass semPass - conf.setCmd cmdNimfix - searchPaths.add options.libpath - if gProjectFull.len != 0: - # current path is always looked first for modules - searchPaths.insert(gProjectPath, 0) - - compileProject(newModuleGraph(), newIdentCache()) - pretty.overwriteFiles() - -proc processCmdLine*(pass: TCmdLinePass, cmd: string, config: ConfigRef) = - var p = parseopt.initOptParser(cmd) - var argsCount = 0 - gOnlyMainfile = true - while true: - parseopt.next(p) - case p.kind - of cmdEnd: break - of cmdLongoption, cmdShortOption: - case p.key.normalize - of "overwritefiles": - case p.val.normalize - of "on": gOverWrite = true - of "off": gOverWrite = false - else: localError(gCmdLineInfo, errOnOrOffExpected) - of "checkextern": - case p.val.normalize - of "on": gCheckExtern = true - of "off": gCheckExtern = false - else: localError(gCmdLineInfo, errOnOrOffExpected) - of "stylecheck": - case p.val.normalize - of "off": gStyleCheck = StyleCheck.None - of "on": gStyleCheck = StyleCheck.Warn - of "auto": gStyleCheck = StyleCheck.Auto - else: localError(gCmdLineInfo, errOnOrOffExpected) - of "wholeproject": gOnlyMainfile = false - of "besteffort": msgs.gErrorMax = high(int) # don't stop after first error - else: - processSwitch(pass, p, config) - of cmdArgument: - options.gProjectName = unixToNativePath(p.key) - # if processArgument(pass, p, argsCount): break - -proc handleCmdLine(config: ConfigRef) = - if paramCount() == 0: - stdout.writeLine(Usage) - else: - processCmdLine(passCmd1, "", config) - if gProjectName != "": - try: - gProjectFull = canonicalizePath(gProjectName) - except OSError: - gProjectFull = gProjectName - var p = splitFile(gProjectFull) - gProjectPath = p.dir - gProjectName = p.name - else: - gProjectPath = getCurrentDir() - loadConfigs(DefaultConfig, config) # load all config files - # now process command line arguments again, because some options in the - # command line can overwrite the config file's settings - extccomp.initVars() - processCmdLine(passCmd2, "", config) - mainCommand() - -when compileOption("gc", "refc"): - GC_disableMarkAndSweep() - -condsyms.initDefines() -defineSymbol "nimfix" -handleCmdline newConfigRef() diff --git a/compiler/nimfix/nimfix.nim.cfg b/compiler/nimfix/nimfix.nim.cfg deleted file mode 100644 index 0d9dbfa4b..000000000 --- a/compiler/nimfix/nimfix.nim.cfg +++ /dev/null @@ -1,17 +0,0 @@ -# Special configuration file for the Nim project -# gc:markAndSweep - -hint[XDeclaredButNotUsed]:off -path:"$projectPath/.." - -path:"$lib/packages/docutils" -path:"$nim" - -define:useStdoutAsStdmsg -symbol:nimfix -define:nimfix - -cs:partial -#define:useNodeIds -define:booting -define:noDocgen diff --git a/compiler/nimfix/prettybase.nim b/compiler/nimfix/prettybase.nim deleted file mode 100644 index fbc2e3bd1..000000000 --- a/compiler/nimfix/prettybase.nim +++ /dev/null @@ -1,39 +0,0 @@ -# -# -# The Nim Compiler -# (c) Copyright 2015 Andreas Rumpf -# -# See the file "copying.txt", included in this -# distribution, for details about the copyright. -# - -import strutils except Letters -import ".." / [ast, msgs, lineinfos, idents, options, linter] - -proc replaceDeprecated*(conf: ConfigRef; info: TLineInfo; oldSym, newSym: PIdent) = - let line = sourceLine(conf, info) - var first = min(info.col.int, line.len) - if first < 0: return - #inc first, skipIgnoreCase(line, "proc ", first) - while first > 0 and line[first-1] in Letters: dec first - if first < 0: return - if line[first] == '`': inc first - - let last = first+identLen(line, first)-1 - if cmpIgnoreStyle(line[first..last], oldSym.s) == 0: - var x = line.substr(0, first-1) & newSym.s & line.substr(last+1) - system.shallowCopy(conf.m.fileInfos[info.fileIndex.int32].lines[info.line.int-1], x) - conf.m.fileInfos[info.fileIndex.int32].dirty = true - #if newSym.s == "File": writeStackTrace() - -proc replaceDeprecated*(conf: ConfigRef; info: TLineInfo; oldSym, newSym: PSym) = - replaceDeprecated(conf, info, oldSym.name, newSym.name) - -proc replaceComment*(conf: ConfigRef; info: TLineInfo) = - let line = sourceLine(conf, info) - var first = info.col.int - if line[first] != '#': inc first - - var x = line.substr(0, first-1) & "discard " & line.substr(first+1).escape - system.shallowCopy(conf.m.fileInfos[info.fileIndex.int32].lines[info.line.int-1], x) - conf.m.fileInfos[info.fileIndex.int32].dirty = true |