nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib: intro `Float.lerp` for simple linear interpolation
[nit.git]
/
src
/
loader.nit
diff --git
a/src/loader.nit
b/src/loader.nit
index
a046815
..
65e7c67
100644
(file)
--- a/
src/loader.nit
+++ b/
src/loader.nit
@@
-330,8
+330,21
@@
redef class ModelBuilder
# Return the mgroup associated to a directory path.
# If the directory is not a group null is returned.
# Return the mgroup associated to a directory path.
# If the directory is not a group null is returned.
+ #
+ # Note: `paths` is also used to look for mgroups
fun get_mgroup(dirpath: String): nullable MGroup
do
fun get_mgroup(dirpath: String): nullable MGroup
do
+ if not dirpath.file_exists then do
+ for p in paths do
+ var try = p / dirpath
+ if try.file_exists then
+ dirpath = try
+ break label
+ end
+ end
+ return null
+ end label
+
var rdp = module_absolute_path(dirpath)
if mgroups.has_key(rdp) then
return mgroups[rdp]
var rdp = module_absolute_path(dirpath)
if mgroups.has_key(rdp) then
return mgroups[rdp]
@@
-373,7
+386,7
@@
redef class ModelBuilder
if not readme.file_exists then readme = dirpath2.join_path("README")
if readme.file_exists then
var mdoc = new MDoc
if not readme.file_exists then readme = dirpath2.join_path("README")
if readme.file_exists then
var mdoc = new MDoc
- var s = new IFStream.open(readme)
+ var s = new FileReader.open(readme)
while not s.eof do
mdoc.content.add(s.read_line)
end
while not s.eof do
mdoc.content.add(s.read_line)
end
@@
-417,7
+430,7
@@
redef class ModelBuilder
self.toolcontext.info("load module {filename}", 2)
# Load the file
self.toolcontext.info("load module {filename}", 2)
# Load the file
- var file = new IFStream.open(filename)
+ var file = new FileReader.open(filename)
var lexer = new Lexer(new SourceFile(filename, file))
var parser = new Parser(lexer)
var tree = parser.parse
var lexer = new Lexer(new SourceFile(filename, file))
var parser = new Parser(lexer)
var tree = parser.parse
@@
-527,6
+540,12
@@
redef class ModelBuilder
nmodules.add(nmodule)
self.mmodule2nmodule[mmodule] = nmodule
nmodules.add(nmodule)
self.mmodule2nmodule[mmodule] = nmodule
+ var source = nmodule.location.file
+ if source != null then
+ assert source.mmodule == null
+ source.mmodule = mmodule
+ end
+
if decl != null then
# Extract documentation
var ndoc = decl.n_doc
if decl != null then
# Extract documentation
var ndoc = decl.n_doc
@@
-673,6
+692,11
@@
redef class MGroup
end
end
+redef class SourceFile
+ # Associated mmodule, once created
+ var mmodule: nullable MModule = null
+end
+
redef class AStdImport
# The imported module once determined
var mmodule: nullable MModule = null
redef class AStdImport
# The imported module once determined
var mmodule: nullable MModule = null