redef fun parse_file(context, file, filename, name, dir)
do
+ var name_is_valid = name.to_s.length > 0 and name.to_s[0].is_lower
+ for char in name.to_s do if not char.is_digit and not char.is_letter and not char == '_'
+ then
+ name_is_valid = false
+ break
+ end
+ if not name_is_valid then
+ context.error( null, "{filename}: Error package name \"{name}\", must start with a lower case letter and contain only letters, digits and '_'." )
+ end
+
var lexer = new Lexer(file, filename)
var parser = new Parser(lexer)
var node_tree = parser.parse
if node_tree.n_base == null then
var err = node_tree.n_eof
- assert err isa PError
+ assert err isa AError
context.fatal_error(err.location, err.message)
end
var node_module = node_tree.n_base
- assert node_module isa AModule
+ assert node_module != null
var module_loc = new Location.with_file(filename)
var module = new MMSrcModule(context, node_module, dir, name, module_loc)
return module