From a4342a7feeaca642a64ad908432a17b31f081e01 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 30 Jan 2019 23:25:02 +0300 Subject: add conversion boilerplate --- crates/ra_hir/src/macros.rs | 4 ++++ crates/ra_hir/src/macros/mbe.rs | 6 ++++++ crates/ra_hir/src/macros/tt.rs | 14 +++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) (limited to 'crates/ra_hir/src') diff --git a/crates/ra_hir/src/macros.rs b/crates/ra_hir/src/macros.rs index 6190b2c08..647df4260 100644 --- a/crates/ra_hir/src/macros.rs +++ b/crates/ra_hir/src/macros.rs @@ -200,3 +200,7 @@ pub(crate) fn expand_macro_invocation( let (def, input) = MacroDef::from_call(macro_call)?; def.expand(input).map(Arc::new) } + +fn macro_call_to_tt(call: &ast::MacroCall) -> Option { + None +} diff --git a/crates/ra_hir/src/macros/mbe.rs b/crates/ra_hir/src/macros/mbe.rs index 5c1771a15..2d7965b62 100644 --- a/crates/ra_hir/src/macros/mbe.rs +++ b/crates/ra_hir/src/macros/mbe.rs @@ -1,5 +1,7 @@ use ra_syntax::SmolStr; +use crate::macros::tt; + struct MacroRules { rules: Vec, } @@ -48,3 +50,7 @@ struct Ident { struct Var { text: SmolStr, } + +fn parse(tt: tt::TokenTree) -> MacroRules { + MacroRules { rules: Vec::new() } +} diff --git a/crates/ra_hir/src/macros/tt.rs b/crates/ra_hir/src/macros/tt.rs index 7026ce3b3..817cb262e 100644 --- a/crates/ra_hir/src/macros/tt.rs +++ b/crates/ra_hir/src/macros/tt.rs @@ -1,36 +1,36 @@ use ra_syntax::SmolStr; -enum TokenTree { +pub(crate) enum TokenTree { Leaf(Leaf), Subtree(Subtree), } -enum Leaf { +pub(crate) enum Leaf { Literal(Literal), Punct(Punct), Ident(Ident), } -struct Subtree { +pub(crate) struct Subtree { delimiter: Delimiter, token_trees: Vec, } -enum Delimiter { +pub(crate) enum Delimiter { Parenthesis, Brace, Bracket, None, } -struct Literal { +pub(crate) struct Literal { text: SmolStr, } -struct Punct { +pub(crate) struct Punct { char: char, } -struct Ident { +pub(crate) struct Ident { text: SmolStr, } -- cgit v1.2.3