diff options
Diffstat (limited to 'nim/nimrod.pas')
-rwxr-xr-x | nim/nimrod.pas | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/nim/nimrod.pas b/nim/nimrod.pas deleted file mode 100755 index 8d7db04b2..000000000 --- a/nim/nimrod.pas +++ /dev/null @@ -1,126 +0,0 @@ -// -// -// The Nimrod Compiler -// (c) Copyright 2009 Andreas Rumpf -// -// See the file "copying.txt", included in this -// distribution, for details about the copyright. -// -program nimrod; - -{$include 'config.inc'} -{@ignore} -{$ifdef windows} -{$apptype console} -{$endif} -{@emit} - -uses - nsystem, ntime, - charsets, sysutils, commands, scanner, condsyms, options, msgs, nversion, - nimconf, ropes, extccomp, strutils, nos, platform, main, parseopt; - -var - arguments: string = ''; // the arguments to be passed to the program that - // should be run - cmdLineInfo: TLineInfo; - -procedure ProcessCmdLine(pass: TCmdLinePass; var command, filename: string); -var - p: TOptParser; - bracketLe: int; - key, val: string; -begin - p := parseopt.init(); - while true do begin - parseopt.next(p); - case p.kind of - cmdEnd: break; - cmdLongOption, cmdShortOption: begin - // hint[X]:off is parsed as (p.key = "hint[X]", p.val = "off") - // we fix this here - bracketLe := strutils.find(p.key, '['); - if bracketLe >= strStart then begin - key := ncopy(p.key, strStart, bracketLe-1); - val := ncopy(p.key, bracketLe+1) +{&} ':' +{&} p.val; - ProcessSwitch(key, val, pass, cmdLineInfo); - end - else - ProcessSwitch(p.key, p.val, pass, cmdLineInfo); - end; - cmdArgument: begin - if command = '' then command := p.key - else if filename = '' then begin - filename := unixToNativePath(p.key); - // BUGFIX for portable build scripts - break - end - end - end - end; - // collect the arguments: - if pass = passCmd2 then begin - arguments := getRestOfCommandLine(p); - if not (optRun in gGlobalOptions) and (arguments <> '') then - rawMessage(errArgsNeedRunOption); - end -end; - -{@ignore} -type - TTime = int; -{@emit} - -procedure HandleCmdLine; -var - command, filename, prog: string; - start: TTime; -begin - {@emit start := getTime(); } - if paramCount() = 0 then - writeCommandLineUsage() - else begin - // Process command line arguments: - command := ''; - filename := ''; - ProcessCmdLine(passCmd1, command, filename); - if filename <> '' then options.projectPath := splitFile(filename).dir; - nimconf.LoadConfig(filename); // load the right config file - // now process command line arguments again, because some options in the - // command line can overwite the config file's settings - extccomp.initVars(); - - command := ''; - filename := ''; - ProcessCmdLine(passCmd2, command, filename); - MainCommand(command, filename); - {@emit - if gVerbosity >= 2 then echo(GC_getStatistics()); } - if (gCmd <> cmdInterpret) and (msgs.gErrorCounter = 0) then begin - {@ignore} - rawMessage(hintSuccess); - {@emit - rawMessage(hintSuccessX, [toString(gLinesCompiled), - toString(getTime() - start)]); - } - end; - if optRun in gGlobalOptions then begin - {$ifdef unix} - prog := './' + quoteIfContainsWhite(changeFileExt(filename, '')); - {$else} - prog := quoteIfContainsWhite(changeFileExt(filename, '')); - {$endif} - execExternalProgram(prog +{&} ' ' +{&} arguments) - end - end -end; - -begin -//{@emit -// GC_disableMarkAndSweep(); -//} - cmdLineInfo := newLineInfo('command line', -1, -1); - condsyms.InitDefines(); - HandleCmdLine(); - halt(options.gExitcode); -end. |