From 548f562ddad3bca515b304f82e110aeb319591e3 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 10 Apr 2020 10:29:59 +0200 Subject: Other delimiters --- crates/ra_syntax/src/ast/generated/nodes.rs | 64 ++++++++++++++--------------- xtask/src/ast_src.rs | 36 ++++++++-------- xtask/src/codegen/gen_syntax.rs | 4 ++ 3 files changed, 54 insertions(+), 50 deletions(-) diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 3c917257c..0ae5db9fc 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs @@ -187,9 +187,9 @@ impl AstNode for TupleFieldDefList { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl TupleFieldDefList { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn fields(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct TupleFieldDef { @@ -483,9 +483,9 @@ impl AstNode for ParenType { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl ParenType { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn type_ref(&self) -> Option { support::child(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct TupleType { @@ -503,9 +503,9 @@ impl AstNode for TupleType { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl TupleType { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn fields(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct NeverType { @@ -580,11 +580,11 @@ impl AstNode for ArrayType { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl ArrayType { - pub fn l_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_brack_token(&self) -> Option { support::token2(&self.syntax, T!['[']) } pub fn type_ref(&self) -> Option { support::child(&self.syntax) } pub fn semicolon_token(&self) -> Option { support::token2(&self.syntax, T![;]) } pub fn expr(&self) -> Option { support::child(&self.syntax) } - pub fn r_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_brack_token(&self) -> Option { support::token2(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct SliceType { @@ -602,9 +602,9 @@ impl AstNode for SliceType { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl SliceType { - pub fn l_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_brack_token(&self) -> Option { support::token2(&self.syntax, T!['[']) } pub fn type_ref(&self) -> Option { support::child(&self.syntax) } - pub fn r_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_brack_token(&self) -> Option { support::token2(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ReferenceType { @@ -742,9 +742,9 @@ impl AstNode for TupleExpr { } impl ast::AttrsOwner for TupleExpr {} impl TupleExpr { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn exprs(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ArrayExpr { @@ -763,10 +763,10 @@ impl AstNode for ArrayExpr { } impl ast::AttrsOwner for ArrayExpr {} impl ArrayExpr { - pub fn l_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_brack_token(&self) -> Option { support::token2(&self.syntax, T!['[']) } pub fn exprs(&self) -> AstChildren { support::children(&self.syntax) } pub fn semicolon_token(&self) -> Option { support::token2(&self.syntax, T![;]) } - pub fn r_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_brack_token(&self) -> Option { support::token2(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ParenExpr { @@ -785,9 +785,9 @@ impl AstNode for ParenExpr { } impl ast::AttrsOwner for ParenExpr {} impl ParenExpr { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn expr(&self) -> Option { support::child(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct PathExpr { @@ -1095,8 +1095,8 @@ impl AstNode for IndexExpr { } impl ast::AttrsOwner for IndexExpr {} impl IndexExpr { - pub fn l_brack_token(&self) -> Option { support::token(&self.syntax) } - pub fn r_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_brack_token(&self) -> Option { support::token2(&self.syntax, T!['[']) } + pub fn r_brack_token(&self) -> Option { support::token2(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct FieldExpr { @@ -1478,9 +1478,9 @@ impl AstNode for ParenPat { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl ParenPat { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn pat(&self) -> Option { support::child(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct RefPat { @@ -1614,9 +1614,9 @@ impl AstNode for SlicePat { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl SlicePat { - pub fn l_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_brack_token(&self) -> Option { support::token2(&self.syntax, T!['[']) } pub fn args(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_brack_token(&self) -> Option { support::token2(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct RangePat { @@ -1756,9 +1756,9 @@ impl AstNode for TupleStructPat { } impl TupleStructPat { pub fn path(&self) -> Option { support::child(&self.syntax) } - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn args(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct TuplePat { @@ -1776,9 +1776,9 @@ impl AstNode for TuplePat { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl TuplePat { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn args(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Visibility { @@ -1879,11 +1879,11 @@ impl AstNode for Attr { impl Attr { pub fn pound_token(&self) -> Option { support::token(&self.syntax) } pub fn excl_token(&self) -> Option { support::token(&self.syntax) } - pub fn l_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_brack_token(&self) -> Option { support::token2(&self.syntax, T!['[']) } pub fn path(&self) -> Option { support::child(&self.syntax) } pub fn eq_token(&self) -> Option { support::token(&self.syntax) } pub fn input(&self) -> Option { support::child(&self.syntax) } - pub fn r_brack_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_brack_token(&self) -> Option { support::token2(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct TokenTree { @@ -2186,10 +2186,10 @@ impl AstNode for ParamList { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl ParamList { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn self_param(&self) -> Option { support::child(&self.syntax) } pub fn params(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct SelfParam { @@ -2354,9 +2354,9 @@ impl AstNode for ArgList { fn syntax(&self) -> &SyntaxNode { &self.syntax } } impl ArgList { - pub fn l_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn l_paren_token(&self) -> Option { support::token2(&self.syntax, T!['(']) } pub fn args(&self) -> AstChildren { support::children(&self.syntax) } - pub fn r_paren_token(&self) -> Option { support::token(&self.syntax) } + pub fn r_paren_token(&self) -> Option { support::token2(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Path { diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs index 1483dc08e..943c91e23 100644 --- a/xtask/src/ast_src.rs +++ b/xtask/src/ast_src.rs @@ -338,7 +338,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { struct RecordFieldDefList { T!['{'], fields: [RecordFieldDef], T!['}'] } struct RecordFieldDef: VisibilityOwner, NameOwner, AttrsOwner, DocCommentsOwner, TypeAscriptionOwner { } - struct TupleFieldDefList { LParen, fields: [TupleFieldDef], RParen } + struct TupleFieldDefList { T!['('], fields: [TupleFieldDef], T![')'] } struct TupleFieldDef: VisibilityOwner, AttrsOwner { TypeRef, } @@ -411,13 +411,13 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { ItemList, } - struct ParenType { LParen, TypeRef, RParen } - struct TupleType { LParen, fields: [TypeRef], RParen } + struct ParenType { T!['('], TypeRef, T![')'] } + struct TupleType { T!['('], fields: [TypeRef], T![')'] } struct NeverType { Excl } struct PathType { Path } struct PointerType { Star, T![const], T![mut], TypeRef } - struct ArrayType { LBrack, TypeRef, T![;], Expr, RBrack } - struct SliceType { LBrack, TypeRef, RBrack } + struct ArrayType { T!['['], TypeRef, T![;], Expr, T![']'] } + struct SliceType { T!['['], TypeRef, T![']'] } struct ReferenceType { Amp, Lifetime, T![mut], TypeRef } struct PlaceholderType { Underscore } struct FnPointerType { Abi, T![unsafe], T![fn], ParamList, RetType } @@ -425,9 +425,9 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { struct ImplTraitType: TypeBoundsOwner { T![impl] } struct DynTraitType: TypeBoundsOwner { T![dyn] } - struct TupleExpr: AttrsOwner { LParen, exprs: [Expr], RParen } - struct ArrayExpr: AttrsOwner { LBrack, exprs: [Expr], T![;], RBrack } - struct ParenExpr: AttrsOwner { LParen, Expr, RParen } + struct TupleExpr: AttrsOwner { T!['('], exprs: [Expr], T![')'] } + struct ArrayExpr: AttrsOwner { T!['['], exprs: [Expr], T![;], T![']'] } + struct ParenExpr: AttrsOwner { T!['('], Expr, T![')'] } struct PathExpr { Path } struct LambdaExpr: AttrsOwner { T![static], @@ -456,7 +456,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { struct MethodCallExpr: AttrsOwner, ArgListOwner { Expr, Dot, NameRef, TypeArgList, } - struct IndexExpr: AttrsOwner { LBrack, RBrack } + struct IndexExpr: AttrsOwner { T!['['], T![']'] } struct FieldExpr: AttrsOwner { Expr, Dot, NameRef } struct AwaitExpr: AttrsOwner { Expr, Dot, T![await] } struct TryExpr: AttrsOwner { T![try], Expr } @@ -489,14 +489,14 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { struct RecordField: AttrsOwner { NameRef, Colon, Expr } struct OrPat { pats: [Pat] } - struct ParenPat { LParen, Pat, RParen } + struct ParenPat { T!['('], Pat, T![')'] } struct RefPat { Amp, T![mut], Pat } struct BoxPat { T![box], Pat } struct BindPat: AttrsOwner, NameOwner { T![ref], T![mut], At, Pat } struct PlaceholderPat { Underscore } struct DotDotPat { Dotdot } struct PathPat { Path } - struct SlicePat { LBrack, args: [Pat], RBrack } + struct SlicePat { T!['['], args: [Pat], T![']'] } struct RangePat { RangeSeparator } struct LiteralPat { Literal } struct MacroPat { MacroCall } @@ -512,8 +512,8 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { } struct RecordFieldPat: AttrsOwner, NameOwner { Colon, Pat } - struct TupleStructPat { Path, LParen, args: [Pat], RParen } - struct TuplePat { LParen, args: [Pat], RParen } + struct TupleStructPat { Path, T!['('], args: [Pat], T![')'] } + struct TuplePat { T!['('], args: [Pat], T![')'] } struct Visibility { T![pub], T![super], T![self], T![crate] } struct Name { Ident } @@ -522,7 +522,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { struct MacroCall: NameOwner, AttrsOwner,DocCommentsOwner { Path, Excl, TokenTree, T![;] } - struct Attr { Pound, Excl, LBrack, Path, Eq, input: AttrInput, RBrack } + struct Attr { Pound, Excl, T!['['], Path, Eq, input: AttrInput, T![']'] } struct TokenTree {} struct TypeParamList { LAngle, @@ -562,10 +562,10 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { T!['}'], } struct ParamList { - LParen, + T!['('], SelfParam, params: [Param], - RParen + T![')'] } struct SelfParam: TypeAscriptionOwner, AttrsOwner { Amp, Lifetime, T![self] } struct Param: TypeAscriptionOwner, AttrsOwner { @@ -585,9 +585,9 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { T![extern], T![crate], NameRef, Alias, } struct ArgList { - LParen, + T!['('], args: [Expr], - RParen + T![')'] } struct Path { segment: PathSegment, diff --git a/xtask/src/codegen/gen_syntax.rs b/xtask/src/codegen/gen_syntax.rs index b7698ee6e..a903d1da7 100644 --- a/xtask/src/codegen/gen_syntax.rs +++ b/xtask/src/codegen/gen_syntax.rs @@ -531,6 +531,10 @@ impl Field<'_> { "->" => "thin_arrow", "'{'" => "l_curly", "'}'" => "r_curly", + "'('" => "l_paren", + "')'" => "r_paren", + "'['" => "l_brack", + "']'" => "r_brack", _ => name, }; format_ident!("{}_token", name) -- cgit v1.2.3