diff options
| author | Caleb Cartwright <caleb.cartwright@outlook.com> | 2021-12-28 19:23:51 -0600 |
|---|---|---|
| committer | Caleb Cartwright <calebcartwright@users.noreply.github.com> | 2021-12-28 20:25:17 -0600 |
| commit | f935f0cf89f53a9df3a443b9cc09bb1bcc33064b (patch) | |
| tree | 512e603b1fe4d22c50ac2d080ab366f56a271c55 | |
| parent | 50bbb43dab5af3b42338bd6a9748da9a27136bf2 (diff) | |
| download | rust-f935f0cf89f53a9df3a443b9cc09bb1bcc33064b.tar.gz rust-f935f0cf89f53a9df3a443b9cc09bb1bcc33064b.zip | |
feat: support parsing asm! args
| -rw-r--r-- | src/lib.rs | 1 | ||||
| -rw-r--r-- | src/parse/macros/asm.rs | 11 | ||||
| -rw-r--r-- | src/parse/macros/mod.rs | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs index f59ebad97ce..ad23b16e02e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,6 +15,7 @@ extern crate log; // N.B. these crates are loaded from the sysroot, so they need extern crate. extern crate rustc_ast; extern crate rustc_ast_pretty; +extern crate rustc_builtin_macros; extern crate rustc_data_structures; extern crate rustc_errors; extern crate rustc_expand; diff --git a/src/parse/macros/asm.rs b/src/parse/macros/asm.rs new file mode 100644 index 00000000000..cc9fb5072ce --- /dev/null +++ b/src/parse/macros/asm.rs @@ -0,0 +1,11 @@ +use rustc_ast::ast; +use rustc_builtin_macros::asm::{parse_asm_args, AsmArgs}; + +use crate::rewrite::RewriteContext; + +#[allow(dead_code)] +pub(crate) fn parse_asm(context: &RewriteContext<'_>, mac: &ast::MacCall) -> Option<AsmArgs> { + let ts = mac.args.inner_tokens(); + let mut parser = super::build_parser(context, ts); + parse_asm_args(&mut parser, context.parse_sess.inner(), mac.span(), false).ok() +} diff --git a/src/parse/macros/mod.rs b/src/parse/macros/mod.rs index 7e12f82af15..2e9ce1d35f4 100644 --- a/src/parse/macros/mod.rs +++ b/src/parse/macros/mod.rs @@ -10,6 +10,7 @@ use rustc_span::Symbol; use crate::macros::MacroArg; use crate::rewrite::RewriteContext; +pub(crate) mod asm; pub(crate) mod cfg_if; pub(crate) mod lazy_static; |
