annotate trunk/src/dil/semantic/Module.d @ 798:c24be8d4f6ab

Added documentation comments.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sat, 01 Mar 2008 02:53:06 +0100
parents 9f61e8af55d5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
1 /++
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
2 Author: Aziz Köksal
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
3 License: GPL3
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
4 +/
593
2848ce3becf5 Moved dil.Module to dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 592
diff changeset
5 module dil.semantic.Module;
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
6
580
fa6d3c52757d Moved SyntaxTree.d to new package 'ast'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 579
diff changeset
7 import dil.ast.Node;
585
05c375fb2d5c Moved dil.Declarations to dil.ast.Declarations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 580
diff changeset
8 import dil.ast.Declarations;
578
c769bc239006 Moved Parser.d to new package 'parser'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 576
diff changeset
9 import dil.parser.Parser;
576
0df647660e76 Moved Lexer.d to new package 'lexer'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 570
diff changeset
10 import dil.lexer.Lexer;
589
de365ddcfbd4 Moved dil.Symbol to dil.semantic.Symbol.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 585
diff changeset
11 import dil.semantic.Symbol;
590
641041912670 Moved dil.Symbols to dil.semantic.Symbols.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 589
diff changeset
12 import dil.semantic.Symbols;
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
13 import dil.Information;
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
14 import dil.SourceText;
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
15 import common;
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
16
391
33b566df6af4 Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 370
diff changeset
17 import tango.io.FilePath;
33b566df6af4 Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 370
diff changeset
18 import tango.io.FileConst;
33b566df6af4 Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 370
diff changeset
19
33b566df6af4 Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 370
diff changeset
20 alias FileConst.PathSeparatorChar dirSep;
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
21
777
9f61e8af55d5 Added module dil.Compilation.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 773
diff changeset
22 /// Represents a semantic D module and a source file.
560
709e223a8eb9 Added code related to symbols.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 532
diff changeset
23 class Module : ScopeSymbol
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
24 {
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
25 SourceText sourceText; /// The source file of this module.
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
26 string moduleFQN; /// Fully qualified name of the module. E.g.: dil.ast.Node
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
27 string packageName; /// E.g.: dil.ast
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
28 string moduleName; /// E.g.: Node
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
29
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
30 CompoundDeclaration root; /// The root of the parse tree.
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
31 ImportDeclaration[] imports; /// ImportDeclarations found in this file.
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
32 ModuleDeclaration moduleDecl; /// The optional ModuleDeclaration in this file.
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
33 Parser parser; /// The parser used to parse this file.
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
34
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
35 // Module[] modules;
367
dda55fae37de - ImportGraph.execute() can parse all modules depending on the imports of the root module.
aziz
parents: 366
diff changeset
36
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
37 InfoManager infoMan; /// Collects error messages.
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
38
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
39 this()
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
40 {
683
1ae72234db26 Implemented some methods in SemanticPass1.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 680
diff changeset
41 super(SYM.Module, null, null);
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
42 }
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
43
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
44 /// Constructs a Module object.
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
45 /// Params:
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
46 /// filePath = file path to the source text; loaded in the constructor.
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
47 /// infoMan = used for collecting error messages.
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
48 this(string filePath, InfoManager infoMan = null)
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
49 {
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
50 this();
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
51 this.sourceText = new SourceText(filePath);
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
52 this.infoMan = infoMan;
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
53 this.sourceText.load(infoMan);
520
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
54 }
f203c5248d0b Added 'compile' command.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 516
diff changeset
55
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
56 /// Returns the file path of the source text.
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
57 string filePath()
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
58 {
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
59 return sourceText.filePath;
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
60 }
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
61
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
62 /// Returns the file extension: "d" or "di".
773
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
63 string fileExtension()
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
64 {
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
65 foreach_reverse(i, c; filePath)
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
66 if (c == '.')
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
67 return filePath[i+1..$];
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
68 return "";
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
69 }
6dbbb403fc58 Improved the DDocEmitter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 764
diff changeset
70
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
71 /// Sets the parser to be used for parsing the source text.
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
72 void setParser(Parser parser)
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
73 {
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
74 this.parser = parser;
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
75 }
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
76
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
77 /// Parses the module.
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
78 /// Throws:
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
79 /// An Exception if the there's no ModuleDeclaration and
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
80 /// the file name is an invalid or reserved D identifier.
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
81 void parse()
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
82 {
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
83 if (this.parser is null)
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
84 this.parser = new Parser(sourceText, infoMan);
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
85
368
2adf808343d6 - Renamed method start() to init() in Parser.
aziz
parents: 367
diff changeset
86 this.root = parser.start();
719
8f8c9ab3f3ba Fixed code that finds out a modules FQN.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 698
diff changeset
87 this.imports = parser.imports;
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
88
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
89 if (root.children.length)
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
90 { // moduleDecl will be null if first node isn't a ModuleDeclaration.
673
64fec49651cf Renamed VariableDeclaration to VariablesDeclaration.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 649
diff changeset
91 this.moduleDecl = root.children[0].Is!(ModuleDeclaration);
719
8f8c9ab3f3ba Fixed code that finds out a modules FQN.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 698
diff changeset
92 if (this.moduleDecl)
370
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
93 this.setFQN(moduleDecl.getFQN());
719
8f8c9ab3f3ba Fixed code that finds out a modules FQN.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 698
diff changeset
94 }
8f8c9ab3f3ba Fixed code that finds out a modules FQN.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 698
diff changeset
95
8f8c9ab3f3ba Fixed code that finds out a modules FQN.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 698
diff changeset
96 if (!this.moduleFQN.length)
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
97 { // Take base name of file path as module name.
719
8f8c9ab3f3ba Fixed code that finds out a modules FQN.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 698
diff changeset
98 auto str = (new FilePath(filePath)).name();
755
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
99 if (Lexer.isReservedIdentifier(str))
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
100 throw new Exception("'"~str~"' is not a valid module name; it's a reserved or invalid D identifier.");
90668b83ae5e Introduced new module dil.SourceText and class SourceText.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 719
diff changeset
101 this.moduleFQN = this.moduleName = str;
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
102 }
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
103 }
366
dcbd3bf9bf74 - Added command importgraph/igraph to main.d.
aziz
parents: 365
diff changeset
104
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
105 /// Returns the first token of the module's source text.
758
f4b9680c0e16 Revised module dil.SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 755
diff changeset
106 Token* firstToken()
f4b9680c0e16 Revised module dil.SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 755
diff changeset
107 {
f4b9680c0e16 Revised module dil.SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 755
diff changeset
108 return parser.lexer.firstToken();
f4b9680c0e16 Revised module dil.SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 755
diff changeset
109 }
f4b9680c0e16 Revised module dil.SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 755
diff changeset
110
563
c838ed7f2ac9 Added 'override' to some methods.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 560
diff changeset
111 /// Returns true if there are errors in the source file.
515
7cb97346bc6f Using class Module in SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 510
diff changeset
112 bool hasErrors()
7cb97346bc6f Using class Module in SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 510
diff changeset
113 {
619
933cd8d24467 Renamed Parser.lx to Parser.lexer.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 593
diff changeset
114 return parser.errors.length || parser.lexer.errors.length;
515
7cb97346bc6f Using class Module in SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 510
diff changeset
115 }
7cb97346bc6f Using class Module in SettingsLoader.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 510
diff changeset
116
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
117 /// Returns a list of import paths.
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
118 /// E.g.: ["dil/ast/Node", "dil/semantic/Module"]
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
119 string[] getImportPaths()
366
dcbd3bf9bf74 - Added command importgraph/igraph to main.d.
aziz
parents: 365
diff changeset
120 {
dcbd3bf9bf74 - Added command importgraph/igraph to main.d.
aziz
parents: 365
diff changeset
121 string[] result;
dcbd3bf9bf74 - Added command importgraph/igraph to main.d.
aziz
parents: 365
diff changeset
122 foreach (import_; imports)
391
33b566df6af4 Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 370
diff changeset
123 result ~= import_.getModuleFQNs(dirSep);
366
dcbd3bf9bf74 - Added command importgraph/igraph to main.d.
aziz
parents: 365
diff changeset
124 return result;
dcbd3bf9bf74 - Added command importgraph/igraph to main.d.
aziz
parents: 365
diff changeset
125 }
367
dda55fae37de - ImportGraph.execute() can parse all modules depending on the imports of the root module.
aziz
parents: 366
diff changeset
126
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
127 /// Returns the fully qualified name of this module.
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
128 /// E.g.: dil.ast.Node
367
dda55fae37de - ImportGraph.execute() can parse all modules depending on the imports of the root module.
aziz
parents: 366
diff changeset
129 string getFQN()
dda55fae37de - ImportGraph.execute() can parse all modules depending on the imports of the root module.
aziz
parents: 366
diff changeset
130 {
370
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
131 return moduleFQN;
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
132 }
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
133
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
134 /// Set's the module's FQN.
370
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
135 void setFQN(string moduleFQN)
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
136 {
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
137 uint i = moduleFQN.length;
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
138 if (i != 0) // Don't decrement if string has zero length.
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
139 i--;
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
140 // Find last dot.
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
141 for (; i != 0 && moduleFQN[i] != '.'; i--)
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
142 {}
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
143 this.moduleFQN = moduleFQN;
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
144 this.packageName = moduleFQN[0..i];
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
145 this.moduleName = moduleFQN[(i == 0 ? 0 : i+1) .. $];
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
146 }
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
147
798
c24be8d4f6ab Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 777
diff changeset
148 /// Returns the module's FQN with slashes instead of dots.
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
149 /// E.g.: dil/ast/Node
370
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
150 string getFQNPath()
ae4afb66768f - Renamed findModule() to findModulePath().
aziz
parents: 368
diff changeset
151 {
698
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
152 string FQNPath = moduleFQN.dup;
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
153 foreach (i, c; FQNPath)
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
154 if (c == '.')
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
155 FQNPath[i] = dirSep;
1564e41f454e Revised modules cmd.ImportGraph and dil.semantic.Module.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 683
diff changeset
156 return FQNPath;
367
dda55fae37de - ImportGraph.execute() can parse all modules depending on the imports of the root module.
aziz
parents: 366
diff changeset
157 }
364
1059295c2727 - Every command module has an execute method now.
aziz
parents:
diff changeset
158 }