Skip to content

Commit f935f0c

Browse files
feat: support parsing asm! args
1 parent 50bbb43 commit f935f0c

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

Diff for: src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ extern crate log;
1515
// N.B. these crates are loaded from the sysroot, so they need extern crate.
1616
extern crate rustc_ast;
1717
extern crate rustc_ast_pretty;
18+
extern crate rustc_builtin_macros;
1819
extern crate rustc_data_structures;
1920
extern crate rustc_errors;
2021
extern crate rustc_expand;

Diff for: src/parse/macros/asm.rs

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use rustc_ast::ast;
2+
use rustc_builtin_macros::asm::{parse_asm_args, AsmArgs};
3+
4+
use crate::rewrite::RewriteContext;
5+
6+
#[allow(dead_code)]
7+
pub(crate) fn parse_asm(context: &RewriteContext<'_>, mac: &ast::MacCall) -> Option<AsmArgs> {
8+
let ts = mac.args.inner_tokens();
9+
let mut parser = super::build_parser(context, ts);
10+
parse_asm_args(&mut parser, context.parse_sess.inner(), mac.span(), false).ok()
11+
}

Diff for: src/parse/macros/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use rustc_span::Symbol;
1010
use crate::macros::MacroArg;
1111
use crate::rewrite::RewriteContext;
1212

13+
pub(crate) mod asm;
1314
pub(crate) mod cfg_if;
1415
pub(crate) mod lazy_static;
1516

0 commit comments

Comments
 (0)