Encode meta tags in the crate and start sketching enhanced logic for resolving crate "use" directives.
This commit is contained in:
parent
c9c1d860f1
commit
ab3635eebe
6 changed files with 148 additions and 37 deletions
|
|
@ -1992,20 +1992,26 @@ fn parse_native_mod_items(&parser p, &str native_name,
|
|||
items=items);
|
||||
}
|
||||
|
||||
fn default_native_name(session::session sess, str id) -> str {
|
||||
fn default_native_lib_naming(session::session sess)
|
||||
-> rec(str prefix, str suffix) {
|
||||
alt (sess.get_targ_cfg().os) {
|
||||
case (session::os_win32) {
|
||||
ret id + ".dll";
|
||||
ret rec(prefix="", suffix=".dll");
|
||||
}
|
||||
case (session::os_macos) {
|
||||
ret "lib" + id + ".dylib";
|
||||
ret rec(prefix="lib", suffix=".dylib");
|
||||
}
|
||||
case (session::os_linux) {
|
||||
ret "lib" + id + ".so";
|
||||
ret rec(prefix="lib", suffix=".so");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn default_native_name(session::session sess, str id) -> str {
|
||||
auto n = default_native_lib_naming(sess);
|
||||
ret n.prefix + id + n.suffix;
|
||||
}
|
||||
|
||||
fn parse_item_native_mod(&parser p) -> @ast::item {
|
||||
auto lo = p.get_last_lo_pos();
|
||||
auto abi = ast::native_abi_cdecl;
|
||||
|
|
@ -2194,7 +2200,7 @@ fn parse_meta_item(&parser p) -> @ast::meta_item {
|
|||
case (token::LIT_STR(?s)) {
|
||||
auto hi = p.get_hi_pos();
|
||||
p.bump();
|
||||
ret @spanned(lo, hi, rec(name = ident,
|
||||
ret @spanned(lo, hi, rec(key = ident,
|
||||
value = p.get_str(s)));
|
||||
}
|
||||
case (_) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue