From 9e2c0564783aa91f6440e7cadcc1a4dfda785de0 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 11 Feb 2018 16:53:57 +0300 Subject: Separate parser API from implementation --- src/parser/token_set.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/parser/token_set.rs (limited to 'src/parser/token_set.rs') diff --git a/src/parser/token_set.rs b/src/parser/token_set.rs new file mode 100644 index 000000000..82558fa2e --- /dev/null +++ b/src/parser/token_set.rs @@ -0,0 +1,25 @@ +use SyntaxKind; + +pub(crate) struct TokenSet { + pub tokens: &'static [SyntaxKind], +} + +impl TokenSet { + pub fn contains(&self, kind: SyntaxKind) -> bool { + self.tokens.contains(&kind) + } +} + +#[macro_export] +macro_rules! token_set { + ($($t:ident),*) => { + TokenSet { + tokens: &[$($t),*], + } + }; + + ($($t:ident),* ,) => { + token_set!($($t),*) + }; +} + -- cgit v1.2.3 From f356628ad8392c6e3ffd72a9ac50a7be87d3d183 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 11 Feb 2018 17:58:33 +0300 Subject: Formatting --- src/parser/token_set.rs | 1 - 1 file changed, 1 deletion(-) (limited to 'src/parser/token_set.rs') diff --git a/src/parser/token_set.rs b/src/parser/token_set.rs index 82558fa2e..a800f200d 100644 --- a/src/parser/token_set.rs +++ b/src/parser/token_set.rs @@ -22,4 +22,3 @@ macro_rules! token_set { token_set!($($t),*) }; } - -- cgit v1.2.3