use biome_js_syntax::{JsSyntaxKind, JsSyntaxKind::*, T, *};
use biome_rowan::{
AstNode, ParsedChildren, RawNodeSlots, RawSyntaxNode, SyntaxFactory, SyntaxKind,
};
#[derive(Debug)]
pub struct JsSyntaxFactory;
impl SyntaxFactory for JsSyntaxFactory {
type Kind = JsSyntaxKind;
#[allow(unused_mut)]
fn make_syntax(
kind: Self::Kind,
children: ParsedChildren<Self::Kind>,
) -> RawSyntaxNode<Self::Kind> {
match kind {
JS_BOGUS
| JS_BOGUS_ASSIGNMENT
| JS_BOGUS_BINDING
| JS_BOGUS_EXPRESSION
| JS_BOGUS_IMPORT_ASSERTION_ENTRY
| JS_BOGUS_MEMBER
| JS_BOGUS_NAMED_IMPORT_SPECIFIER
| JS_BOGUS_PARAMETER
| JS_BOGUS_STATEMENT
| TS_BOGUS_TYPE => RawSyntaxNode::new(kind, children.into_iter().map(Some)),
JS_ACCESSOR_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![accessor] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ACCESSOR_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ACCESSOR_MODIFIER, children)
}
JS_ARRAY_ASSIGNMENT_PATTERN => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsArrayAssignmentPatternElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_ASSIGNMENT_PATTERN.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_ASSIGNMENT_PATTERN, children)
}
JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsAssignmentPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT, children)
}
JS_ARRAY_ASSIGNMENT_PATTERN_REST_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsAssignmentPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_ASSIGNMENT_PATTERN_REST_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_ASSIGNMENT_PATTERN_REST_ELEMENT, children)
}
JS_ARRAY_BINDING_PATTERN => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsArrayBindingPatternElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_BINDING_PATTERN.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_BINDING_PATTERN, children)
}
JS_ARRAY_BINDING_PATTERN_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_BINDING_PATTERN_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_BINDING_PATTERN_ELEMENT, children)
}
JS_ARRAY_BINDING_PATTERN_REST_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_BINDING_PATTERN_REST_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_BINDING_PATTERN_REST_ELEMENT, children)
}
JS_ARRAY_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsArrayElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_EXPRESSION, children)
}
JS_ARRAY_HOLE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<0usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARRAY_HOLE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARRAY_HOLE, children)
}
JS_ARROW_FUNCTION_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsArrowFunctionParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ARROW_FUNCTION_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ARROW_FUNCTION_EXPRESSION, children)
}
JS_ASSIGNMENT_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsAssignmentPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(
element.kind(),
T ! [=]
| T ! [+=]
| T ! [-=]
| T ! [*=]
| T ! [/=]
| T ! [%=]
| T ! [**=]
| T ! [>>=]
| T ! [<<=]
| T ! [>>>=]
| T ! [&=]
| T ! [|=]
| T ! [^=]
| T ! [&&=]
| T ! [||=]
| T ! [??=]
) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ASSIGNMENT_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ASSIGNMENT_EXPRESSION, children)
}
JS_AWAIT_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![await] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_AWAIT_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_AWAIT_EXPRESSION, children)
}
JS_BIGINT_LITERAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_BIGINT_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_BIGINT_LITERAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_BIGINT_LITERAL_EXPRESSION, children)
}
JS_BINARY_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(
element.kind(),
T ! [<]
| T ! [>]
| T ! [<=]
| T ! [>=]
| T ! [==]
| T ! [===]
| T ! [!=]
| T ! [!==]
| T ! [+]
| T ! [-]
| T ! [*]
| T ! [/]
| T ! [%]
| T ! [**]
| T ! [<<]
| T ! [>>]
| T ! [>>>]
| T ! [&]
| T ! [|]
| T ! [^]
) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_BINARY_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_BINARY_EXPRESSION, children)
}
JS_BLOCK_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsStatementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_BLOCK_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_BLOCK_STATEMENT, children)
}
JS_BOOLEAN_LITERAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![true] | T![false]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_BOOLEAN_LITERAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_BOOLEAN_LITERAL_EXPRESSION, children)
}
JS_BREAK_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![break] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLabel::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_BREAK_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_BREAK_STATEMENT, children)
}
JS_CALL_ARGUMENTS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCallArgumentList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CALL_ARGUMENTS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CALL_ARGUMENTS, children)
}
JS_CALL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCallArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CALL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CALL_EXPRESSION, children)
}
JS_CASE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![case] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsStatementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CASE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CASE_CLAUSE, children)
}
JS_CATCH_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![catch] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCatchDeclaration::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsBlockStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CATCH_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CATCH_CLAUSE, children)
}
JS_CATCH_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CATCH_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CATCH_DECLARATION, children)
}
JS_CLASS_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<10usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![abstract] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![class] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExtendsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsImplementsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsClassMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CLASS_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CLASS_DECLARATION, children)
}
JS_CLASS_EXPORT_DEFAULT_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<10usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![abstract] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![class] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExtendsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsImplementsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsClassMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CLASS_EXPORT_DEFAULT_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CLASS_EXPORT_DEFAULT_DECLARATION, children)
}
JS_CLASS_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<9usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![class] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExtendsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsImplementsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsClassMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CLASS_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CLASS_EXPRESSION, children)
}
JS_COMPUTED_MEMBER_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_COMPUTED_MEMBER_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_COMPUTED_MEMBER_ASSIGNMENT, children)
}
JS_COMPUTED_MEMBER_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_COMPUTED_MEMBER_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_COMPUTED_MEMBER_EXPRESSION, children)
}
JS_COMPUTED_MEMBER_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_COMPUTED_MEMBER_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_COMPUTED_MEMBER_NAME, children)
}
JS_CONDITIONAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CONDITIONAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CONDITIONAL_EXPRESSION, children)
}
JS_CONSTRUCTOR_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsConstructorModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLiteralMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsConstructorParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CONSTRUCTOR_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CONSTRUCTOR_CLASS_MEMBER, children)
}
JS_CONSTRUCTOR_PARAMETERS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsConstructorParameterList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CONSTRUCTOR_PARAMETERS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CONSTRUCTOR_PARAMETERS, children)
}
JS_CONTINUE_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![continue] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLabel::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_CONTINUE_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_CONTINUE_STATEMENT, children)
}
JS_DEBUGGER_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![debugger] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_DEBUGGER_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_DEBUGGER_STATEMENT, children)
}
JS_DECORATOR => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [@] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsDecorator::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_DECORATOR.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_DECORATOR, children)
}
JS_DEFAULT_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![default] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsStatementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_DEFAULT_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_DEFAULT_CLAUSE, children)
}
JS_DEFAULT_IMPORT_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_DEFAULT_IMPORT_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_DEFAULT_IMPORT_SPECIFIER, children)
}
JS_DIRECTIVE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_DIRECTIVE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_DIRECTIVE, children)
}
JS_DO_WHILE_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![do] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![while] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_DO_WHILE_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_DO_WHILE_STATEMENT, children)
}
JS_ELSE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![else] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_ELSE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_ELSE_CLAUSE, children)
}
JS_EMPTY_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EMPTY_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EMPTY_CLASS_MEMBER, children)
}
JS_EMPTY_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EMPTY_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EMPTY_STATEMENT, children)
}
JS_EXPORT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![export] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExportClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT, children)
}
JS_EXPORT_AS_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLiteralExportName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_AS_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_AS_CLAUSE, children)
}
JS_EXPORT_DEFAULT_DECLARATION_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![default] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExportDefaultDeclaration::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_DEFAULT_DECLARATION_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_DEFAULT_DECLARATION_CLAUSE, children)
}
JS_EXPORT_DEFAULT_EXPRESSION_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![default] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_DEFAULT_EXPRESSION_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_DEFAULT_EXPRESSION_CLAUSE, children)
}
JS_EXPORT_FROM_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExportAsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![from] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_FROM_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_FROM_CLAUSE, children)
}
JS_EXPORT_NAMED_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExportNamedSpecifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_NAMED_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_NAMED_CLAUSE, children)
}
JS_EXPORT_NAMED_FROM_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<8usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExportNamedFromSpecifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![from] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_NAMED_FROM_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_NAMED_FROM_CLAUSE, children)
}
JS_EXPORT_NAMED_FROM_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLiteralExportName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsExportAsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_NAMED_FROM_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_NAMED_FROM_SPECIFIER, children)
}
JS_EXPORT_NAMED_SHORTHAND_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsReferenceIdentifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_NAMED_SHORTHAND_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_NAMED_SHORTHAND_SPECIFIER, children)
}
JS_EXPORT_NAMED_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsReferenceIdentifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLiteralExportName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPORT_NAMED_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPORT_NAMED_SPECIFIER, children)
}
JS_EXPRESSION_SNIPPED => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![EOF] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPRESSION_SNIPPED.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPRESSION_SNIPPED, children)
}
JS_EXPRESSION_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXPRESSION_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXPRESSION_STATEMENT, children)
}
JS_EXTENDS_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![extends] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_EXTENDS_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_EXTENDS_CLAUSE, children)
}
JS_FINALLY_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![finally] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsBlockStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FINALLY_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FINALLY_CLAUSE, children)
}
JS_FOR_IN_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![for] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsForInOrOfInitializer::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![in] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FOR_IN_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FOR_IN_STATEMENT, children)
}
JS_FOR_OF_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<8usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![for] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![await] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsForInOrOfInitializer::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![of] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FOR_OF_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FOR_OF_STATEMENT, children)
}
JS_FOR_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<9usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![for] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsForInitializer::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FOR_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FOR_STATEMENT, children)
}
JS_FOR_VARIABLE_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![await] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![var] | T![let] | T![const] | T![using]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsVariableDeclarator::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FOR_VARIABLE_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FOR_VARIABLE_DECLARATION, children)
}
JS_FORMAL_PARAMETER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FORMAL_PARAMETER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FORMAL_PARAMETER, children)
}
JS_FUNCTION_BODY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsDirectiveList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsStatementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FUNCTION_BODY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FUNCTION_BODY, children)
}
JS_FUNCTION_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<8usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![function] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FUNCTION_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FUNCTION_DECLARATION, children)
}
JS_FUNCTION_EXPORT_DEFAULT_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<8usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![function] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FUNCTION_EXPORT_DEFAULT_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FUNCTION_EXPORT_DEFAULT_DECLARATION, children)
}
JS_FUNCTION_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<8usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![function] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_FUNCTION_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_FUNCTION_EXPRESSION, children)
}
JS_GETTER_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsMethodModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![get] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_GETTER_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_GETTER_CLASS_MEMBER, children)
}
JS_GETTER_OBJECT_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![get] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_GETTER_OBJECT_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_GETTER_OBJECT_MEMBER, children)
}
JS_IDENTIFIER_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IDENTIFIER_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IDENTIFIER_ASSIGNMENT, children)
}
JS_IDENTIFIER_BINDING => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IDENTIFIER_BINDING.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IDENTIFIER_BINDING, children)
}
JS_IDENTIFIER_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsReferenceIdentifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IDENTIFIER_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IDENTIFIER_EXPRESSION, children)
}
JS_IF_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![if] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsElseClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IF_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IF_STATEMENT, children)
}
JS_IMPORT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![import] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsImportClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT, children)
}
JS_IMPORT_ASSERTION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![assert] | T![with]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertionEntryList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_ASSERTION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_ASSERTION, children)
}
JS_IMPORT_ASSERTION_ENTRY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), IDENT | JS_STRING_LITERAL) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == JS_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_ASSERTION_ENTRY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_ASSERTION_ENTRY, children)
}
JS_IMPORT_BARE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_BARE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_BARE_CLAUSE, children)
}
JS_IMPORT_CALL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![import] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCallArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_CALL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_CALL_EXPRESSION, children)
}
JS_IMPORT_COMBINED_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDefaultImportSpecifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [,] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsCombinedSpecifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![from] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_COMBINED_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_COMBINED_CLAUSE, children)
}
JS_IMPORT_DEFAULT_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsDefaultImportSpecifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![from] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_DEFAULT_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_DEFAULT_CLAUSE, children)
}
JS_IMPORT_META_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![import] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == META {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_META_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_META_EXPRESSION, children)
}
JS_IMPORT_NAMED_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsNamedImportSpecifiers::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![from] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_NAMED_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_NAMED_CLAUSE, children)
}
JS_IMPORT_NAMESPACE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsNamespaceImportSpecifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![from] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsImportAssertion::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IMPORT_NAMESPACE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IMPORT_NAMESPACE_CLAUSE, children)
}
JS_IN_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsInProperty::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![in] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_IN_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_IN_EXPRESSION, children)
}
JS_INITIALIZER_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_INITIALIZER_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_INITIALIZER_CLAUSE, children)
}
JS_INSTANCEOF_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![instanceof] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_INSTANCEOF_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_INSTANCEOF_EXPRESSION, children)
}
JS_LABEL => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(JS_LABEL.to_bogus(), children.into_iter().map(Some));
}
slots.into_node(JS_LABEL, children)
}
JS_LABELED_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsLabel::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_LABELED_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_LABELED_STATEMENT, children)
}
JS_LITERAL_EXPORT_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), IDENT | JS_STRING_LITERAL) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_LITERAL_EXPORT_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_LITERAL_EXPORT_NAME, children)
}
JS_LITERAL_MEMBER_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(
element.kind(),
IDENT | JS_STRING_LITERAL | JS_NUMBER_LITERAL
) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_LITERAL_MEMBER_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_LITERAL_MEMBER_NAME, children)
}
JS_LOGICAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [??] | T ! [||] | T ! [&&]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_LOGICAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_LOGICAL_EXPRESSION, children)
}
JS_METHOD_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<9usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsMethodModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_METHOD_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_METHOD_CLASS_MEMBER, children)
}
JS_METHOD_OBJECT_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_METHOD_OBJECT_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_METHOD_OBJECT_MEMBER, children)
}
JS_MODULE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![UNICODE_BOM] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == JS_SHEBANG {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsDirectiveList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleItemList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![EOF] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_MODULE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_MODULE, children)
}
JS_MODULE_SOURCE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_MODULE_SOURCE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_MODULE_SOURCE, children)
}
JS_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(JS_NAME.to_bogus(), children.into_iter().map(Some));
}
slots.into_node(JS_NAME, children)
}
JS_NAMED_IMPORT_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLiteralExportName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NAMED_IMPORT_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NAMED_IMPORT_SPECIFIER, children)
}
JS_NAMED_IMPORT_SPECIFIERS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsNamedImportSpecifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NAMED_IMPORT_SPECIFIERS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NAMED_IMPORT_SPECIFIERS, children)
}
JS_NAMESPACE_IMPORT_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NAMESPACE_IMPORT_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NAMESPACE_IMPORT_SPECIFIER, children)
}
JS_NEW_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![new] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCallArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NEW_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NEW_EXPRESSION, children)
}
JS_NEW_TARGET_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![new] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == TARGET {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NEW_TARGET_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NEW_TARGET_EXPRESSION, children)
}
JS_NULL_LITERAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![null] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NULL_LITERAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NULL_LITERAL_EXPRESSION, children)
}
JS_NUMBER_LITERAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_NUMBER_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_NUMBER_LITERAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_NUMBER_LITERAL_EXPRESSION, children)
}
JS_OBJECT_ASSIGNMENT_PATTERN => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsObjectAssignmentPatternPropertyList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_ASSIGNMENT_PATTERN.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_ASSIGNMENT_PATTERN, children)
}
JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsAssignmentPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY, children)
}
JS_OBJECT_ASSIGNMENT_PATTERN_REST => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_ASSIGNMENT_PATTERN_REST.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_ASSIGNMENT_PATTERN_REST, children)
}
JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsIdentifierAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY, children)
}
JS_OBJECT_BINDING_PATTERN => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsObjectBindingPatternPropertyList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_BINDING_PATTERN.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_BINDING_PATTERN, children)
}
JS_OBJECT_BINDING_PATTERN_PROPERTY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_BINDING_PATTERN_PROPERTY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_BINDING_PATTERN_PROPERTY, children)
}
JS_OBJECT_BINDING_PATTERN_REST => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_BINDING_PATTERN_REST.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_BINDING_PATTERN_REST, children)
}
JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY, children)
}
JS_OBJECT_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsObjectMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_OBJECT_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_OBJECT_EXPRESSION, children)
}
JS_PARAMETERS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameterList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PARAMETERS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PARAMETERS, children)
}
JS_PARENTHESIZED_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PARENTHESIZED_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PARENTHESIZED_ASSIGNMENT, children)
}
JS_PARENTHESIZED_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PARENTHESIZED_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PARENTHESIZED_EXPRESSION, children)
}
JS_POST_UPDATE_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [++] | T ! [--]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_POST_UPDATE_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_POST_UPDATE_EXPRESSION, children)
}
JS_PRE_UPDATE_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [++] | T ! [--]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PRE_UPDATE_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PRE_UPDATE_EXPRESSION, children)
}
JS_PRIVATE_CLASS_MEMBER_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [#] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PRIVATE_CLASS_MEMBER_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PRIVATE_CLASS_MEMBER_NAME, children)
}
JS_PRIVATE_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [#] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PRIVATE_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PRIVATE_NAME, children)
}
JS_PROPERTY_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsPropertyModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsPropertyAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PROPERTY_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PROPERTY_CLASS_MEMBER, children)
}
JS_PROPERTY_OBJECT_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_PROPERTY_OBJECT_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_PROPERTY_OBJECT_MEMBER, children)
}
JS_REFERENCE_IDENTIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_REFERENCE_IDENTIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_REFERENCE_IDENTIFIER, children)
}
JS_REGEX_LITERAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_REGEX_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_REGEX_LITERAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_REGEX_LITERAL_EXPRESSION, children)
}
JS_REST_PARAMETER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_REST_PARAMETER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_REST_PARAMETER, children)
}
JS_RETURN_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![return] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_RETURN_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_RETURN_STATEMENT, children)
}
JS_SCRIPT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![UNICODE_BOM] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == JS_SHEBANG {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsDirectiveList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsStatementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![EOF] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SCRIPT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SCRIPT, children)
}
JS_SEQUENCE_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [,] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SEQUENCE_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SEQUENCE_EXPRESSION, children)
}
JS_SETTER_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsMethodModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![set] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsFormalParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SETTER_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SETTER_CLASS_MEMBER, children)
}
JS_SETTER_OBJECT_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![set] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsFormalParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFunctionBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SETTER_OBJECT_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SETTER_OBJECT_MEMBER, children)
}
JS_SHORTHAND_NAMED_IMPORT_SPECIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SHORTHAND_NAMED_IMPORT_SPECIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SHORTHAND_NAMED_IMPORT_SPECIFIER, children)
}
JS_SHORTHAND_PROPERTY_OBJECT_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsReferenceIdentifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SHORTHAND_PROPERTY_OBJECT_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SHORTHAND_PROPERTY_OBJECT_MEMBER, children)
}
JS_SPREAD => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SPREAD.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SPREAD, children)
}
JS_STATIC_INITIALIZATION_BLOCK_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![static] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsStatementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_STATIC_INITIALIZATION_BLOCK_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_STATIC_INITIALIZATION_BLOCK_CLASS_MEMBER, children)
}
JS_STATIC_MEMBER_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_STATIC_MEMBER_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_STATIC_MEMBER_ASSIGNMENT, children)
}
JS_STATIC_MEMBER_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [.] | T ! [?.]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_STATIC_MEMBER_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_STATIC_MEMBER_EXPRESSION, children)
}
JS_STATIC_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![static] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_STATIC_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_STATIC_MODIFIER, children)
}
JS_STRING_LITERAL_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_STRING_LITERAL_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_STRING_LITERAL_EXPRESSION, children)
}
JS_SUPER_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![super] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SUPER_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SUPER_EXPRESSION, children)
}
JS_SWITCH_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![switch] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsSwitchCaseList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_SWITCH_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_SWITCH_STATEMENT, children)
}
JS_TEMPLATE_CHUNK_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == TEMPLATE_CHUNK {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_TEMPLATE_CHUNK_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_TEMPLATE_CHUNK_ELEMENT, children)
}
JS_TEMPLATE_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == DOLLAR_CURLY {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_TEMPLATE_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_TEMPLATE_ELEMENT, children)
}
JS_TEMPLATE_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['`'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsTemplateElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['`'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_TEMPLATE_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_TEMPLATE_EXPRESSION, children)
}
JS_THIS_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![this] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_THIS_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_THIS_EXPRESSION, children)
}
JS_THROW_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![throw] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_THROW_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_THROW_STATEMENT, children)
}
JS_TRY_FINALLY_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![try] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsBlockStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCatchClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsFinallyClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_TRY_FINALLY_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_TRY_FINALLY_STATEMENT, children)
}
JS_TRY_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![try] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsBlockStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsCatchClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_TRY_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_TRY_STATEMENT, children)
}
JS_UNARY_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(
element.kind(),
T![delete] | T![void] | T![typeof] | T ! [+] | T ! [-] | T ! [~] | T![!]
) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_UNARY_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_UNARY_EXPRESSION, children)
}
JS_VARIABLE_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![await] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![var] | T![const] | T![let] | T![using]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsVariableDeclaratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_VARIABLE_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_VARIABLE_DECLARATION, children)
}
JS_VARIABLE_DECLARATION_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsVariableDeclaration::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_VARIABLE_DECLARATION_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_VARIABLE_DECLARATION_CLAUSE, children)
}
JS_VARIABLE_DECLARATOR => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsBindingPattern::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsVariableAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_VARIABLE_DECLARATOR.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_VARIABLE_DECLARATOR, children)
}
JS_VARIABLE_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsVariableDeclaration::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_VARIABLE_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_VARIABLE_STATEMENT, children)
}
JS_WHILE_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![while] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_WHILE_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_WHILE_STATEMENT, children)
}
JS_WITH_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![with] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsStatement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_WITH_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_WITH_STATEMENT, children)
}
JS_YIELD_ARGUMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [*] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_YIELD_ARGUMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_YIELD_ARGUMENT, children)
}
JS_YIELD_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![yield] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsYieldArgument::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JS_YIELD_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JS_YIELD_EXPRESSION, children)
}
JSX_ATTRIBUTE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsxAttributeName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxAttributeInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_ATTRIBUTE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_ATTRIBUTE, children)
}
JSX_ATTRIBUTE_INITIALIZER_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsxAttributeValue::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_ATTRIBUTE_INITIALIZER_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_ATTRIBUTE_INITIALIZER_CLAUSE, children)
}
JSX_CLOSING_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [/] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsxElementName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_CLOSING_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_CLOSING_ELEMENT, children)
}
JSX_CLOSING_FRAGMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [/] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_CLOSING_FRAGMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_CLOSING_FRAGMENT, children)
}
JSX_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsxOpeningElement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxChildList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxClosingElement::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_ELEMENT, children)
}
JSX_EXPRESSION_ATTRIBUTE_VALUE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_EXPRESSION_ATTRIBUTE_VALUE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_EXPRESSION_ATTRIBUTE_VALUE, children)
}
JSX_EXPRESSION_CHILD => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_EXPRESSION_CHILD.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_EXPRESSION_CHILD, children)
}
JSX_FRAGMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsxOpeningFragment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxChildList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxClosingFragment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_FRAGMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_FRAGMENT, children)
}
JSX_MEMBER_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsxObjectName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_MEMBER_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_MEMBER_NAME, children)
}
JSX_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JSX_IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(JSX_NAME.to_bogus(), children.into_iter().map(Some));
}
slots.into_node(JSX_NAME, children)
}
JSX_NAMESPACE_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsxName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_NAMESPACE_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_NAMESPACE_NAME, children)
}
JSX_OPENING_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsxElementName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxAttributeList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_OPENING_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_OPENING_ELEMENT, children)
}
JSX_OPENING_FRAGMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_OPENING_FRAGMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_OPENING_FRAGMENT, children)
}
JSX_REFERENCE_IDENTIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JSX_IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_REFERENCE_IDENTIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_REFERENCE_IDENTIFIER, children)
}
JSX_SELF_CLOSING_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsxElementName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsxAttributeList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [/] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_SELF_CLOSING_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_SELF_CLOSING_ELEMENT, children)
}
JSX_SPREAD_ATTRIBUTE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_SPREAD_ATTRIBUTE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_SPREAD_ATTRIBUTE, children)
}
JSX_SPREAD_CHILD => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_SPREAD_CHILD.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_SPREAD_CHILD, children)
}
JSX_STRING => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JSX_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_STRING.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_STRING, children)
}
JSX_TAG_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsxTag::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
JSX_TAG_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(JSX_TAG_EXPRESSION, children)
}
JSX_TEXT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JSX_TEXT_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(JSX_TEXT.to_bogus(), children.into_iter().map(Some));
}
slots.into_node(JSX_TEXT, children)
}
TS_ABSTRACT_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![abstract] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ABSTRACT_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ABSTRACT_MODIFIER, children)
}
TS_ACCESSIBILITY_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![private] | T![protected] | T![public]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ACCESSIBILITY_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ACCESSIBILITY_MODIFIER, children)
}
TS_ANY_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![any] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ANY_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ANY_TYPE, children)
}
TS_ARRAY_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ARRAY_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ARRAY_TYPE, children)
}
TS_AS_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_AS_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_AS_ASSIGNMENT, children)
}
TS_AS_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_AS_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_AS_EXPRESSION, children)
}
TS_ASSERTS_CONDITION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![is] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ASSERTS_CONDITION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ASSERTS_CONDITION, children)
}
TS_ASSERTS_RETURN_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![asserts] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsTypePredicateParameterName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsAssertsCondition::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ASSERTS_RETURN_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ASSERTS_RETURN_TYPE, children)
}
TS_BIGINT_LITERAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [-] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == JS_BIGINT_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_BIGINT_LITERAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_BIGINT_LITERAL_TYPE, children)
}
TS_BIGINT_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![bigint] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_BIGINT_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_BIGINT_TYPE, children)
}
TS_BOOLEAN_LITERAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![true] | T![false]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_BOOLEAN_LITERAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_BOOLEAN_LITERAL_TYPE, children)
}
TS_BOOLEAN_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![boolean] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_BOOLEAN_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_BOOLEAN_TYPE, children)
}
TS_CALL_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_CALL_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_CALL_SIGNATURE_TYPE_MEMBER, children)
}
TS_CONDITIONAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![extends] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_CONDITIONAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_CONDITIONAL_TYPE, children)
}
TS_CONST_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![const] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_CONST_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_CONST_MODIFIER, children)
}
TS_CONSTRUCT_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![new] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_CONSTRUCT_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_CONSTRUCT_SIGNATURE_TYPE_MEMBER, children)
}
TS_CONSTRUCTOR_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsConstructorModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsLiteralMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsConstructorParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_CONSTRUCTOR_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_CONSTRUCTOR_SIGNATURE_CLASS_MEMBER, children)
}
TS_CONSTRUCTOR_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![abstract] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![new] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_CONSTRUCTOR_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_CONSTRUCTOR_TYPE, children)
}
TS_DECLARE_FUNCTION_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![function] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DECLARE_FUNCTION_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DECLARE_FUNCTION_DECLARATION, children)
}
TS_DECLARE_FUNCTION_EXPORT_DEFAULT_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![function] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DECLARE_FUNCTION_EXPORT_DEFAULT_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DECLARE_FUNCTION_EXPORT_DEFAULT_DECLARATION, children)
}
TS_DECLARE_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![declare] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DECLARE_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DECLARE_MODIFIER, children)
}
TS_DECLARE_STATEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![declare] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsDeclarationClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DECLARE_STATEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DECLARE_STATEMENT, children)
}
TS_DEFAULT_TYPE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DEFAULT_TYPE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DEFAULT_TYPE_CLAUSE, children)
}
TS_DEFINITE_PROPERTY_ANNOTATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![!] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DEFINITE_PROPERTY_ANNOTATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DEFINITE_PROPERTY_ANNOTATION, children)
}
TS_DEFINITE_VARIABLE_ANNOTATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![!] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_DEFINITE_VARIABLE_ANNOTATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_DEFINITE_VARIABLE_ANNOTATION, children)
}
TS_EMPTY_EXTERNAL_MODULE_DECLARATION_BODY => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EMPTY_EXTERNAL_MODULE_DECLARATION_BODY.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EMPTY_EXTERNAL_MODULE_DECLARATION_BODY, children)
}
TS_ENUM_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![const] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![enum] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsEnumMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ENUM_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ENUM_DECLARATION, children)
}
TS_ENUM_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_ENUM_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_ENUM_MEMBER, children)
}
TS_EXPORT_AS_NAMESPACE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![namespace] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EXPORT_AS_NAMESPACE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EXPORT_AS_NAMESPACE_CLAUSE, children)
}
TS_EXPORT_ASSIGNMENT_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EXPORT_ASSIGNMENT_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EXPORT_ASSIGNMENT_CLAUSE, children)
}
TS_EXPORT_DECLARE_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![declare] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsDeclarationClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EXPORT_DECLARE_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EXPORT_DECLARE_CLAUSE, children)
}
TS_EXTENDS_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![extends] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EXTENDS_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EXTENDS_CLAUSE, children)
}
TS_EXTERNAL_MODULE_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![module] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsExternalModuleDeclarationBody::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EXTERNAL_MODULE_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EXTERNAL_MODULE_DECLARATION, children)
}
TS_EXTERNAL_MODULE_REFERENCE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![require] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleSource::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_EXTERNAL_MODULE_REFERENCE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_EXTERNAL_MODULE_REFERENCE, children)
}
TS_FUNCTION_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsReturnType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_FUNCTION_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_FUNCTION_TYPE, children)
}
TS_GETTER_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsMethodSignatureModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![get] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_GETTER_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_GETTER_SIGNATURE_CLASS_MEMBER, children)
}
TS_GETTER_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![get] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_GETTER_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_GETTER_SIGNATURE_TYPE_MEMBER, children)
}
TS_GLOBAL_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![global] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsModuleBlock::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_GLOBAL_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_GLOBAL_DECLARATION, children)
}
TS_IDENTIFIER_BINDING => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_IDENTIFIER_BINDING.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_IDENTIFIER_BINDING, children)
}
TS_IMPLEMENTS_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![implements] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_IMPLEMENTS_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_IMPLEMENTS_CLAUSE, children)
}
TS_IMPORT_EQUALS_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![import] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsModuleReference::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_IMPORT_EQUALS_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_IMPORT_EQUALS_DECLARATION, children)
}
TS_IMPORT_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![typeof] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![import] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == JS_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsImportTypeQualifier::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_IMPORT_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_IMPORT_TYPE, children)
}
TS_IMPORT_TYPE_QUALIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_IMPORT_TYPE_QUALIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_IMPORT_TYPE_QUALIFIER, children)
}
TS_IN_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![in] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_IN_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_IN_MODIFIER, children)
}
TS_INDEX_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsIndexSignatureModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsIndexSignatureParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INDEX_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INDEX_SIGNATURE_CLASS_MEMBER, children)
}
TS_INDEX_SIGNATURE_PARAMETER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsIdentifierBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INDEX_SIGNATURE_PARAMETER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INDEX_SIGNATURE_PARAMETER, children)
}
TS_INDEX_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![readonly] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsIndexSignatureParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INDEX_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INDEX_SIGNATURE_TYPE_MEMBER, children)
}
TS_INDEXED_ACCESS_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INDEXED_ACCESS_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INDEXED_ACCESS_TYPE, children)
}
TS_INFER_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![infer] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameterName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeConstraintClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INFER_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INFER_TYPE, children)
}
TS_INITIALIZED_PROPERTY_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsPropertySignatureModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsInitializerClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INITIALIZED_PROPERTY_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INITIALIZED_PROPERTY_SIGNATURE_CLASS_MEMBER, children)
}
TS_INSTANTIATION_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INSTANTIATION_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INSTANTIATION_EXPRESSION, children)
}
TS_INTERFACE_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![interface] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsIdentifierBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsExtendsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INTERFACE_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INTERFACE_DECLARATION, children)
}
TS_INTERSECTION_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [&] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsIntersectionTypeElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_INTERSECTION_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_INTERSECTION_TYPE, children)
}
TS_MAPPED_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<12usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsMappedTypeReadonlyModifierClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameterName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![in] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsMappedTypeAsClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsMappedTypeOptionalModifierClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_MAPPED_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_MAPPED_TYPE, children)
}
TS_MAPPED_TYPE_AS_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![as] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_MAPPED_TYPE_AS_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_MAPPED_TYPE_AS_CLAUSE, children)
}
TS_MAPPED_TYPE_OPTIONAL_MODIFIER_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [+] | T ! [-]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_MAPPED_TYPE_OPTIONAL_MODIFIER_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_MAPPED_TYPE_OPTIONAL_MODIFIER_CLAUSE, children)
}
TS_MAPPED_TYPE_READONLY_MODIFIER_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [+] | T ! [-]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![readonly] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_MAPPED_TYPE_READONLY_MODIFIER_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_MAPPED_TYPE_READONLY_MODIFIER_CLAUSE, children)
}
TS_METHOD_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<8usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsMethodSignatureModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![async] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_METHOD_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_METHOD_SIGNATURE_CLASS_MEMBER, children)
}
TS_METHOD_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsReturnTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_METHOD_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_METHOD_SIGNATURE_TYPE_MEMBER, children)
}
TS_MODULE_BLOCK => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsModuleItemList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_MODULE_BLOCK.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_MODULE_BLOCK, children)
}
TS_MODULE_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![module] | T![namespace]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsModuleName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsModuleBlock::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_MODULE_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_MODULE_DECLARATION, children)
}
TS_NAME_WITH_TYPE_ARGUMENTS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NAME_WITH_TYPE_ARGUMENTS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NAME_WITH_TYPE_ARGUMENTS, children)
}
TS_NAMED_TUPLE_TYPE_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NAMED_TUPLE_TYPE_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NAMED_TUPLE_TYPE_ELEMENT, children)
}
TS_NEVER_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![never] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NEVER_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NEVER_TYPE, children)
}
TS_NON_NULL_ASSERTION_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![!] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NON_NULL_ASSERTION_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NON_NULL_ASSERTION_ASSIGNMENT, children)
}
TS_NON_NULL_ASSERTION_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![!] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NON_NULL_ASSERTION_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NON_NULL_ASSERTION_EXPRESSION, children)
}
TS_NON_PRIMITIVE_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![object] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NON_PRIMITIVE_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NON_PRIMITIVE_TYPE, children)
}
TS_NULL_LITERAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![null] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NULL_LITERAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NULL_LITERAL_TYPE, children)
}
TS_NUMBER_LITERAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [-] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == JS_NUMBER_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NUMBER_LITERAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NUMBER_LITERAL_TYPE, children)
}
TS_NUMBER_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![number] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_NUMBER_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_NUMBER_TYPE, children)
}
TS_OBJECT_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['{'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeMemberList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_OBJECT_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_OBJECT_TYPE, children)
}
TS_OPTIONAL_PROPERTY_ANNOTATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_OPTIONAL_PROPERTY_ANNOTATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_OPTIONAL_PROPERTY_ANNOTATION, children)
}
TS_OPTIONAL_TUPLE_TYPE_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_OPTIONAL_TUPLE_TYPE_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_OPTIONAL_TUPLE_TYPE_ELEMENT, children)
}
TS_OUT_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![out] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_OUT_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_OUT_MODIFIER, children)
}
TS_OVERRIDE_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![override] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_OVERRIDE_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_OVERRIDE_MODIFIER, children)
}
TS_PARENTHESIZED_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_PARENTHESIZED_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_PARENTHESIZED_TYPE, children)
}
TS_PREDICATE_RETURN_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsTypePredicateParameterName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![is] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_PREDICATE_RETURN_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_PREDICATE_RETURN_TYPE, children)
}
TS_PROPERTY_PARAMETER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if JsDecoratorList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsPropertyParameterModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsFormalParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_PROPERTY_PARAMETER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_PROPERTY_PARAMETER, children)
}
TS_PROPERTY_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsPropertySignatureModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsPropertySignatureAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_PROPERTY_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_PROPERTY_SIGNATURE_CLASS_MEMBER, children)
}
TS_PROPERTY_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<5usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![readonly] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [?] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_PROPERTY_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_PROPERTY_SIGNATURE_TYPE_MEMBER, children)
}
TS_QUALIFIED_MODULE_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsModuleName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_QUALIFIED_MODULE_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_QUALIFIED_MODULE_NAME, children)
}
TS_QUALIFIED_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [.] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if JsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_QUALIFIED_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_QUALIFIED_NAME, children)
}
TS_READONLY_MODIFIER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![readonly] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_READONLY_MODIFIER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_READONLY_MODIFIER, children)
}
TS_REFERENCE_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyTsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_REFERENCE_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_REFERENCE_TYPE, children)
}
TS_REST_TUPLE_TYPE_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [...] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_REST_TUPLE_TYPE_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_REST_TUPLE_TYPE_ELEMENT, children)
}
TS_RETURN_TYPE_ANNOTATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsReturnType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_RETURN_TYPE_ANNOTATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_RETURN_TYPE_ANNOTATION, children)
}
TS_SATISFIES_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![satisfies] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_SATISFIES_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_SATISFIES_ASSIGNMENT, children)
}
TS_SATISFIES_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![satisfies] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_SATISFIES_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_SATISFIES_EXPRESSION, children)
}
TS_SETTER_SIGNATURE_CLASS_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<7usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsMethodSignatureModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![set] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsClassMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsFormalParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_SETTER_SIGNATURE_CLASS_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_SETTER_SIGNATURE_CLASS_MEMBER, children)
}
TS_SETTER_SIGNATURE_TYPE_MEMBER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![set] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsObjectMemberName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['('] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsFormalParameter::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![')'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T ! [,] | T ! [;]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_SETTER_SIGNATURE_TYPE_MEMBER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_SETTER_SIGNATURE_TYPE_MEMBER, children)
}
TS_STRING_LITERAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == JS_STRING_LITERAL {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_STRING_LITERAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_STRING_LITERAL_TYPE, children)
}
TS_STRING_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![string] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_STRING_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_STRING_TYPE, children)
}
TS_SYMBOL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![symbol] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_SYMBOL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_SYMBOL_TYPE, children)
}
TS_TEMPLATE_CHUNK_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == TEMPLATE_CHUNK {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TEMPLATE_CHUNK_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TEMPLATE_CHUNK_ELEMENT, children)
}
TS_TEMPLATE_ELEMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == DOLLAR_CURLY {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['}'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TEMPLATE_ELEMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TEMPLATE_ELEMENT, children)
}
TS_TEMPLATE_LITERAL_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['`'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTemplateElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T!['`'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TEMPLATE_LITERAL_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TEMPLATE_LITERAL_TYPE, children)
}
TS_THIS_PARAMETER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![this] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeAnnotation::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_THIS_PARAMETER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_THIS_PARAMETER, children)
}
TS_THIS_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![this] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_THIS_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_THIS_TYPE, children)
}
TS_TUPLE_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T!['['] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTupleTypeElementList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T![']'] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TUPLE_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TUPLE_TYPE, children)
}
TS_TYPE_ALIAS_DECLARATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<6usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![type] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsIdentifierBinding::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameters::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [=] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [;] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_ALIAS_DECLARATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_ALIAS_DECLARATION, children)
}
TS_TYPE_ANNOTATION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [:] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_ANNOTATION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_ANNOTATION, children)
}
TS_TYPE_ARGUMENTS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArgumentList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_ARGUMENTS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_ARGUMENTS, children)
}
TS_TYPE_ASSERTION_ASSIGNMENT => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsAssignment::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_ASSERTION_ASSIGNMENT.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_ASSERTION_ASSIGNMENT, children)
}
TS_TYPE_ASSERTION_EXPRESSION => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyJsExpression::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_ASSERTION_EXPRESSION.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_ASSERTION_EXPRESSION, children)
}
TS_TYPE_CONSTRAINT_CLAUSE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![extends] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_CONSTRAINT_CLAUSE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_CONSTRAINT_CLAUSE, children)
}
TS_TYPE_OPERATOR_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if matches!(element.kind(), T![keyof] | T![unique] | T![readonly]) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsType::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_OPERATOR_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_OPERATOR_TYPE, children)
}
TS_TYPE_PARAMETER => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if TsTypeParameterModifierList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameterName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeConstraintClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsDefaultTypeClause::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_PARAMETER.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_PARAMETER, children)
}
TS_TYPE_PARAMETER_NAME => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == IDENT {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_PARAMETER_NAME.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_PARAMETER_NAME, children)
}
TS_TYPE_PARAMETERS => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [<] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeParameterList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if element.kind() == T ! [>] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPE_PARAMETERS.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPE_PARAMETERS, children)
}
TS_TYPEOF_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![typeof] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if AnyTsName::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsTypeArguments::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_TYPEOF_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_TYPEOF_TYPE, children)
}
TS_UNDEFINED_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![undefined] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_UNDEFINED_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_UNDEFINED_TYPE, children)
}
TS_UNION_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T ! [|] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if let Some(element) = ¤t_element {
if TsUnionTypeVariantList::can_cast(element.kind()) {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_UNION_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_UNION_TYPE, children)
}
TS_UNKNOWN_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![unknown] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_UNKNOWN_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_UNKNOWN_TYPE, children)
}
TS_VOID_TYPE => {
let mut elements = (&children).into_iter();
let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default();
let mut current_element = elements.next();
if let Some(element) = ¤t_element {
if element.kind() == T![void] {
slots.mark_present();
current_element = elements.next();
}
}
slots.next_slot();
if current_element.is_some() {
return RawSyntaxNode::new(
TS_VOID_TYPE.to_bogus(),
children.into_iter().map(Some),
);
}
slots.into_node(TS_VOID_TYPE, children)
}
JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsArrayAssignmentPatternElement::can_cast,
T ! [,],
true,
),
JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsArrayBindingPatternElement::can_cast,
T ! [,],
true,
),
JS_ARRAY_ELEMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsArrayElement::can_cast,
T ! [,],
true,
),
JS_CALL_ARGUMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsCallArgument::can_cast,
T ! [,],
true,
),
JS_CLASS_MEMBER_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsClassMember::can_cast)
}
JS_CONSTRUCTOR_MODIFIER_LIST => {
Self::make_node_list_syntax(kind, children, TsAccessibilityModifier::can_cast)
}
JS_CONSTRUCTOR_PARAMETER_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsConstructorParameter::can_cast,
T ! [,],
true,
),
JS_DECORATOR_LIST => Self::make_node_list_syntax(kind, children, JsDecorator::can_cast),
JS_DIRECTIVE_LIST => Self::make_node_list_syntax(kind, children, JsDirective::can_cast),
JS_EXPORT_NAMED_FROM_SPECIFIER_LIST => Self::make_separated_list_syntax(
kind,
children,
JsExportNamedFromSpecifier::can_cast,
T ! [,],
true,
),
JS_EXPORT_NAMED_SPECIFIER_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsExportNamedSpecifier::can_cast,
T ! [,],
true,
),
JS_IMPORT_ASSERTION_ENTRY_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsImportAssertionEntry::can_cast,
T ! [,],
true,
),
JS_METHOD_MODIFIER_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsMethodModifier::can_cast)
}
JS_MODULE_ITEM_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsModuleItem::can_cast)
}
JS_NAMED_IMPORT_SPECIFIER_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsNamedImportSpecifier::can_cast,
T ! [,],
true,
),
JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsObjectAssignmentPatternMember::can_cast,
T ! [,],
true,
),
JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsObjectBindingPatternMember::can_cast,
T ! [,],
true,
),
JS_OBJECT_MEMBER_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsObjectMember::can_cast,
T ! [,],
true,
),
JS_PARAMETER_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyJsParameter::can_cast,
T ! [,],
true,
),
JS_PROPERTY_MODIFIER_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsPropertyModifier::can_cast)
}
JS_STATEMENT_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsStatement::can_cast)
}
JS_SWITCH_CASE_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsSwitchClause::can_cast)
}
JS_TEMPLATE_ELEMENT_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsTemplateElement::can_cast)
}
JS_VARIABLE_DECLARATOR_LIST => Self::make_separated_list_syntax(
kind,
children,
JsVariableDeclarator::can_cast,
T ! [,],
false,
),
JSX_ATTRIBUTE_LIST => {
Self::make_node_list_syntax(kind, children, AnyJsxAttribute::can_cast)
}
JSX_CHILD_LIST => Self::make_node_list_syntax(kind, children, AnyJsxChild::can_cast),
TS_ENUM_MEMBER_LIST => Self::make_separated_list_syntax(
kind,
children,
TsEnumMember::can_cast,
T ! [,],
true,
),
TS_INDEX_SIGNATURE_MODIFIER_LIST => {
Self::make_node_list_syntax(kind, children, AnyTsIndexSignatureModifier::can_cast)
}
TS_INTERSECTION_TYPE_ELEMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyTsType::can_cast,
T ! [&],
false,
),
TS_METHOD_SIGNATURE_MODIFIER_LIST => {
Self::make_node_list_syntax(kind, children, AnyTsMethodSignatureModifier::can_cast)
}
TS_PROPERTY_PARAMETER_MODIFIER_LIST => Self::make_node_list_syntax(
kind,
children,
AnyTsPropertyParameterModifier::can_cast,
),
TS_PROPERTY_SIGNATURE_MODIFIER_LIST => Self::make_node_list_syntax(
kind,
children,
AnyTsPropertySignatureModifier::can_cast,
),
TS_TEMPLATE_ELEMENT_LIST => {
Self::make_node_list_syntax(kind, children, AnyTsTemplateElement::can_cast)
}
TS_TUPLE_TYPE_ELEMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyTsTupleTypeElement::can_cast,
T ! [,],
true,
),
TS_TYPE_ARGUMENT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyTsType::can_cast,
T ! [,],
false,
),
TS_TYPE_LIST => Self::make_separated_list_syntax(
kind,
children,
TsNameWithTypeArguments::can_cast,
T ! [,],
false,
),
TS_TYPE_MEMBER_LIST => {
Self::make_node_list_syntax(kind, children, AnyTsTypeMember::can_cast)
}
TS_TYPE_PARAMETER_LIST => Self::make_separated_list_syntax(
kind,
children,
TsTypeParameter::can_cast,
T ! [,],
true,
),
TS_TYPE_PARAMETER_MODIFIER_LIST => {
Self::make_node_list_syntax(kind, children, AnyTsTypeParameterModifier::can_cast)
}
TS_UNION_TYPE_VARIANT_LIST => Self::make_separated_list_syntax(
kind,
children,
AnyTsType::can_cast,
T ! [|],
false,
),
_ => unreachable!("Is {:?} a token?", kind),
}
}
}