Skip to main content

rnix/
macros.rs

1#[macro_export]
2#[rustfmt::skip]
3macro_rules! T {
4    (assert)   => ($crate::SyntaxKind::TOKEN_ASSERT);
5    (else)     => ($crate::SyntaxKind::TOKEN_ELSE);
6    (if)       => ($crate::SyntaxKind::TOKEN_IF);
7    (in)       => ($crate::SyntaxKind::TOKEN_IN);
8    (inherit)  => ($crate::SyntaxKind::TOKEN_INHERIT);
9    (let)      => ($crate::SyntaxKind::TOKEN_LET);
10    (or)       => ($crate::SyntaxKind::TOKEN_OR);
11    (rec)      => ($crate::SyntaxKind::TOKEN_REC);
12    (then)     => ($crate::SyntaxKind::TOKEN_THEN);
13    (with)     => ($crate::SyntaxKind::TOKEN_WITH);
14    (__curPos) => ($crate::SyntaxKind::TOKEN_CUR_POS);
15
16    ('{')     => ($crate::SyntaxKind::TOKEN_L_BRACE);
17    ('}')     => ($crate::SyntaxKind::TOKEN_R_BRACE);
18    ('[')     => ($crate::SyntaxKind::TOKEN_L_BRACK);
19    (']')     => ($crate::SyntaxKind::TOKEN_R_BRACK);
20    ('(')     => ($crate::SyntaxKind::TOKEN_L_PAREN);
21    (')')     => ($crate::SyntaxKind::TOKEN_R_PAREN);
22
23    (=)       => ($crate::SyntaxKind::TOKEN_ASSIGN);
24    (@)       => ($crate::SyntaxKind::TOKEN_AT);
25    (:)       => ($crate::SyntaxKind::TOKEN_COLON);
26    (,)       => ($crate::SyntaxKind::TOKEN_COMMA);
27    (.)       => ($crate::SyntaxKind::TOKEN_DOT);
28    (...)     => ($crate::SyntaxKind::TOKEN_ELLIPSIS);
29    (?)       => ($crate::SyntaxKind::TOKEN_QUESTION);
30    (;)       => ($crate::SyntaxKind::TOKEN_SEMICOLON);
31    (++)      => ($crate::SyntaxKind::TOKEN_CONCAT);
32    (!)       => ($crate::SyntaxKind::TOKEN_INVERT);
33    ("//")    => ($crate::SyntaxKind::TOKEN_UPDATE);
34
35    (+)       => ($crate::SyntaxKind::TOKEN_ADD);
36    (-)       => ($crate::SyntaxKind::TOKEN_SUB);
37    (*)       => ($crate::SyntaxKind::TOKEN_MUL);
38    (/)       => ($crate::SyntaxKind::TOKEN_DIV);
39
40    (&&)      => ($crate::SyntaxKind::TOKEN_AND_AND);
41    (==)      => ($crate::SyntaxKind::TOKEN_EQUAL);
42    (->)      => ($crate::SyntaxKind::TOKEN_IMPLICATION);
43    (<)       => ($crate::SyntaxKind::TOKEN_LESS);
44    (<=)      => ($crate::SyntaxKind::TOKEN_LESS_OR_EQ);
45    (>)       => ($crate::SyntaxKind::TOKEN_MORE);
46    (>=)      => ($crate::SyntaxKind::TOKEN_MORE_OR_EQ);
47    (!=)      => ($crate::SyntaxKind::TOKEN_NOT_EQUAL);
48    (||)      => ($crate::SyntaxKind::TOKEN_OR_OR);
49    ("|>")      => ($crate::SyntaxKind::TOKEN_PIPE_RIGHT);
50    ("<|")      => ($crate::SyntaxKind::TOKEN_PIPE_LEFT);
51    ($kind:ident) => ($crate::SyntaxKind::$kind);
52}