rust/crates/libsyntax2/src/grammar.ron

328 lines
7.0 KiB
Plaintext
Raw Normal View History

2017-12-28 16:21:54 -06:00
Grammar(
2018-07-30 09:46:50 -05:00
single_byte_tokens: [
[";", "SEMI"],
[",", "COMMA"],
["(", "L_PAREN"],
[")", "R_PAREN"],
["{", "L_CURLY"],
["}", "R_CURLY"],
["[", "L_BRACK"],
["]", "R_BRACK"],
["<", "L_ANGLE"],
[">", "R_ANGLE"],
["@", "AT"],
["#", "POUND"],
["~", "TILDE"],
["?", "QUESTION"],
["$", "DOLLAR"],
2018-08-05 10:18:02 -05:00
["&", "AMP"],
2018-07-30 09:46:50 -05:00
["|", "PIPE"],
["+", "PLUS"],
["*", "STAR"],
["/", "SLASH"],
["^", "CARET"],
["%", "PERCENT"],
],
multi_byte_tokens: [
[".", "DOT"],
["..", "DOTDOT"],
["...", "DOTDOTDOT"],
["..=", "DOTDOTEQ"],
[":", "COLON"],
["::", "COLONCOLON"],
["=", "EQ"],
["==", "EQEQ"],
["=>", "FAT_ARROW"],
["!", "EXCL"],
["!=", "NEQ"],
["-", "MINUS"],
["->", "THIN_ARROW"],
2018-08-05 08:09:25 -05:00
["<=", "LTEQ"],
[">=", "GTEQ"],
["+=", "PLUSEQ"],
["-=", "MINUSEQ"],
2018-08-23 16:48:10 -05:00
["|=", "PIPEEQ"],
["&=", "AMPEQ"],
["^=", "CARETEQ"],
["/=", "SLASHEQ"],
["*=", "STAREQ"],
2018-08-05 10:18:02 -05:00
["&&", "AMPAMP"],
2018-08-05 10:16:52 -05:00
["||", "PIPEPIPE"],
2018-08-07 06:24:03 -05:00
["<<", "SHL"],
[">>", "SHR"],
["<<=", "SHLEQ"],
[">>=", "SHREQ"],
2018-07-30 09:46:50 -05:00
],
2018-01-01 09:58:46 -06:00
keywords: [
"use",
"fn",
"struct",
"enum",
"trait",
"impl",
2018-08-13 09:42:43 -05:00
"dyn",
2018-01-08 12:21:59 -06:00
"true",
"false",
2018-01-08 15:06:42 -06:00
"as",
"extern",
"crate",
2018-01-09 13:35:55 -06:00
"mod",
2018-01-12 13:05:46 -06:00
"pub",
"self",
"super",
2018-01-13 02:55:03 -06:00
"in",
2018-01-13 13:00:26 -06:00
"where",
2018-01-30 13:53:19 -06:00
"for",
"loop",
"while",
2018-08-24 03:21:13 -05:00
"continue",
"break",
2018-01-30 13:53:19 -06:00
"if",
2018-07-31 16:14:26 -05:00
"else",
2018-02-02 14:30:17 -06:00
"match",
"const",
"static",
2018-02-02 14:45:15 -06:00
"mut",
2018-02-03 03:05:25 -06:00
"unsafe",
2018-02-10 03:35:40 -06:00
"type",
"ref",
"let",
2018-07-31 16:30:17 -05:00
"move",
2018-08-01 03:27:31 -05:00
"return",
2018-01-01 09:58:46 -06:00
],
2018-02-04 07:46:26 -06:00
contextual_keywords: [
"auto",
"default",
"union",
],
2017-12-31 14:27:36 -06:00
tokens: [
2017-12-29 15:48:47 -06:00
"ERROR",
2017-12-28 16:21:54 -06:00
"IDENT",
2017-12-29 15:48:47 -06:00
"UNDERSCORE",
2017-12-28 16:21:54 -06:00
"WHITESPACE",
2017-12-30 06:22:40 -06:00
"INT_NUMBER",
"FLOAT_NUMBER",
2017-12-31 01:41:42 -06:00
"LIFETIME",
2017-12-31 05:02:55 -06:00
"CHAR",
"BYTE",
"STRING",
"RAW_STRING",
"BYTE_STRING",
"RAW_BYTE_STRING",
2017-12-31 07:42:22 -06:00
"COMMENT",
"DOC_COMMENT",
"SHEBANG",
2017-12-31 14:27:36 -06:00
],
nodes: [
2018-01-01 09:58:46 -06:00
"FILE",
2018-02-02 13:08:14 -06:00
2018-08-13 10:27:26 -05:00
"STRUCT_DEF",
"ENUM_DEF",
"FN_DEF",
2018-01-08 15:06:42 -06:00
"EXTERN_CRATE_ITEM",
2018-08-11 02:56:40 -05:00
"MODULE",
2018-01-09 14:32:18 -06:00
"USE_ITEM",
2018-08-13 10:27:26 -05:00
"STATIC_DEF",
"CONST_DEF",
"TRAIT_DEF",
2018-02-04 04:39:24 -06:00
"IMPL_ITEM",
2018-08-13 10:27:26 -05:00
"TYPE_DEF",
2018-08-05 06:08:46 -05:00
"MACRO_CALL",
"TOKEN_TREE",
2018-02-02 13:08:14 -06:00
2018-02-10 15:46:17 -06:00
"PAREN_TYPE",
"TUPLE_TYPE",
"NEVER_TYPE",
"PATH_TYPE",
2018-02-11 02:19:54 -06:00
"POINTER_TYPE",
2018-02-11 02:37:08 -06:00
"ARRAY_TYPE",
"SLICE_TYPE",
2018-02-11 02:54:09 -06:00
"REFERENCE_TYPE",
2018-02-11 02:57:05 -06:00
"PLACEHOLDER_TYPE",
2018-02-11 03:51:09 -06:00
"FN_POINTER_TYPE",
2018-02-11 14:32:49 -06:00
"FOR_TYPE",
2018-07-31 14:41:29 -05:00
"IMPL_TRAIT_TYPE",
2018-08-13 09:42:43 -05:00
"DYN_TRAIT_TYPE",
2018-02-10 15:46:17 -06:00
"REF_PAT",
"BIND_PAT",
"PLACEHOLDER_PAT",
2018-08-04 07:47:45 -05:00
"PATH_PAT",
"STRUCT_PAT",
2018-08-07 06:41:03 -05:00
"TUPLE_STRUCT_PAT",
2018-08-04 07:47:45 -05:00
"TUPLE_PAT",
2018-08-07 09:00:45 -05:00
"SLICE_PAT",
2018-08-08 07:05:33 -05:00
"RANGE_PAT",
2018-08-04 08:34:54 -05:00
// atoms
"TUPLE_EXPR",
2018-08-05 10:24:56 -05:00
"ARRAY_EXPR",
2018-08-05 09:19:03 -05:00
"PAREN_EXPR",
2018-07-30 09:02:51 -05:00
"PATH_EXPR",
2018-07-31 15:13:08 -05:00
"LAMBDA_EXPR",
2018-07-31 16:14:26 -05:00
"IF_EXPR",
2018-08-05 10:16:52 -05:00
"LOOP_EXPR",
2018-08-24 03:45:14 -05:00
"FOR_EXPR",
"WHILE_EXPR",
2018-08-24 03:21:13 -05:00
"CONTINUE_EXPR",
"BREAK_EXPR",
2018-08-24 03:45:14 -05:00
"LABEL",
2018-08-01 03:27:31 -05:00
"BLOCK_EXPR",
"RETURN_EXPR",
2018-08-04 05:39:03 -05:00
"MATCH_EXPR",
"MATCH_ARM",
"MATCH_GUARD",
2018-08-04 08:34:54 -05:00
"STRUCT_LIT",
"STRUCT_LIT_FIELD",
// postfix
"CALL_EXPR",
2018-08-05 09:24:44 -05:00
"INDEX_EXPR",
2018-08-04 08:34:54 -05:00
"METHOD_CALL_EXPR",
"FIELD_EXPR",
"TRY_EXPR",
2018-08-06 19:55:16 -05:00
"CAST_EXPR",
2018-08-04 08:34:54 -05:00
// unary
"REF_EXPR",
2018-08-07 06:52:03 -05:00
"PREFIX_EXPR",
2018-08-04 08:34:54 -05:00
2018-08-05 10:07:06 -05:00
"RANGE_EXPR", // just weird
2018-08-04 08:34:54 -05:00
"BIN_EXPR",
2018-08-01 02:51:42 -05:00
"EXTERN_BLOCK_EXPR",
2018-02-02 13:08:14 -06:00
"ENUM_VARIANT",
"NAMED_FIELD",
"POS_FIELD",
"ATTR",
"META_ITEM", // not an item actually
2018-01-13 04:42:19 -06:00
"USE_TREE",
2018-01-09 14:32:18 -06:00
"PATH",
"PATH_SEGMENT",
2018-01-08 12:40:00 -06:00
"LITERAL",
2018-01-08 15:06:42 -06:00
"ALIAS",
2018-01-12 13:05:46 -06:00
"VISIBILITY",
2018-02-10 03:53:07 -06:00
"WHERE_CLAUSE",
2018-08-08 11:26:38 -05:00
"WHERE_PRED",
2018-02-02 13:08:14 -06:00
"ABI",
2018-02-10 05:00:23 -06:00
"NAME",
"NAME_REF",
2018-07-31 04:59:52 -05:00
"LET_STMT",
2018-07-31 04:59:52 -05:00
"EXPR_STMT",
2018-07-30 09:02:51 -05:00
"TYPE_PARAM_LIST",
2018-07-31 11:37:40 -05:00
"LIFETIME_PARAM",
"TYPE_PARAM",
2018-07-30 09:02:51 -05:00
"TYPE_ARG_LIST",
2018-07-31 11:37:40 -05:00
"LIFETIME_ARG",
"TYPE_ARG",
"ASSOC_TYPE_ARG",
2018-07-31 04:32:53 -05:00
"PARAM_LIST",
2018-07-31 15:13:55 -05:00
"PARAM",
2018-07-31 10:03:50 -05:00
"SELF_PARAM",
2018-07-31 04:32:53 -05:00
"ARG_LIST",
2018-08-09 09:43:39 -05:00
],
2018-08-11 02:11:58 -05:00
ast: {
"File": (
2018-08-11 01:38:27 -05:00
collections: [
2018-08-21 10:30:10 -05:00
["functions", "FnDef"],
["modules", "Module"],
2018-08-11 01:38:27 -05:00
]
2018-08-09 09:43:39 -05:00
),
2018-08-22 08:46:42 -05:00
"FnDef": ( traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner",
] ),
2018-08-14 06:45:56 -05:00
"StructDef": (
2018-08-22 08:46:42 -05:00
traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner",
],
2018-08-14 06:45:56 -05:00
collections: [
["fields", "NamedField"]
]
),
2018-08-16 04:51:40 -05:00
"NamedField": ( traits: ["NameOwner", "AttrsOwner"] ),
2018-08-22 08:46:42 -05:00
"EnumDef": ( traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner",
] ),
2018-08-16 04:51:40 -05:00
"TraitDef": ( traits: ["NameOwner", "AttrsOwner"] ),
2018-08-21 10:30:10 -05:00
"Module": (
traits: ["NameOwner", "AttrsOwner"],
collections: [
["modules", "Module"]
]
),
2018-08-22 08:46:42 -05:00
"ConstDef": ( traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner",
] ),
"StaticDef": ( traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner",
] ),
"TypeDef": ( traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner",
] ),
2018-08-14 03:20:09 -05:00
"ImplItem": (),
2018-08-14 06:45:56 -05:00
2018-08-14 04:38:20 -05:00
"ParenType": (),
"TupleType": (),
"NeverType": (),
"PathType": (),
"PointerType": (),
"ArrayType": (),
"SliceType": (),
"ReferenceType": (),
"PlaceholderType": (),
"FnPointerType": (),
"ForType": (),
"ImplTraitType": (),
"DynTraitType": (),
"TypeRef": ( enum: [
"ParenType",
"TupleType",
"NeverType",
"PathType",
"PointerType",
"ArrayType",
"SliceType",
"ReferenceType",
"PlaceholderType",
"FnPointerType",
"ForType",
"ImplTraitType",
"DynTraitType",
2018-08-14 05:33:44 -05:00
]),
2018-08-16 05:11:20 -05:00
"NominalDef": (
enum: ["StructDef", "EnumDef"],
2018-08-22 10:05:43 -05:00
traits: [
"NameOwner",
"TypeParamsOwner",
"AttrsOwner"
],
2018-08-16 05:11:20 -05:00
),
2018-08-22 08:46:42 -05:00
"Name": (),
"NameRef": (),
"Attr": ( options: [ ["value", "TokenTree"] ] ),
"TokenTree": (),
2018-08-22 11:02:37 -05:00
"TypeParamList": ( collections: [ ["type_params", "TypeParam" ] ]),
"TypeParam": ( traits: ["NameOwner"]),
2018-08-22 08:46:42 -05:00
"WhereClause": (),
2018-08-11 02:11:58 -05:00
},
2018-01-28 09:53:53 -06:00
)