From 57bb618fd3f11d9ac817f76a965316723aa69ee9 Mon Sep 17 00:00:00 2001 From: Sergey Parilin Date: Wed, 8 May 2019 18:35:32 +0300 Subject: Implemented T! macro for syntax kinds --- crates/ra_parser/src/syntax_kind/generated.rs.tera | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'crates/ra_parser/src/syntax_kind/generated.rs.tera') diff --git a/crates/ra_parser/src/syntax_kind/generated.rs.tera b/crates/ra_parser/src/syntax_kind/generated.rs.tera index 5b9ff21af..ccb8ca4ba 100644 --- a/crates/ra_parser/src/syntax_kind/generated.rs.tera +++ b/crates/ra_parser/src/syntax_kind/generated.rs.tera @@ -33,6 +33,20 @@ pub enum SyntaxKind { } use self::SyntaxKind::*; +#[macro_export] +macro_rules! T { +{%- for t in concat(a=single_byte_tokens, b=multi_byte_tokens) %} + {%- if t.0 == '{' or t.0 == '}' or t.0 == '[' or t.0 == ']' %} + ('{{t.0}}') => { $crate::SyntaxKind::{{t.1}} }; + {%- else %} + ({{t.0}}) => { $crate::SyntaxKind::{{t.1}} }; + {%- endif %} +{%- endfor -%} +{% for kw in concat(a=keywords, b=contextual_keywords) %} + ({{kw}}) => { $crate::SyntaxKind::{{kw | upper}}_KW }; +{%- endfor %} +} + impl From for SyntaxKind { fn from(d: u16) -> SyntaxKind { assert!(d <= (__LAST as u16)); -- cgit v1.2.3