From 66880a641295734c437feb4eb32fb60bf5cd9af5 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Wed, 25 Mar 2015 21:37:29 +0800 Subject: Macros updated with concat!, stringify!, and $crate --- src/parse/root.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/parse/root.cpp') diff --git a/src/parse/root.cpp b/src/parse/root.cpp index 759c65ac..39776689 100644 --- a/src/parse/root.cpp +++ b/src/parse/root.cpp @@ -825,6 +825,18 @@ void Parse_Use(TokenStream& lex, ::std::function Token tok; AST::Path path = AST::Path( AST::Path::TagAbsolute() ); + // Leading :: is allowed and ignored for the $crate feature + if( LOOK_AHEAD(lex) == TOK_DOUBLE_COLON ) { + GET_TOK(tok, lex); + // HACK! mrustc emits $crate as `::"crate-name"` + if( LOOK_AHEAD(lex) == TOK_STRING ) + { + GET_CHECK_TOK(tok, lex, TOK_STRING); + path.set_crate(tok.str()); + GET_CHECK_TOK(tok, lex, TOK_DOUBLE_COLON); + } + } + switch( GET_TOK(tok, lex) ) { case TOK_RWORD_SELF: -- cgit v1.2.3