mical_cli_syntax/
syntax_kind.rs1#![cfg_attr(rustfmt, rustfmt::skip)]
3
4#[allow(bad_style)]
5#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
6#[repr(u8)]
7pub enum SyntaxKind {
8 BACKSLASH,
9 CLOSE_BRACE,
10 DOUBLE_QUOTE,
11 FALSE,
12 GT,
13 MINUS,
14 NEWLINE,
15 NUMERAL,
16 OPEN_BRACE,
17 PIPE,
18 PLUS,
19 SHARP,
20 SHEBANG,
21 SINGLE_QUOTE,
22 SPACE,
23 STRING,
24 TAB,
25 TRUE,
26 WORD,
27 BLOCK_STRING,
28 BLOCK_STRING_HEADER,
29 BOOLEAN,
30 COMMENT,
31 DIRECTIVE,
32 ENTRY,
33 ERROR,
34 INTEGER,
35 LINE_STRING,
36 PREFIX_BLOCK,
37 QUOTED_KEY,
38 QUOTED_STRING,
39 SOURCE_FILE,
40 WORD_KEY,
41}
42
43impl SyntaxKind {
44 pub const COUNT: usize = 33usize;
45}
46impl From<SyntaxKind> for ::rowan::SyntaxKind {
47 fn from(kind: SyntaxKind) -> Self {
48 Self(kind as u16)
49 }
50}
51impl From<::rowan::SyntaxKind> for SyntaxKind {
52 fn from(kind: ::rowan::SyntaxKind) -> Self {
53 assert!(kind.0 < (33usize as u16), "bad SyntaxKind: {:?}", kind);
54 unsafe { ::core::mem::transmute(kind.0 as u8) }
55 }
56}
57
58#[macro_export]
59#[doc(hidden)]
60macro_rules! __token_kind_fast_accsess {
61 ('\t') => {
62 $crate::SyntaxKind::TAB
63 };
64 ('\n') => {
65 $crate::SyntaxKind::NEWLINE
66 };
67 (' ') => {
68 $crate::SyntaxKind::SPACE
69 };
70 ('\\') => {
71 $crate::SyntaxKind::BACKSLASH
72 };
73 (shebang) => {
74 $crate::SyntaxKind::SHEBANG
75 };
76 ('{') => {
77 $crate::SyntaxKind::OPEN_BRACE
78 };
79 ('}') => {
80 $crate::SyntaxKind::CLOSE_BRACE
81 };
82 (#) => {
83 $crate::SyntaxKind::SHARP
84 };
85 (word) => {
86 $crate::SyntaxKind::WORD
87 };
88 ('"') => {
89 $crate::SyntaxKind::DOUBLE_QUOTE
90 };
91 ('\'') => {
92 $crate::SyntaxKind::SINGLE_QUOTE
93 };
94 (string) => {
95 $crate::SyntaxKind::STRING
96 };
97 (+) => {
98 $crate::SyntaxKind::PLUS
99 };
100 (-) => {
101 $crate::SyntaxKind::MINUS
102 };
103 (numeral) => {
104 $crate::SyntaxKind::NUMERAL
105 };
106 (true) => {
107 $crate::SyntaxKind::TRUE
108 };
109 (false) => {
110 $crate::SyntaxKind::FALSE
111 };
112 (|) => {
113 $crate::SyntaxKind::PIPE
114 };
115 (>) => {
116 $crate::SyntaxKind::GT
117 };
118}
119pub use __token_kind_fast_accsess as T;