aboutsummaryrefslogtreecommitdiff
path: root/grammar.ron
blob: d5ad595534febc5a2b9f40e4d40bdc752a5049cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
Grammar(
    keywords: [
        "use",
        "fn",
        "struct",
        "enum",
        "trait",
        "impl",
        "true",
        "false",
        "as",
        "extern",
        "crate",
        "mod",
        "pub",
        "self",
        "super",
        "in",
        "where",
        "for",
        "loop",
        "while",
        "if",
        "match",
        "const",
        "static",
        "mut",
        "unsafe",
        "type",
    ],
    contextual_keywords: [
        "auto",
        "default",
        "union",
    ],
    tokens: [
        "ERROR",
        "IDENT",
        "UNDERSCORE",
        "WHITESPACE",
        "INT_NUMBER",
        "FLOAT_NUMBER",
        "SEMI",
        "COMMA",
        "DOT",
        "DOTDOT",
        "DOTDOTDOT",
        "DOTDOTEQ",
        "L_PAREN",
        "R_PAREN",
        "L_CURLY",
        "R_CURLY",
        "L_BRACK",
        "R_BRACK",
        "L_ANGLE",
        "R_ANGLE",
        "AT",
        "POUND",
        "TILDE",
        "QUESTION",
        "COLON",
        "COLONCOLON",
        "DOLLAR",
        "EQ",
        "EQEQ",
        "FAT_ARROW",
        "NEQ",
        "EXCL",
        "LIFETIME",
        "CHAR",
        "BYTE",
        "STRING",
        "RAW_STRING",
        "BYTE_STRING",
        "RAW_BYTE_STRING",
        "PLUS",
        "MINUS",
        "STAR",
        "SLASH",
        "CARET",
        "PERCENT",
        "AMPERSAND",
        "PIPE",
        "THIN_ARROW",
        "COMMENT",
        "DOC_COMMENT",
        "SHEBANG",
    ],
    nodes: [
        "FILE",

        "STRUCT_ITEM",
        "ENUM_ITEM",
        "FN_ITEM",
        "EXTERN_CRATE_ITEM",
        "MOD_ITEM",
        "USE_ITEM",
        "STATIC_ITEM",
        "CONST_ITEM",
        "TRAIT_ITEM",
        "IMPL_ITEM",
        "TYPE_ITEM",

        "PAREN_TYPE",
        "TUPLE_TYPE",
        "NEVER_TYPE",
        "PATH_TYPE",
        "POINTER_TYPE",
        "ARRAY_TYPE",
        "SLICE_TYPE",
        "REFERENCE_TYPE",
        "PLACEHOLDER_TYPE",
        "FN_POINTER_TYPE",

        "EXTERN_BLOCK",
        "ENUM_VARIANT",
        "NAMED_FIELD",
        "POS_FIELD",
        "ATTR",
        "META_ITEM", // not an item actually
        "USE_TREE",
        "PATH",
        "PATH_SEGMENT",
        "LITERAL",
        "ALIAS",
        "VISIBILITY",
        "TYPE_PARAM_LIST",
        "WHERE_CLAUSE",
        "LIFETIME_PARAM",
        "TYPE_PARAM",
        "ABI",
        "NAME",
        "NAME_REF",
    ]
)