comparison trunk/src/main.d @ 798:c24be8d4f6ab

Added documentation comments.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sat, 01 Mar 2008 02:53:06 +0100
parents a7320b7cb7dc
children dcd30b0ba711
comparison
equal deleted inserted replaced
797:cf2ad5df025c 798:c24be8d4f6ab
39 import tango.io.File; 39 import tango.io.File;
40 import tango.text.Util; 40 import tango.text.Util;
41 import tango.time.StopWatch; 41 import tango.time.StopWatch;
42 import tango.text.Ascii : icompare; 42 import tango.text.Ascii : icompare;
43 43
44 /// Entry function of dil.
44 void main(char[][] args) 45 void main(char[][] args)
45 { 46 {
46 auto infoMan = new InfoManager(); 47 auto infoMan = new InfoManager();
47 SettingsLoader.SettingsLoader(infoMan).load(); 48 SettingsLoader.SettingsLoader(infoMan).load();
48 if (infoMan.hasInfo) 49 if (infoMan.hasInfo)
293 foreach (filePath; filePaths) 294 foreach (filePath; filePaths)
294 (new Lexer(new SourceText(filePath, true))).scanAll(); 295 (new Lexer(new SourceText(filePath, true))).scanAll();
295 296
296 Stdout.formatln("Scanned in {:f10}s.", swatch.stop); 297 Stdout.formatln("Scanned in {:f10}s.", swatch.stop);
297 break; 298 break;
298 case "parse": 299 // case "parse":
299 if (args.length == 3) 300 // if (args.length == 3)
300 parse(args[2]); 301 // parse(args[2]);
301 break; 302 // break;
302 case "?", "help": 303 case "?", "help":
303 printHelp(args.length >= 3 ? args[2] : ""); 304 printHelp(args.length >= 3 ? args[2] : "");
304 break; 305 break;
305 default: 306 default:
306 } 307 }
317 text ~= c; 318 text ~= c;
318 } 319 }
319 return text; 320 return text;
320 } 321 }
321 322
323 /// Available commands.
322 const char[] COMMANDS = 324 const char[] COMMANDS =
323 " compile (c)\n" 325 " compile (c)\n"
324 " ddoc (d)\n" 326 " ddoc (d)\n"
325 " generate (gen)\n" 327 " generate (gen)\n"
326 " help (?)\n" 328 " help (?)\n"
380 else 382 else
381 return false; 383 return false;
382 return true; 384 return true;
383 } 385 }
384 386
387 /// Prints the errors collected in infoMan.
385 void printErrors(InfoManager infoMan) 388 void printErrors(InfoManager infoMan)
386 { 389 {
387 foreach (info; infoMan.info) 390 foreach (info; infoMan.info)
388 { 391 {
389 char[] errorFormat; 392 char[] errorFormat;
400 auto err = cast(Problem)info; 403 auto err = cast(Problem)info;
401 Stderr.formatln(errorFormat, err.filePath, err.loc, err.col, err.getMsg); 404 Stderr.formatln(errorFormat, err.filePath, err.loc, err.col, err.getMsg);
402 } 405 }
403 } 406 }
404 407
408 /// Prints the compiler's main help message.
405 char[] helpMain() 409 char[] helpMain()
406 { 410 {
407 auto COMPILED_WITH = __VENDOR__; 411 auto COMPILED_WITH = __VENDOR__;
408 auto COMPILED_VERSION = Format("{}.{,:d3}", __VERSION__/1000, __VERSION__%1000); 412 auto COMPILED_VERSION = Format("{}.{,:d3}", __VERSION__/1000, __VERSION__%1000);
409 auto COMPILED_DATE = __TIMESTAMP__; 413 auto COMPILED_DATE = __TIMESTAMP__;
410 return FormatMsg(MID.HelpMain, VERSION, COMMANDS, COMPILED_WITH, 414 return FormatMsg(MID.HelpMain, VERSION, COMMANDS, COMPILED_WITH,
411 COMPILED_VERSION, COMPILED_DATE); 415 COMPILED_VERSION, COMPILED_DATE);
412 } 416 }
413 417
418 /// Prints a help message for command.
414 void printHelp(char[] command) 419 void printHelp(char[] command)
415 { 420 {
416 char[] msg; 421 char[] msg;
417 switch (command) 422 switch (command)
418 { 423 {
543 msg = helpMain(); 548 msg = helpMain();
544 } 549 }
545 Stdout(msg).newline; 550 Stdout(msg).newline;
546 } 551 }
547 552
548 void parse(string fileName) 553 /+void parse(string fileName)
549 { 554 {
550 auto mod = new Module(fileName); 555 auto mod = new Module(fileName);
551 mod.parse(); 556 mod.parse();
552 557
553 void print(Node[] decls, char[] indent) 558 void print(Node[] decls, char[] indent)
558 Stdout.formatln("{}{}: begin={} end={}", indent, decl.classinfo.name, decl.begin ? decl.begin.srcText : "\33[31mnull\33[0m", decl.end ? decl.end.srcText : "\33[31mnull\33[0m"); 563 Stdout.formatln("{}{}: begin={} end={}", indent, decl.classinfo.name, decl.begin ? decl.begin.srcText : "\33[31mnull\33[0m", decl.end ? decl.end.srcText : "\33[31mnull\33[0m");
559 print(decl.children, indent ~ " "); 564 print(decl.children, indent ~ " ");
560 } 565 }
561 } 566 }
562 print(mod.root.children, ""); 567 print(mod.root.children, "");
563 } 568 }+/