diff options
Diffstat (limited to 'crates/libsyntax2/src/grammar.ron')
-rw-r--r-- | crates/libsyntax2/src/grammar.ron | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/crates/libsyntax2/src/grammar.ron b/crates/libsyntax2/src/grammar.ron new file mode 100644 index 000000000..bcc79843a --- /dev/null +++ b/crates/libsyntax2/src/grammar.ron | |||
@@ -0,0 +1,227 @@ | |||
1 | Grammar( | ||
2 | single_byte_tokens: [ | ||
3 | [";", "SEMI"], | ||
4 | [",", "COMMA"], | ||
5 | ["(", "L_PAREN"], | ||
6 | [")", "R_PAREN"], | ||
7 | ["{", "L_CURLY"], | ||
8 | ["}", "R_CURLY"], | ||
9 | ["[", "L_BRACK"], | ||
10 | ["]", "R_BRACK"], | ||
11 | ["<", "L_ANGLE"], | ||
12 | [">", "R_ANGLE"], | ||
13 | ["@", "AT"], | ||
14 | ["#", "POUND"], | ||
15 | ["~", "TILDE"], | ||
16 | ["?", "QUESTION"], | ||
17 | ["$", "DOLLAR"], | ||
18 | ["&", "AMP"], | ||
19 | ["|", "PIPE"], | ||
20 | ["+", "PLUS"], | ||
21 | ["*", "STAR"], | ||
22 | ["/", "SLASH"], | ||
23 | ["^", "CARET"], | ||
24 | ["%", "PERCENT"], | ||
25 | ], | ||
26 | multi_byte_tokens: [ | ||
27 | [".", "DOT"], | ||
28 | ["..", "DOTDOT"], | ||
29 | ["...", "DOTDOTDOT"], | ||
30 | ["..=", "DOTDOTEQ"], | ||
31 | [":", "COLON"], | ||
32 | ["::", "COLONCOLON"], | ||
33 | ["=", "EQ"], | ||
34 | ["==", "EQEQ"], | ||
35 | ["=>", "FAT_ARROW"], | ||
36 | ["!", "EXCL"], | ||
37 | ["!=", "NEQ"], | ||
38 | ["-", "MINUS"], | ||
39 | ["->", "THIN_ARROW"], | ||
40 | ["<=", "LTEQ"], | ||
41 | [">=", "GTEQ"], | ||
42 | ["+=", "PLUSEQ"], | ||
43 | ["-=", "MINUSEQ"], | ||
44 | ["&&", "AMPAMP"], | ||
45 | ["||", "PIPEPIPE"], | ||
46 | ["<<", "SHL"], | ||
47 | [">>", "SHR"], | ||
48 | ["<<=", "SHLEQ"], | ||
49 | [">>=", "SHREQ"], | ||
50 | ], | ||
51 | keywords: [ | ||
52 | "use", | ||
53 | "fn", | ||
54 | "struct", | ||
55 | "enum", | ||
56 | "trait", | ||
57 | "impl", | ||
58 | "true", | ||
59 | "false", | ||
60 | "as", | ||
61 | "extern", | ||
62 | "crate", | ||
63 | "mod", | ||
64 | "pub", | ||
65 | "self", | ||
66 | "super", | ||
67 | "in", | ||
68 | "where", | ||
69 | "for", | ||
70 | "loop", | ||
71 | "while", | ||
72 | "if", | ||
73 | "else", | ||
74 | "match", | ||
75 | "const", | ||
76 | "static", | ||
77 | "mut", | ||
78 | "unsafe", | ||
79 | "type", | ||
80 | "ref", | ||
81 | "let", | ||
82 | "move", | ||
83 | "return", | ||
84 | ], | ||
85 | contextual_keywords: [ | ||
86 | "auto", | ||
87 | "default", | ||
88 | "union", | ||
89 | ], | ||
90 | tokens: [ | ||
91 | "ERROR", | ||
92 | "IDENT", | ||
93 | "UNDERSCORE", | ||
94 | "WHITESPACE", | ||
95 | "INT_NUMBER", | ||
96 | "FLOAT_NUMBER", | ||
97 | "LIFETIME", | ||
98 | "CHAR", | ||
99 | "BYTE", | ||
100 | "STRING", | ||
101 | "RAW_STRING", | ||
102 | "BYTE_STRING", | ||
103 | "RAW_BYTE_STRING", | ||
104 | "COMMENT", | ||
105 | "DOC_COMMENT", | ||
106 | "SHEBANG", | ||
107 | ], | ||
108 | nodes: [ | ||
109 | "FILE", | ||
110 | |||
111 | "STRUCT_ITEM", | ||
112 | "ENUM_ITEM", | ||
113 | "FUNCTION", | ||
114 | "EXTERN_CRATE_ITEM", | ||
115 | "MOD_ITEM", | ||
116 | "USE_ITEM", | ||
117 | "STATIC_ITEM", | ||
118 | "CONST_ITEM", | ||
119 | "TRAIT_ITEM", | ||
120 | "IMPL_ITEM", | ||
121 | "TYPE_ITEM", | ||
122 | "MACRO_CALL", | ||
123 | "TOKEN_TREE", | ||
124 | |||
125 | "PAREN_TYPE", | ||
126 | "TUPLE_TYPE", | ||
127 | "NEVER_TYPE", | ||
128 | "PATH_TYPE", | ||
129 | "POINTER_TYPE", | ||
130 | "ARRAY_TYPE", | ||
131 | "SLICE_TYPE", | ||
132 | "REFERENCE_TYPE", | ||
133 | "PLACEHOLDER_TYPE", | ||
134 | "FN_POINTER_TYPE", | ||
135 | "FOR_TYPE", | ||
136 | "IMPL_TRAIT_TYPE", | ||
137 | |||
138 | "REF_PAT", | ||
139 | "BIND_PAT", | ||
140 | "PLACEHOLDER_PAT", | ||
141 | "PATH_PAT", | ||
142 | "STRUCT_PAT", | ||
143 | "TUPLE_STRUCT_PAT", | ||
144 | "TUPLE_PAT", | ||
145 | "SLICE_PAT", | ||
146 | "RANGE_PAT", | ||
147 | |||
148 | // atoms | ||
149 | "TUPLE_EXPR", | ||
150 | "ARRAY_EXPR", | ||
151 | "PAREN_EXPR", | ||
152 | "PATH_EXPR", | ||
153 | "LAMBDA_EXPR", | ||
154 | "IF_EXPR", | ||
155 | "WHILE_EXPR", | ||
156 | "LOOP_EXPR", | ||
157 | "FOR_EXPR", | ||
158 | "BLOCK_EXPR", | ||
159 | "RETURN_EXPR", | ||
160 | "MATCH_EXPR", | ||
161 | "MATCH_ARM", | ||
162 | "MATCH_GUARD", | ||
163 | "STRUCT_LIT", | ||
164 | "STRUCT_LIT_FIELD", | ||
165 | |||
166 | // postfix | ||
167 | "CALL_EXPR", | ||
168 | "INDEX_EXPR", | ||
169 | "METHOD_CALL_EXPR", | ||
170 | "FIELD_EXPR", | ||
171 | "TRY_EXPR", | ||
172 | "CAST_EXPR", | ||
173 | |||
174 | // unary | ||
175 | "REF_EXPR", | ||
176 | "PREFIX_EXPR", | ||
177 | |||
178 | "RANGE_EXPR", // just weird | ||
179 | "BIN_EXPR", | ||
180 | |||
181 | |||
182 | "EXTERN_BLOCK_EXPR", | ||
183 | "ENUM_VARIANT", | ||
184 | "NAMED_FIELD", | ||
185 | "POS_FIELD", | ||
186 | "ATTR", | ||
187 | "META_ITEM", // not an item actually | ||
188 | "USE_TREE", | ||
189 | "PATH", | ||
190 | "PATH_SEGMENT", | ||
191 | "LITERAL", | ||
192 | "ALIAS", | ||
193 | "VISIBILITY", | ||
194 | "WHERE_CLAUSE", | ||
195 | "WHERE_PRED", | ||
196 | "ABI", | ||
197 | "NAME", | ||
198 | "NAME_REF", | ||
199 | |||
200 | "LET_STMT", | ||
201 | "EXPR_STMT", | ||
202 | |||
203 | "TYPE_PARAM_LIST", | ||
204 | "LIFETIME_PARAM", | ||
205 | "TYPE_PARAM", | ||
206 | "TYPE_ARG_LIST", | ||
207 | "LIFETIME_ARG", | ||
208 | "TYPE_ARG", | ||
209 | "ASSOC_TYPE_ARG", | ||
210 | |||
211 | "PARAM_LIST", | ||
212 | "PARAM", | ||
213 | "SELF_PARAM", | ||
214 | "ARG_LIST", | ||
215 | ], | ||
216 | ast: [ | ||
217 | ( | ||
218 | kind: "FILE" | ||
219 | ), | ||
220 | ( | ||
221 | kind: "FUNCTION" | ||
222 | ), | ||
223 | ( | ||
224 | kind: "NAME" | ||
225 | ), | ||
226 | ] | ||
227 | ) | ||