Program:

Reset Init __ TopLevelStatement __

Program  ::= Reset Init __ TopLevelStatement* __

no references


TopLevelStatement:

EOS ModuleItem StatementDelimiter

TopLevelStatement
         ::= EOS? ModuleItem StatementDelimiter

referenced by:


ExtendedExpression:

NonAssignmentExtendedExpression AssignmentExpression

ExtendedExpression
         ::= NonAssignmentExtendedExpression
           | AssignmentExpression

referenced by:


NonPipelineExtendedExpression:

NonAssignmentExtendedExpression NonPipelineAssignmentExpression

NonPipelineExtendedExpression
         ::= NonAssignmentExtendedExpression
           | NonPipelineAssignmentExpression

referenced by:


NonAssignmentExtendedExpression:

& EOS PushIndent Nested ExpressionizedStatement PopIndent __ ExpressionizedStatement

NonAssignmentExtendedExpression
         ::= '&' EOS PushIndent ( Nested ExpressionizedStatement )? PopIndent
           | __ ExpressionizedStatement

referenced by:


ExpressionizedStatement:

DebuggerExpression IfExpression UnlessExpression IterationExpression SwitchExpression ThrowExpression TryExpression

ExpressionizedStatement
         ::= DebuggerExpression
           | IfExpression
           | UnlessExpression
           | IterationExpression
           | SwitchExpression
           | ThrowExpression
           | TryExpression

referenced by:


Expression:

AssignmentExpression CommaDelimiter

Expression
         ::= AssignmentExpression ( CommaDelimiter AssignmentExpression )*

referenced by:


Arguments:

ExplicitArguments SuppressTrailingMemberProperty ImplicitArguments

Arguments
         ::= ExplicitArguments
           | SuppressTrailingMemberProperty ImplicitArguments?

referenced by:


ImplicitArguments:

TypeArguments ! __ ImplementsToken ApplicationStart InsertOpenParen _ ArgumentList InsertCloseParen

ImplicitArguments
         ::= ( TypeArguments '!' __ ImplementsToken )? ApplicationStart InsertOpenParen _* ArgumentList InsertCloseParen

referenced by:


ExplicitArguments:

TypeArguments OpenParen ArgumentList __ Comma __ CloseParen

ExplicitArguments
         ::= TypeArguments? OpenParen ArgumentList? ( __ Comma )? __ CloseParen

referenced by:


ApplicationStart:

IndentedApplicationAllowed & NestedImplicitObjectLiteral ! EOS & _ ! ForbiddenImplicitCalls

ApplicationStart
         ::= IndentedApplicationAllowed '&' NestedImplicitObjectLiteral
           | '!' EOS '&' _+ '!' ForbiddenImplicitCalls

referenced by:


ForbiddenImplicitCalls:

/(as|for|of|satisfies|then|when)(?!\p{ID_Continue}|[\u200C\u200D$])/ / AtAt

ForbiddenImplicitCalls
         ::= '/(as|for|of|satisfies|then|when)(?!\p{ID_Continue}|[\u200C\u200D$])/'
           | '/ '
           | AtAt

referenced by:


ArgumentsWithTrailingMemberExpressions:

Arguments TrailingMemberExpressions

ArgumentsWithTrailingMemberExpressions
         ::= Arguments TrailingMemberExpressions

referenced by:


TrailingMemberExpressions:

MemberExpressionRest Samedent IndentedFurther & ? . MemberExpressionRest

TrailingMemberExpressions
         ::= MemberExpressionRest* ( ( Samedent | IndentedFurther ) '&' '?'? '.' MemberExpressionRest )*

referenced by:


NonSuppressedTrailingMemberExpressions:

MemberExpressionRest TrailingMemberPropertyAllowed TrailingMemberExpressions

NonSuppressedTrailingMemberExpressions
         ::= TrailingMemberPropertyAllowed TrailingMemberExpressions
           | MemberExpressionRest*

referenced by:


CommaDelimiter:

Samedent IndentedFurther _ Comma

CommaDelimiter
         ::= ( Samedent | IndentedFurther )? _* Comma

referenced by:


ArgumentList:

ArgumentPart CommaDelimiter NestedImplicitObjectLiteral NestedArgumentList NestedImplicitObjectLiteral NestedArgumentList InlineArgumentExpressions

ArgumentList
         ::= ArgumentPart ( CommaDelimiter ( NestedImplicitObjectLiteral | NestedArgumentList ) )+
           | NestedImplicitObjectLiteral
           | NestedArgumentList
           | InlineArgumentExpressions

referenced by:


NestedArgumentList:

PushIndent NestedArgument PopIndent

NestedArgumentList
         ::= PushIndent NestedArgument* PopIndent

referenced by:


NestedArgument:

Nested SingleLineArgumentExpressions ParameterElementDelimiter

NestedArgument
         ::= Nested SingleLineArgumentExpressions ParameterElementDelimiter

referenced by:


InlineArgumentExpressions:

TrailingComment ArgumentPart CommaDelimiter

InlineArgumentExpressions
         ::= TrailingComment* ArgumentPart ( CommaDelimiter TrailingComment* ArgumentPart )*

referenced by:


SingleLineArgumentExpressions:

TrailingComment ArgumentPart Comma TrailingComment

SingleLineArgumentExpressions
         ::= TrailingComment* ArgumentPart ( TrailingComment* Comma TrailingComment* ArgumentPart )*

referenced by:


ArgumentPart:

DotDotDot ExtendedExpression ExtendedExpression DotDotDot

ArgumentPart
         ::= DotDotDot ExtendedExpression
           | ExtendedExpression DotDotDot?

referenced by:


BinaryOpExpression:

UnaryExpression BinaryOpRHS

BinaryOpExpression
         ::= UnaryExpression BinaryOpRHS*

referenced by:


BinaryOpRHS:

__ BinaryOp __ ParenthesizedAssignment UnaryExpression ExpressionizedStatement

BinaryOpRHS
         ::= __ BinaryOp __ ( ParenthesizedAssignment | UnaryExpression | ExpressionizedStatement )

referenced by:


ParenthesizedAssignment:

InsertOpenParen ActualAssignment InsertCloseParen

ParenthesizedAssignment
         ::= InsertOpenParen ActualAssignment InsertCloseParen

referenced by:


UnaryExpression:

UnaryOp UpdateExpression UnaryPostfix CoffeeDoEnabled Do __ LeftHandSideExpression ! __ AssignmentOpSymbol ArrowFunction ExtendedExpression

UnaryExpression
         ::= UnaryOp* UpdateExpression UnaryPostfix?
           | CoffeeDoEnabled Do __ ( LeftHandSideExpression '!' __ AssignmentOpSymbol | ArrowFunction | ExtendedExpression )

referenced by:


UnaryPostfix:

QuestionMark __ As Type __ Satisfies Type

UnaryPostfix
         ::= QuestionMark
           | ( __ As Type )+
           | ( __ Satisfies Type )+

referenced by:


UpdateExpression:

UpdateExpressionSymbol UnaryExpression LeftHandSideExpression UpdateExpressionSymbol

UpdateExpression
         ::= UpdateExpressionSymbol UnaryExpression
           | LeftHandSideExpression UpdateExpressionSymbol?

referenced by:


UpdateExpressionSymbol:

++ --

UpdateExpressionSymbol
         ::= '++'
           | '--'

referenced by:


AssignmentExpression:

TrailingComment AssignmentExpressionTail PipelineExpression __ AssignmentExpressionTail

AssignmentExpression
         ::= PipelineExpression
           | TrailingComment* AssignmentExpressionTail
           | __ AssignmentExpressionTail

referenced by:


NonPipelineAssignmentExpression:

SingleLineAssignmentExpression __ AssignmentExpressionTail

NonPipelineAssignmentExpression
         ::= SingleLineAssignmentExpression
           | __ AssignmentExpressionTail

referenced by:


SingleLineAssignmentExpression:

TrailingComment AssignmentExpressionTail

SingleLineAssignmentExpression
         ::= TrailingComment* AssignmentExpressionTail

referenced by:


AssignmentExpressionTail:

YieldExpression ArrowFunction ActualAssignment ConditionalExpression

AssignmentExpressionTail
         ::= YieldExpression
           | ArrowFunction
           | ActualAssignment
           | ConditionalExpression

referenced by:


ActualAssignment:

__ LeftHandSideExpression __ AssignmentOp ExtendedExpression

ActualAssignment
         ::= ( __ LeftHandSideExpression __ AssignmentOp )+ ExtendedExpression

referenced by:


YieldExpression:

Yield YieldTail

YieldExpression
         ::= Yield YieldTail

referenced by:


YieldTail:

TrailingComment Star AssignmentExpression & EOS

YieldTail
         ::= '&' EOS
           | ( TrailingComment* Star )? AssignmentExpression

referenced by:


ArrowFunction:

Async __ ArrowFunctionTail

ArrowFunction
         ::= ( Async __ )? ArrowFunctionTail

referenced by:


ArrowFunctionTail:

ThinArrowFunction Parameters ReturnTypeSuffix FatArrow FatArrowBody

ArrowFunctionTail
         ::= ThinArrowFunction
           | Parameters ReturnTypeSuffix? FatArrow FatArrowBody

referenced by:


FatArrow:

__ =>

FatArrow ::= __ '=>'

referenced by:


FatArrowBody:

ExplicitBlock ImplicitNestedBlock AssignmentExpression EmptyBlock

FatArrowBody
         ::= ExplicitBlock
           | ImplicitNestedBlock
           | AssignmentExpression
           | EmptyBlock

referenced by:


ConditionalExpression:

ShortCircuitExpression TernaryRest

ConditionalExpression
         ::= ShortCircuitExpression TernaryRest?

referenced by:


TernaryRest:

! CoffeeBinaryExistentialEnabled & TrailingComment QuestionMark ExtendedExpression __ Colon ExtendedExpression NestedTernaryRest

TernaryRest
         ::= NestedTernaryRest
           | '!' CoffeeBinaryExistentialEnabled '&' ' ' TrailingComment* QuestionMark ExtendedExpression __ Colon ExtendedExpression

referenced by:


NestedTernaryRest:

PushIndent Nested QuestionMark ExtendedExpression Nested Colon ExtendedExpression PopIndent

NestedTernaryRest
         ::= PushIndent ( Nested QuestionMark ExtendedExpression Nested Colon ExtendedExpression )? PopIndent

referenced by:


ShortCircuitExpression:

BinaryOpExpression

ShortCircuitExpression
         ::= BinaryOpExpression

referenced by:


PipelineExpression:

__ PipelineHeadItem __ Pipe PipelineTailItem __ __ PipelineTailItem

PipelineExpression
         ::= __ PipelineHeadItem __ Pipe ( __ PipelineTailItem __ Pipe )* __ PipelineTailItem

referenced by:


PipelineHeadItem:

NonPipelineExtendedExpression ParenthesizedExpression

PipelineHeadItem
         ::= NonPipelineExtendedExpression
           | ParenthesizedExpression

referenced by:


PipelineTailItem:

Await Yield Return PipelineHeadItem

PipelineTailItem
         ::= Await
           | Yield
           | Return
           | PipelineHeadItem

referenced by:


PrimaryExpression:

ObjectLiteral ThisLiteral Literal ArrayLiteral IdentifierReference FunctionExpression ClassExpression RegularExpressionLiteral TemplateLiteral ParenthesizedExpression JSXImplicitFragment

PrimaryExpression
         ::= ObjectLiteral
           | ThisLiteral
           | Literal
           | ArrayLiteral
           | IdentifierReference
           | FunctionExpression
           | ClassExpression
           | RegularExpressionLiteral
           | TemplateLiteral
           | ParenthesizedExpression
           | JSXImplicitFragment

referenced by:


ParenthesizedExpression:

OpenParen ExtendedExpression TrailingComment PostfixStatement __ CloseParen

ParenthesizedExpression
         ::= OpenParen ExtendedExpression ( TrailingComment* PostfixStatement )? __ CloseParen

referenced by:


ClassDeclaration:

ClassExpression

ClassDeclaration
         ::= ClassExpression

referenced by:


ClassExpression:

Decorators Abstract __ Class ClassBinding ClassHeritage ClassBody

ClassExpression
         ::= Decorators? ( Abstract __ )? Class ClassBinding? ClassHeritage? ClassBody

referenced by:


ClassBinding:

! EOS BindingIdentifier TypeParameters

ClassBinding
         ::= '!' EOS BindingIdentifier TypeParameters?

referenced by:


ClassHeritage:

ExtendsClause ImplementsClause ImplementsClause

ClassHeritage
         ::= ExtendsClause ImplementsClause?
           | ImplementsClause

referenced by:


ExtendsClause:

ExtendsToken __ ExtendsTarget

ExtendsClause
         ::= ExtendsToken __ ExtendsTarget

referenced by:


ExtendsToken:

Loc __ OpenAngleBracket __ Extends

ExtendsToken
         ::= Loc __ OpenAngleBracket ' '?
           | __ Extends

referenced by:


ExtendsTarget:

ExpressionWithIndentedApplicationSuppressed TypeArguments

ExtendsTarget
         ::= ExpressionWithIndentedApplicationSuppressed TypeArguments?

referenced by:


ImplementsClause:

__ ImplementsToken ImplementsTarget Comma

ImplementsClause
         ::= __ ImplementsToken ImplementsTarget ( Comma ImplementsTarget )*

referenced by:


ImplementsToken:

implements NonIdContinue

ImplementsToken
         ::= 'implements' NonIdContinue

referenced by:


ImplementsTarget:

__ IdentifierName Dot TypeArguments

ImplementsTarget
         ::= __ IdentifierName ( Dot IdentifierName )* TypeArguments?

referenced by:


ClassBody:

__ OpenBrace NestedClassElements __ CloseBrace InsertOpenBrace NestedClassElements InsertNewline InsertIndent InsertCloseBrace

ClassBody
         ::= __ OpenBrace NestedClassElements? __ CloseBrace
           | InsertOpenBrace NestedClassElements? InsertNewline InsertIndent InsertCloseBrace

referenced by:


NestedClassElements:

PushIndent NestedClassElement PopIndent

NestedClassElements
         ::= PushIndent NestedClassElement* PopIndent

referenced by:


NestedClassElement:

Nested ClassElement StatementDelimiter

NestedClassElement
         ::= Nested ClassElement StatementDelimiter

referenced by:


ClassElement:

Decorators AccessModifier Static TrailingComment ClassElementDefinition Static BracedBlock

ClassElement
         ::= Decorators? AccessModifier? ( Static TrailingComment* )? ClassElementDefinition
           | Static BracedBlock

referenced by:


ClassElementDefinition:

MethodDefinition FieldDefinition

ClassElementDefinition
         ::= MethodDefinition
           | FieldDefinition

referenced by:


AccessModifier:

Public Private Protected __

AccessModifier
         ::= ( Public | Private | Protected ) __

referenced by:


FieldDefinition:

Abstract TrailingComment Readonly TrailingComment ClassElementName TypeSuffix Initializer CoffeeClassesEnabled ClassElementName __ Colon __ AssignmentExpression InsertReadonly ClassElementName TypeSuffix __ ConstAssignment ExtendedExpression

FieldDefinition
         ::= CoffeeClassesEnabled ClassElementName __ Colon __ AssignmentExpression
           | InsertReadonly ClassElementName TypeSuffix? __ ConstAssignment ExtendedExpression
           | ( Abstract TrailingComment* )? ( Readonly TrailingComment* )? ClassElementName TypeSuffix? Initializer?

referenced by:


ThisLiteral:

This AtThis # IdentifierName AtThis

ThisLiteral
         ::= This
           | AtThis '#'? IdentifierName
           | AtThis

referenced by:


AtThis:

At

AtThis   ::= At

referenced by:


LeftHandSideExpression:

New ! . __ CallExpression

LeftHandSideExpression
         ::= ( New '!' '.' __ )* CallExpression

referenced by:


CallExpression:

super ArgumentsWithTrailingMemberExpressions CallExpressionRest import ArgumentsWithTrailingMemberExpressions CallExpressionRest MemberExpression NonSuppressedTrailingMemberExpressions CallExpressionRest

CallExpression
         ::= 'super' ArgumentsWithTrailingMemberExpressions CallExpressionRest*
           | 'import' ArgumentsWithTrailingMemberExpressions CallExpressionRest*
           | MemberExpression NonSuppressedTrailingMemberExpressions CallExpressionRest*

referenced by:


CallExpressionRest:

MemberExpressionRest TemplateLiteral OptionalShorthand NonNullAssertion ArgumentsWithTrailingMemberExpressions

CallExpressionRest
         ::= MemberExpressionRest
           | TemplateLiteral
           | ( OptionalShorthand | NonNullAssertion )? ArgumentsWithTrailingMemberExpressions

referenced by:


OptionalShorthand:

QuestionMark Dot InsertDot

OptionalShorthand
         ::= QuestionMark ( Dot | InsertDot )

referenced by:


NonNullAssertion:

!

NonNullAssertion
         ::= '!'

referenced by:


MemberExpression:

PrimaryExpression MemberExpressionRest SuperProperty MetaProperty

MemberExpression
         ::= PrimaryExpression MemberExpressionRest*
           | SuperProperty
           | MetaProperty

referenced by:


MemberExpressionRest:

OptionalShorthand NonNullAssertion MemberBracketContent PropertyAccess NonNullAssertion

MemberExpressionRest
         ::= ( OptionalShorthand | NonNullAssertion )? MemberBracketContent
           | PropertyAccess
           | NonNullAssertion

referenced by:


MemberBracketContent:

OpenBracket SliceParameters ExtendedExpression __ CloseBracket

MemberBracketContent
         ::= OpenBracket ( SliceParameters | ExtendedExpression ) __ CloseBracket

referenced by:


SliceParameters:

ExtendedExpression __ DotDotDot DotDot ExtendedExpression Loc __ DotDotDot DotDot ExtendedExpression

SliceParameters
         ::= ExtendedExpression __ ( DotDotDot | DotDot ) ExtendedExpression?
           | Loc __ ( DotDotDot | DotDot ) ExtendedExpression

referenced by:


PropertyAccess:

QuestionMark NonNullAssertion Dot IdentifierName PrivateIdentifier CoffeePrototypeEnabled DoubleColon IdentifierName

PropertyAccess
         ::= ( QuestionMark | NonNullAssertion )? Dot ( IdentifierName | PrivateIdentifier )
           | CoffeePrototypeEnabled DoubleColon IdentifierName?

referenced by:


SuperProperty:

super[ ExtendedExpression __ CloseBracket super ! QuestionMark NonNullAssertion PropertyAccess

SuperProperty
         ::= 'super[' ExtendedExpression __ CloseBracket
           | 'super' '!' ( QuestionMark | NonNullAssertion ) PropertyAccess

referenced by:


MetaProperty:

New Dot Target import.meta NonIdContinue

MetaProperty
         ::= New Dot Target
           | 'import.meta' NonIdContinue

referenced by:


Parameters:

NonEmptyParameters

Parameters
         ::= NonEmptyParameters
           | ''

referenced by:


NonEmptyParameters:

TypeParameters OpenParen ThisType ParameterElement FunctionRestParameter ParameterElement __ CloseParen

NonEmptyParameters
         ::= TypeParameters? OpenParen ThisType? ParameterElement* FunctionRestParameter? ParameterElement* __ CloseParen

referenced by:


FunctionRestParameter:

BindingRestElement TypeSuffix ParameterElementDelimiter

FunctionRestParameter
         ::= BindingRestElement TypeSuffix? ParameterElementDelimiter

referenced by:


ParameterElement:

__ AccessModifier BindingIdentifier BindingPattern TypeSuffix Initializer ParameterElementDelimiter

ParameterElement
         ::= __ AccessModifier? ( BindingIdentifier | BindingPattern ) TypeSuffix? Initializer? ParameterElementDelimiter

referenced by:


ParameterElementDelimiter:

_ Comma & __ ) & EOS InsertComma

ParameterElementDelimiter
         ::= _* Comma
           | '&' __ ')'
           | '&' EOS InsertComma

referenced by:


BindingIdentifier:

__ NWBindingIdentifier

BindingIdentifier
         ::= __ NWBindingIdentifier

referenced by:


NWBindingIdentifier:

At AtIdentifierRef Identifier

NWBindingIdentifier
         ::= At AtIdentifierRef
           | Identifier

referenced by:


AtIdentifierRef:

ReservedWord IdentifierName

AtIdentifierRef
         ::= ReservedWord
           | IdentifierName

referenced by:


BindingPattern:

__ ObjectBindingPattern __ ArrayBindingPattern

BindingPattern
         ::= __ ObjectBindingPattern
           | __ ArrayBindingPattern

referenced by:


ObjectBindingPattern:

OpenBrace ObjectBindingPatternContent __ CloseBrace

ObjectBindingPattern
         ::= OpenBrace ObjectBindingPatternContent __ CloseBrace

referenced by:


ObjectBindingPatternContent:

BindingProperty BindingRestProperty BindingProperty NestedBindingProperties

ObjectBindingPatternContent
         ::= NestedBindingProperties
           | BindingProperty* BindingRestProperty? BindingProperty*

referenced by:


ArrayBindingPattern:

OpenBracket ArrayBindingPatternContent __ CloseBracket

ArrayBindingPattern
         ::= OpenBracket ArrayBindingPatternContent __ CloseBracket

referenced by:


ArrayBindingPatternContent:

BindingElement Elision BindingRestElement ArrayElementDelimiter BindingElement Elision NestedBindingElements

ArrayBindingPatternContent
         ::= NestedBindingElements
           | ( BindingElement | Elision )* ( BindingRestElement ArrayElementDelimiter )? ( BindingElement | Elision )*

referenced by:


Elision:

__ Comma

Elision  ::= __ Comma

referenced by:


NestedBindingProperties:

PushIndent NestedBindingProperty NestedBindingRestProperty NestedBindingProperty PopIndent

NestedBindingProperties
         ::= PushIndent NestedBindingProperty* NestedBindingRestProperty? NestedBindingProperty* PopIndent

referenced by:


NestedBindingProperty:

Nested BindingProperty

NestedBindingProperty
         ::= Nested BindingProperty

referenced by:


BindingProperty:

__ PropertyName __ Colon BindingIdentifier BindingPattern Initializer ObjectPropertyDelimiter BindingIdentifier Initializer ObjectPropertyDelimiter

BindingProperty
         ::= __ PropertyName __ Colon ( BindingIdentifier | BindingPattern ) Initializer? ObjectPropertyDelimiter
           | BindingIdentifier Initializer? ObjectPropertyDelimiter

referenced by:


NestedBindingRestProperty:

Nested BindingRestProperty

NestedBindingRestProperty
         ::= Nested BindingRestProperty

referenced by:


BindingRestProperty:

__ DotDotDot BindingIdentifier ObjectPropertyDelimiter __ BindingIdentifier DotDotDot ObjectPropertyDelimiter

BindingRestProperty
         ::= __ DotDotDot BindingIdentifier ObjectPropertyDelimiter
           | __ BindingIdentifier DotDotDot ObjectPropertyDelimiter

referenced by:


NestedBindingElements:

PushIndent NestedBindingElement Nested BindingRestElement ArrayElementDelimiter NestedBindingElement PopIndent

NestedBindingElements
         ::= PushIndent NestedBindingElement* ( Nested BindingRestElement ArrayElementDelimiter )? NestedBindingElement* PopIndent

referenced by:


NestedBindingElement:

Nested BindingElement

NestedBindingElement
         ::= Nested BindingElement

referenced by:


BindingElement:

BindingIdentifier BindingPattern Initializer ArrayElementDelimiter

BindingElement
         ::= ( BindingIdentifier | BindingPattern ) Initializer? ArrayElementDelimiter

referenced by:


BindingRestElement:

__ DotDotDot BindingIdentifier BindingPattern EmptyBindingPattern __ BindingIdentifier BindingPattern DotDotDot

BindingRestElement
         ::= __ DotDotDot ( BindingIdentifier | BindingPattern | EmptyBindingPattern )
           | __ ( BindingIdentifier | BindingPattern ) DotDotDot

referenced by:


EmptyBindingPattern:

EmptyBindingPattern
         ::= ''

referenced by:


FunctionDeclaration:

FunctionExpression

FunctionDeclaration
         ::= FunctionExpression

referenced by:


FunctionSignature:

Async _ Function _ Star _ NWBindingIdentifier _ Parameters ReturnTypeSuffix

FunctionSignature
         ::= ( Async _? )? Function ( _? Star )? ( _? NWBindingIdentifier )? _? Parameters ReturnTypeSuffix?

referenced by:


FunctionExpression:

FunctionSignature BracedBlock AmpersandUnaryPrefix Ampersand AmpersandBlockRHS

FunctionExpression
         ::= FunctionSignature BracedBlock?
           | AmpersandUnaryPrefix? Ampersand AmpersandBlockRHS?

referenced by:


AmpersandBlockRHS:

! _ CallExpressionRest ! [&] BinaryOpRHS

AmpersandBlockRHS
         ::= ( '!' _ CallExpressionRest+ )? ( '!' '[&]' BinaryOpRHS+ )?

referenced by:


AmpersandUnaryPrefix:

[!~+-]+

AmpersandUnaryPrefix
         ::= '[!~+-]+'

referenced by:


ThinArrowFunction:

Parameters ReturnTypeSuffix _ Arrow BracedOrEmptyBlock

ThinArrowFunction
         ::= Parameters ReturnTypeSuffix? _* Arrow BracedOrEmptyBlock

referenced by:


Arrow:

->

Arrow    ::= '->'

referenced by:


ExplicitBlock:

__ OpenBrace NestedBlockStatements __ CloseBrace

ExplicitBlock
         ::= __ OpenBrace NestedBlockStatements __ CloseBrace

referenced by:


ImplicitNestedBlock:

InsertOpenBrace NestedBlockStatements InsertNewline InsertIndent InsertCloseBrace

ImplicitNestedBlock
         ::= InsertOpenBrace NestedBlockStatements InsertNewline InsertIndent InsertCloseBrace

referenced by:


Block:

TrailingComment Statement ExplicitBlock ImplicitNestedBlock ThenClause

Block    ::= ExplicitBlock
           | ImplicitNestedBlock
           | ThenClause
           | TrailingComment* Statement

referenced by:


ThenClause:

Then SingleLineStatements

ThenClause
         ::= Then SingleLineStatements

referenced by:


BracedOrEmptyBlock:

BracedBlock EmptyBlock

BracedOrEmptyBlock
         ::= BracedBlock
           | EmptyBlock

referenced by:


EmptyBlock:

InsertOpenBrace InsertCloseBrace

EmptyBlock
         ::= InsertOpenBrace InsertCloseBrace

referenced by:


BracedBlock:

TrailingComment OpenBrace BracedContent __ CloseBrace ImplicitNestedBlock InsertOpenBrace & EOS ObjectLiteral InsertCloseBrace InsertOpenBrace ! EOS SingleLineStatements InsertSpace InsertCloseBrace

BracedBlock
         ::= TrailingComment* OpenBrace BracedContent __ CloseBrace
           | ImplicitNestedBlock
           | InsertOpenBrace '&' EOS ObjectLiteral InsertCloseBrace
           | InsertOpenBrace '!' EOS SingleLineStatements InsertSpace InsertCloseBrace

referenced by:


SingleLineStatements:

_ Statement SemicolonDelimiter _ Statement SemicolonDelimiter

SingleLineStatements
         ::= ( _* Statement SemicolonDelimiter )* ( _* Statement SemicolonDelimiter? )?

referenced by:


BracedContent:

TrailingComment Statement NestedBlockStatements & __ }

BracedContent
         ::= NestedBlockStatements
           | TrailingComment* Statement
           | '&' __ '}'

referenced by:


NestedBlockStatements:

PushIndent NestedBlockStatement PopIndent

NestedBlockStatements
         ::= PushIndent NestedBlockStatement* PopIndent

referenced by:


NestedBlockStatement:

Nested StatementListItem StatementDelimiter

NestedBlockStatement
         ::= Nested StatementListItem StatementDelimiter

referenced by:


Literal:

LiteralContent

Literal  ::= LiteralContent

referenced by:


LiteralContent:

NullLiteral BooleanLiteral NumericLiteral StringLiteral

LiteralContent
         ::= NullLiteral
           | BooleanLiteral
           | NumericLiteral
           | StringLiteral

referenced by:


NullLiteral:

null NonIdContinue

NullLiteral
         ::= 'null' NonIdContinue

referenced by:


BooleanLiteral:

CoffeeBooleansEnabled CoffeeScriptBooleanLiteral true false NonIdContinue

BooleanLiteral
         ::= CoffeeBooleansEnabled CoffeeScriptBooleanLiteral
           | ( 'true' | 'false' ) NonIdContinue

referenced by:


CoffeeScriptBooleanLiteral:

yes on NonIdContinue no off NonIdContinue

CoffeeScriptBooleanLiteral
         ::= ( 'yes' | 'on' ) NonIdContinue
           | ( 'no' | 'off' ) NonIdContinue

referenced by:


Comma:

,

Comma    ::= ','

referenced by:


Identifier:

! ReservedWord IdentifierName

Identifier
         ::= '!' ReservedWord IdentifierName

referenced by:


IdentifierName:

/(?:\p{ID_Start}|[_$])(?:\p{ID_Continue}|[\u200C\u200D$])*/

IdentifierName
         ::= '/(?:\p{ID_Start}|[_$])(?:\p{ID_Continue}|[\u200C\u200D$])*/'

referenced by:


IdentifierReference:

Identifier

IdentifierReference
         ::= Identifier

referenced by:


UpcomingAssignment:

& __ = ! = >

UpcomingAssignment
         ::= '&' __ '=' '!' ( '=' | '>' )

referenced by:


ArrayLiteral:

ArrayBindingPattern UpcomingAssignment OpenBracket ArrayLiteralContent __ CloseBracket

ArrayLiteral
         ::= ArrayBindingPattern UpcomingAssignment
           | OpenBracket ArrayLiteralContent __ CloseBracket

referenced by:


RangeExpression:

ExtendedExpression __ DotDotDot DotDot ExtendedExpression

RangeExpression
         ::= ExtendedExpression __ ( DotDotDot | DotDot ) ExtendedExpression

referenced by:


ArrayLiteralContent:

RangeExpression NestedImplicitObjectLiteral Comma __ NestedElementList ElementList InsertComma NestedElementList

ArrayLiteralContent
         ::= RangeExpression
           | NestedImplicitObjectLiteral ( __ Comma NestedImplicitObjectLiteral )*
           | NestedElementList
           | ElementList InsertComma NestedElementList?

referenced by:


NestedElementList:

PushIndent NestedElement PopIndent

NestedElementList
         ::= PushIndent NestedElement* PopIndent

referenced by:


NestedElement:

Nested ElementList ArrayElementDelimiter

NestedElement
         ::= Nested ElementList ArrayElementDelimiter

referenced by:


ArrayElementDelimiter:

__ Comma & __ ] & EOS InsertComma

ArrayElementDelimiter
         ::= __ Comma
           | '&' __ ']'
           | '&' EOS InsertComma

referenced by:


ElementList:

ArrayElementExpression ElementListRest

ElementList
         ::= ArrayElementExpression ElementListRest*

referenced by:


ElementListRest:

__ Comma ArrayElementExpression

ElementListRest
         ::= __ Comma ArrayElementExpression

referenced by:


ArrayElementExpression:

JSXTag ExtendedExpression __ DotDotDot & ArrayElementDelimiter __ DotDotDot __ ExtendedExpression & ArrayElementDelimiter

ArrayElementExpression
         ::= JSXTag
           | ExtendedExpression? __ DotDotDot '&' ArrayElementDelimiter
           | ( ( __ DotDotDot __ )? ExtendedExpression )? '&' ArrayElementDelimiter

referenced by:


ObjectLiteral:

ObjectBindingPattern UpcomingAssignment BracedObjectLiteral NestedImplicitObjectLiteral InlineObjectLiteral

ObjectLiteral
         ::= ObjectBindingPattern UpcomingAssignment
           | BracedObjectLiteral
           | NestedImplicitObjectLiteral
           | InlineObjectLiteral

referenced by:


BracedObjectLiteral:

OpenBrace BracedObjectLiteralContent __ CloseBrace

BracedObjectLiteral
         ::= OpenBrace BracedObjectLiteralContent? __ CloseBrace

referenced by:


BracedObjectLiteralContent:

NestedPropertyDefinitions PropertyDefinitionList

BracedObjectLiteralContent
         ::= NestedPropertyDefinitions
           | PropertyDefinitionList

referenced by:


NestedImplicitObjectLiteral:

InsertOpenBrace NestedImplicitPropertyDefinitions InsertNewline InsertIndent InsertCloseBrace

NestedImplicitObjectLiteral
         ::= InsertOpenBrace NestedImplicitPropertyDefinitions InsertNewline InsertIndent InsertCloseBrace

referenced by:


NestedImplicitPropertyDefinitions:

PushIndent NestedImplicitPropertyDefinition PopIndent

NestedImplicitPropertyDefinitions
         ::= PushIndent NestedImplicitPropertyDefinition* PopIndent

referenced by:


NestedImplicitPropertyDefinition:

Nested NamedProperty ObjectPropertyDelimiter

NestedImplicitPropertyDefinition
         ::= Nested NamedProperty ObjectPropertyDelimiter

referenced by:


NestedPropertyDefinitions:

PushIndent NestedPropertyDefinition PopIndent

NestedPropertyDefinitions
         ::= PushIndent NestedPropertyDefinition* PopIndent

referenced by:


NestedPropertyDefinition:

Nested PropertyDefinition ObjectPropertyDelimiter

NestedPropertyDefinition
         ::= Nested ( PropertyDefinition ObjectPropertyDelimiter )+

referenced by:


InlineObjectLiteral:

InsertInlineOpenBrace SnugNamedProperty ImplicitInlineObjectPropertyDelimiter NamedProperty _ Samedent InsertCloseBrace

InlineObjectLiteral
         ::= InsertInlineOpenBrace SnugNamedProperty ImplicitInlineObjectPropertyDelimiter ( ( Samedent | _* ) NamedProperty ImplicitInlineObjectPropertyDelimiter )* InsertCloseBrace

referenced by:


ImplicitInlineObjectPropertyDelimiter:

TrailingComment Comma & _ Samedent NamedProperty InsertComma & __ : ) ] } ReservedWord & EOS

ImplicitInlineObjectPropertyDelimiter
         ::= TrailingComment* Comma
           | '&' ( Samedent | _* ) NamedProperty InsertComma
           | '&' __ ( ':' | ')' | ']' | '}' | ReservedWord )
           | '&' EOS

referenced by:


ObjectPropertyDelimiter:

_ Comma & __ } & EOS InsertComma

ObjectPropertyDelimiter
         ::= _* Comma
           | '&' __ '}'
           | '&' EOS InsertComma

referenced by:


PropertyDefinitionList:

PropertyDefinition ObjectPropertyDelimiter

PropertyDefinitionList
         ::= ( PropertyDefinition ObjectPropertyDelimiter )+

referenced by:


PropertyDefinition:

__ At IdentifierReference __ [!+-] IdentifierName __ NamedProperty __ MethodDefinition __ DotDotDot ExtendedExpression __ IdentifierReference

PropertyDefinition
         ::= __ At IdentifierReference
           | __ '[!+-]' IdentifierName
           | __ NamedProperty
           | __ MethodDefinition
           | __ DotDotDot ExtendedExpression
           | __ IdentifierReference

referenced by:


NamedProperty:

PropertyName __ Colon ExtendedExpression

NamedProperty
         ::= PropertyName __ Colon ExtendedExpression

referenced by:


SnugNamedProperty:

PropertyName Colon ExtendedExpression

SnugNamedProperty
         ::= PropertyName Colon ExtendedExpression

referenced by:


PropertyName:

NumericLiteral StringLiteral IdentifierName ComputedPropertyName

PropertyName
         ::= NumericLiteral
           | StringLiteral
           | IdentifierName
           | ComputedPropertyName

referenced by:


ComputedPropertyName:

OpenBracket ExtendedExpression __ CloseBracket

ComputedPropertyName
         ::= OpenBracket ExtendedExpression __ CloseBracket

referenced by:


Decorator:

AtAt IdentifierReference Arguments

Decorator
         ::= AtAt IdentifierReference Arguments?

referenced by:


Decorators:

__ Decorator __

Decorators
         ::= ( __ Decorator )+ __

referenced by:


MethodDefinition:

Abstract __ MethodSignature MethodSignature BracedOrEmptyBlock

MethodDefinition
         ::= Abstract __ MethodSignature
           | MethodSignature BracedOrEmptyBlock

referenced by:


MethodModifier:

GetOrSet TrailingComment Async __ Star __ Star __

MethodModifier
         ::= GetOrSet TrailingComment*
           | Async __ ( Star __ )?
           | Star __

referenced by:


MethodSignature:

MethodModifier ClassElementName _ NonEmptyParameters ReturnTypeSuffix ConstructorShorthand NonEmptyParameters

MethodSignature
         ::= ConstructorShorthand NonEmptyParameters
           | MethodModifier? ClassElementName _* NonEmptyParameters ReturnTypeSuffix?

referenced by:


ClassElementName:

PropertyName PrivateIdentifier

ClassElementName
         ::= PropertyName
           | PrivateIdentifier

referenced by:


PrivateIdentifier:

# IdentifierName

PrivateIdentifier
         ::= '#' IdentifierName

referenced by:


AssignmentOp:

AssignmentOpSymbol TrailingComment

AssignmentOp
         ::= AssignmentOpSymbol TrailingComment*

referenced by:


AssignmentOpSymbol:

**= *= /= %= += -= <<= >>>= >>= &&= &= ^= ||= |= ??= ?= = ! = CoffeeWordAssignmentOp

AssignmentOpSymbol
         ::= '**='
           | '*='
           | '/='
           | '%='
           | '+='
           | '-='
           | '<<='
           | '>>>='
           | '>>='
           | '&&='
           | '&='
           | '^='
           | '||='
           | '|='
           | '??='
           | '?='
           | '=' '!' '='
           | CoffeeWordAssignmentOp

referenced by:


CoffeeWordAssignmentOp:

and= or=

CoffeeWordAssignmentOp
         ::= 'and='
           | 'or='

referenced by:


BinaryOp:

BinaryOpSymbol

BinaryOp ::= BinaryOpSymbol

referenced by:


BinaryOpSymbol:

** * / %% % + - <= >= <? << /<(?!\p{ID_Start}|[_$])/ >>> >> > !== != isnt NonIdContinue === == and NonIdContinue && CoffeeOfEnabled of NonIdContinue or NonIdContinue || ?? CoffeeBinaryExistentialEnabled ? instanceof NonIdContinue CoffeeNotEnabled not NonIdContinue __ instanceof NonIdContinue ! CoffeeOfEnabled not NonIdContinue __ in NonIdContinue CoffeeOfEnabled not NonIdContinue __ of NonIdContinue is NonIdContinue __ in NonIdContinue CoffeeOfEnabled in NonIdContinue is NonIdContinue __ not NonIdContinue __ in NonIdContinue CoffeeOfEnabled not NonIdContinue __ in NonIdContinue ! CoffeeNotEnabled is NonIdContinue __ not NonIdContinue is NonIdContinue in NonIdContinue & ^ |

BinaryOpSymbol
         ::= '**'
           | '*'
           | '/'
           | '%%'
           | '%'
           | '+'
           | '-'
           | '<='
           | '>='
           | '<?' ' '?
           | '<<'
           | '/<(?!\p{ID_Start}|[_$])/'
           | '>>>'
           | '>>'
           | '>'
           | '!=='
           | '!='
           | 'isnt' NonIdContinue
           | '==='
           | '=='
           | 'and' NonIdContinue
           | '&&'
           | CoffeeOfEnabled 'of' NonIdContinue
           | 'or' NonIdContinue
           | '||'
           | '??'
           | CoffeeBinaryExistentialEnabled '?'
           | 'instanceof' NonIdContinue
           | CoffeeNotEnabled 'not' NonIdContinue __ 'instanceof' NonIdContinue
           | ( '!' CoffeeOfEnabled 'not' NonIdContinue __ 'in' NonIdContinue | CoffeeOfEnabled 'not' NonIdContinue __ 'of' NonIdContinue )
           | ( 'is' NonIdContinue __ 'in' NonIdContinue | CoffeeOfEnabled 'in' NonIdContinue )
           | ( 'is' NonIdContinue __ 'not' NonIdContinue __ 'in' NonIdContinue | CoffeeOfEnabled 'not' NonIdContinue __ 'in' NonIdContinue )
           | '!' CoffeeNotEnabled 'is' NonIdContinue __ 'not' NonIdContinue
           | 'is' NonIdContinue
           | 'in' NonIdContinue
           | '&'
           | '^'
           | '|'

referenced by:


UnaryOp:

/[!~+-](?!\s|[!~+-]*&)/ Await Delete Void Typeof __ Not

UnaryOp  ::= '/[!~+-](?!\s|[!~+-]*&)/'
           | ( Await | Delete | Void | Typeof ) __
           | Not

referenced by:


ModuleItem:

ImportDeclaration ExportDeclaration StatementListItem

ModuleItem
         ::= ImportDeclaration
           | ExportDeclaration
           | StatementListItem

referenced by:


StatementListItem:

Statement TrailingComment PostfixStatement Declaration

StatementListItem
         ::= Declaration
           | Statement ( TrailingComment* PostfixStatement )?

referenced by:


PostfixStatement:

ForClause IfClause LoopClause UnlessClause WhileClause

PostfixStatement
         ::= ForClause
           | IfClause
           | LoopClause
           | UnlessClause
           | WhileClause

referenced by:


Statement:

KeywordStatement VariableStatement IfStatement IterationStatement SwitchStatement TryStatement EmptyStatement ExpressionStatement BlockStatement

Statement
         ::= KeywordStatement
           | VariableStatement
           | IfStatement
           | IterationStatement
           | SwitchStatement
           | TryStatement
           | EmptyStatement
           | ExpressionStatement
           | BlockStatement

referenced by:


EmptyStatement:

TrailingComment & ;

EmptyStatement
         ::= TrailingComment* '&' ';'

referenced by:


BlockStatement:

ExplicitBlock ! __ =

BlockStatement
         ::= ExplicitBlock '!' __ '='

referenced by:


IfStatement:

IfClause UnlessClause Block ElseClause

IfStatement
         ::= ( IfClause | UnlessClause ) Block ElseClause?

referenced by:


ElseClause:

TrailingComment Else Block Samedent Else Block

ElseClause
         ::= Samedent Else Block
           | TrailingComment* Else Block

referenced by:


IfClause:

If Condition

IfClause ::= If Condition

referenced by:


UnlessClause:

Unless Condition

UnlessClause
         ::= Unless Condition

referenced by:


IfExpression:

IfClause ExpressionBlock ElseExpressionClause

IfExpression
         ::= IfClause ExpressionBlock ElseExpressionClause?

referenced by:


UnlessExpression:

UnlessClause ExpressionBlock ElseExpressionClause

UnlessExpression
         ::= UnlessClause ExpressionBlock ElseExpressionClause?

referenced by:


ElseExpressionClause:

TrailingComment Else Samedent Else ElseExpressionBlock

ElseExpressionClause
         ::= ( Samedent Else | TrailingComment* Else ) ElseExpressionBlock

referenced by:


ExpressionBlock:

InsertOpenParen NestedBlockExpressions InsertNewline InsertIndent InsertCloseParen Then ExtendedExpression

ExpressionBlock
         ::= InsertOpenParen NestedBlockExpressions InsertNewline InsertIndent InsertCloseParen
           | Then ExtendedExpression

referenced by:


ElseExpressionBlock:

InsertOpenParen NestedBlockExpressions InsertNewline InsertIndent InsertCloseParen ! EOS ExpressionWithIndentedApplicationSuppressed

ElseExpressionBlock
         ::= InsertOpenParen NestedBlockExpressions InsertNewline InsertIndent InsertCloseParen
           | '!' EOS ExpressionWithIndentedApplicationSuppressed

referenced by:


NestedBlockExpressions:

PushIndent NestedBlockExpression PopIndent

NestedBlockExpressions
         ::= PushIndent NestedBlockExpression* PopIndent

referenced by:


NestedBlockExpression:

Nested ExtendedExpression TrailingComment PostfixStatement ExpressionDelimiter

NestedBlockExpression
         ::= Nested ExtendedExpression ( TrailingComment* PostfixStatement )? ExpressionDelimiter

referenced by:


IterationStatement:

LoopStatement ! CoffeeDoEnabled DoWhileStatement WhileStatement ForStatement

IterationStatement
         ::= LoopStatement
           | '!' CoffeeDoEnabled DoWhileStatement
           | WhileStatement
           | ForStatement

referenced by:


IterationExpression:

IterationStatement

IterationExpression
         ::= IterationStatement

referenced by:


LoopStatement:

LoopClause Block

LoopStatement
         ::= LoopClause Block

referenced by:


LoopClause:

Loop

LoopClause
         ::= Loop

referenced by:


DoWhileStatement:

Do BracedBlock __ WhileClause

DoWhileStatement
         ::= Do BracedBlock __ WhileClause

referenced by:


WhileStatement:

WhileClause Block

WhileStatement
         ::= WhileClause Block

referenced by:


WhileClause:

While Until TrailingComment Condition

WhileClause
         ::= ( While | Until ) TrailingComment* Condition

referenced by:


ForStatement:

ForClause Block

ForStatement
         ::= ForClause Block

referenced by:


ForClause:

For __ ForStatementControl

ForClause
         ::= For __ ForStatementControl

referenced by:


ForStatementControl:

! CoffeeForLoopsEnabled ForStatementParameters CoffeeForLoopsEnabled CoffeeForStatementParameters WhenCondition

ForStatementControl
         ::= '!' CoffeeForLoopsEnabled ForStatementParameters
           | CoffeeForLoopsEnabled CoffeeForStatementParameters WhenCondition?

referenced by:


WhenCondition:

__ When ExtendedExpression

WhenCondition
         ::= __ When ExtendedExpression

referenced by:


CoffeeForStatementParameters:

Await __ InsertOpenParen CoffeeForDeclaration CoffeeForIndex __ In Of From ExtendedExpression __ By ExtendedExpression InsertCloseParen

CoffeeForStatementParameters
         ::= ( Await __ )? InsertOpenParen CoffeeForDeclaration CoffeeForIndex? __ ( In | Of | From ) ExtendedExpression ( __ By ExtendedExpression )? InsertCloseParen

referenced by:


CoffeeForIndex:

TrailingComment Comma TrailingComment BindingIdentifier

CoffeeForIndex
         ::= TrailingComment* Comma TrailingComment* BindingIdentifier

referenced by:


CoffeeForDeclaration:

__ own NonIdContinue ForBinding

CoffeeForDeclaration
         ::= ( __ 'own' NonIdContinue )? ForBinding

referenced by:


ForStatementParameters:

OpenParen __ LexicalDeclaration VariableStatement Expression __ Semicolon Expression Semicolon Expression __ CloseParen InsertOpenParen __ LexicalDeclaration VariableStatement Expression __ Semicolon Expression Semicolon ! EOS Expression InsertCloseParen Await __ OpenParen __ ForInOfDeclaration __ In Of ExpressionWithIndentedApplicationSuppressed __ CloseParen Await __ InsertOpenParen ForInOfDeclaration __ In Of ExpressionWithIndentedApplicationSuppressed InsertCloseParen

ForStatementParameters
         ::= OpenParen __ ( LexicalDeclaration | VariableStatement | Expression? ) __ Semicolon Expression? Semicolon Expression? __ CloseParen
           | InsertOpenParen __ ( LexicalDeclaration | VariableStatement | Expression? ) __ Semicolon Expression? Semicolon ( '!' EOS Expression )? InsertCloseParen
           | ( Await __ )? OpenParen __ ForInOfDeclaration __ ( In | Of ) ExpressionWithIndentedApplicationSuppressed __ CloseParen
           | ( Await __ )? InsertOpenParen ForInOfDeclaration __ ( In | Of ) ExpressionWithIndentedApplicationSuppressed InsertCloseParen

referenced by:


ForInOfDeclaration:

Var ForBinding ForDeclaration LeftHandSideExpression

ForInOfDeclaration
         ::= Var ForBinding
           | ForDeclaration
           | LeftHandSideExpression

referenced by:


ForDeclaration:

LetOrConst NonIdContinue ForBinding InsertConst ForBinding /(?=[\s\)])/

ForDeclaration
         ::= LetOrConst NonIdContinue ForBinding
           | InsertConst ForBinding '/(?=[\s\)])/'

referenced by:


ForBinding:

BindingIdentifier BindingPattern

ForBinding
         ::= BindingIdentifier
           | BindingPattern

referenced by:


SwitchStatement:

Switch EmptyCondition Condition CaseBlock

SwitchStatement
         ::= Switch ( EmptyCondition | Condition ) CaseBlock

referenced by:


EmptyCondition:

& EOS

EmptyCondition
         ::= '&' EOS

referenced by:


SwitchExpression:

SwitchStatement

SwitchExpression
         ::= SwitchStatement

referenced by:


CaseBlock:

__ OpenBrace NestedCaseClauses __ CloseBrace InsertOpenBrace NestedCaseClauses InsertNewline InsertIndent InsertCloseBrace

CaseBlock
         ::= __ OpenBrace NestedCaseClauses __ CloseBrace
           | InsertOpenBrace NestedCaseClauses InsertNewline InsertIndent InsertCloseBrace

referenced by:


NestedCaseClauses:

PushIndent NestedCaseClause PopIndent

NestedCaseClauses
         ::= PushIndent NestedCaseClause* PopIndent

referenced by:


NestedCaseClause:

Nested CaseClause

NestedCaseClause
         ::= Nested CaseClause

referenced by:


CaseClause:

Case CaseExpressionList NestedBlockStatements NoExpressions When CaseExpressionList InsertOpenBrace ThenClause NestedBlockStatements NoExpressions InsertBreak InsertNewline InsertIndent InsertCloseBrace Default ImpliedColon NestedBlockStatements NoExpressions Else ImpliedColon InsertOpenBrace NestedBlockStatements SingleLineStatements InsertNewline InsertIndent InsertCloseBrace

CaseClause
         ::= Case CaseExpressionList ( NestedBlockStatements | NoExpressions )
           | When CaseExpressionList InsertOpenBrace ( ThenClause | NestedBlockStatements | NoExpressions ) InsertBreak InsertNewline InsertIndent InsertCloseBrace
           | Default ImpliedColon ( NestedBlockStatements | NoExpressions )
           | Else ImpliedColon InsertOpenBrace ( NestedBlockStatements | SingleLineStatements ) InsertNewline InsertIndent InsertCloseBrace

referenced by:


CaseExpressionList:

_ ExpressionWithIndentedApplicationSuppressed ImpliedColon Comma __

CaseExpressionList
         ::= _* ExpressionWithIndentedApplicationSuppressed ImpliedColon ( __ Comma ExpressionWithIndentedApplicationSuppressed ImpliedColon )*

referenced by:


NoExpressions:

NoExpressions
         ::= ''

referenced by:


ImpliedColon:

__ Colon

ImpliedColon
         ::= __ Colon
           | ''

referenced by:


TryStatement:

Try BracedBlock CatchClause Finally

TryStatement
         ::= Try BracedBlock CatchClause? Finally?

referenced by:


TryExpression:

TryStatement

TryExpression
         ::= TryStatement

referenced by:


CatchClause:

__ Catch CatchBind BracedBlock

CatchClause
         ::= __ Catch CatchBind? BracedBlock

referenced by:


CatchBind:

! EOS TrailingComment InsertOpenParen CatchParameter InsertCloseParen __ OpenParen __ CatchParameter __ CloseParen

CatchBind
         ::= __ OpenParen __ CatchParameter __ CloseParen
           | '!' EOS TrailingComment* InsertOpenParen CatchParameter InsertCloseParen

referenced by:


Finally:

__ finally NonIdContinue BracedBlock

Finally  ::= __ 'finally' NonIdContinue BracedBlock

referenced by:


CatchParameter:

BindingIdentifier TypeSuffix BindingPattern TypeSuffix

CatchParameter
         ::= BindingIdentifier TypeSuffix?
           | BindingPattern TypeSuffix?

referenced by:


Condition:

ParenthesizedExpression ! TrailingComment BinaryOp AssignmentOp Dot QuestionMark InsertOpenParen ExpressionWithIndentedApplicationSuppressed InsertCloseParen

Condition
         ::= ParenthesizedExpression '!' TrailingComment* ( BinaryOp | AssignmentOp | Dot | QuestionMark )
           | InsertOpenParen ExpressionWithIndentedApplicationSuppressed InsertCloseParen

referenced by:


ExpressionWithIndentedApplicationSuppressed:

SuppressIndentedApplication ExtendedExpression

ExpressionWithIndentedApplicationSuppressed
         ::= SuppressIndentedApplication ExtendedExpression?

referenced by:


SuppressIndentedApplication:

SuppressIndentedApplication
         ::= ''

referenced by:


IndentedApplicationAllowed:

IndentedApplicationAllowed
         ::= ''

referenced by:


SuppressTrailingMemberProperty:

SuppressTrailingMemberProperty
         ::= ''

referenced by:


TrailingMemberPropertyAllowed:

TrailingMemberPropertyAllowed
         ::= ''

referenced by:


ExpressionStatement:

Expression

ExpressionStatement
         ::= Expression

referenced by:


KeywordStatement:

break NonIdContinue continue NonIdContinue debugger NonIdContinue Return MaybeNestedExpression Throw ExtendedExpression

KeywordStatement
         ::= 'break' NonIdContinue
           | 'continue' NonIdContinue
           | 'debugger' NonIdContinue
           | Return MaybeNestedExpression?
           | Throw ExtendedExpression

referenced by:


DebuggerExpression:

debugger NonIdContinue

DebuggerExpression
         ::= 'debugger' NonIdContinue

referenced by:


ThrowExpression:

Throw ExtendedExpression

ThrowExpression
         ::= Throw ExtendedExpression

referenced by:


MaybeNestedExpression:

! EOS ExtendedExpression & EOS ObjectLiteral & EOS InsertSpace InsertOpenParen PushIndent Nested ExtendedExpression PopIndent InsertNewline InsertIndent InsertCloseParen

MaybeNestedExpression
         ::= '!' EOS ExtendedExpression
           | '&' EOS ObjectLiteral
           | '&' EOS InsertSpace InsertOpenParen PushIndent Nested ExtendedExpression PopIndent InsertNewline InsertIndent InsertCloseParen

referenced by:


ImportDeclaration:

Import __ TypeKeyword __ ImportClause __ FromClause Import __ ImportClause __ FromClause Import __ ModuleSpecifier ImpliedImport ImportClause __ FromClause

ImportDeclaration
         ::= Import __ TypeKeyword __ ImportClause __ FromClause
           | Import __ ImportClause __ FromClause
           | Import __ ModuleSpecifier
           | ImpliedImport ImportClause __ FromClause

referenced by:


ImpliedImport:

ImpliedImport
         ::= ''

referenced by:


ImportClause:

ImportedBinding __ Comma __ NameSpaceImport NamedImports NameSpaceImport NamedImports

ImportClause
         ::= ImportedBinding ( __ Comma __ ( NameSpaceImport | NamedImports ) )?
           | NameSpaceImport
           | NamedImports

referenced by:


NameSpaceImport:

Star ImportAsToken __ ImportedBinding

NameSpaceImport
         ::= Star ImportAsToken __ ImportedBinding

referenced by:


NamedImports:

OpenBrace TypeAndImportSpecifier __ Comma __ CloseBrace

NamedImports
         ::= OpenBrace TypeAndImportSpecifier* ( __ Comma )? __ CloseBrace

referenced by:


FromClause:

From __ ModuleSpecifier

FromClause
         ::= From __ ModuleSpecifier

referenced by:


TypeAndImportSpecifier:

__ TypeKeyword ImportSpecifier

TypeAndImportSpecifier
         ::= ( __ TypeKeyword )? ImportSpecifier

referenced by:


ImportSpecifier:

__ ModuleExportName ImportAsToken __ ImportedBinding ObjectPropertyDelimiter __ ImportedBinding ObjectPropertyDelimiter

ImportSpecifier
         ::= __ ModuleExportName ImportAsToken __ ImportedBinding ObjectPropertyDelimiter
           | __ ImportedBinding ObjectPropertyDelimiter

referenced by:


ImportAsToken:

__ As Loc __ Colon

ImportAsToken
         ::= __ As
           | Loc __ Colon ' '?

referenced by:


ModuleExportName:

StringLiteral IdentifierName

ModuleExportName
         ::= StringLiteral
           | IdentifierName

referenced by:


ModuleSpecifier:

UnprocessedModuleSpecifier

ModuleSpecifier
         ::= UnprocessedModuleSpecifier

referenced by:


UnprocessedModuleSpecifier:

BasicStringLiteral UnquotedSpecifier

UnprocessedModuleSpecifier
         ::= BasicStringLiteral
           | UnquotedSpecifier

referenced by:


UnquotedSpecifier:

[^;"\s]+

UnquotedSpecifier
         ::= '[^;"\s]+'

referenced by:


ImportedBinding:

BindingIdentifier

ImportedBinding
         ::= BindingIdentifier

referenced by:


ExportDeclaration:

Export __ default NonIdContinue __ HoistableDeclaration ClassDeclaration ExtendedExpression Export __ ExportFromClause __ FromClause Export __ Declaration TypeAndNamedExports VariableStatement ExportVarDec

ExportDeclaration
         ::= Export __ 'default' NonIdContinue __ ( HoistableDeclaration | ClassDeclaration | ExtendedExpression )
           | Export __ ExportFromClause __ FromClause
           | Export __ ( Declaration | TypeAndNamedExports | VariableStatement | ExportVarDec )

referenced by:


ExportVarDec:

InsertVar VariableDeclarationList

ExportVarDec
         ::= InsertVar VariableDeclarationList

referenced by:


ExportFromClause:

Star __ As __ ModuleExportName TypeAndNamedExports

ExportFromClause
         ::= Star ( __ As __ ModuleExportName )?
           | TypeAndNamedExports

referenced by:


TypeAndNamedExports:

TypeKeyword __ NamedExports

TypeAndNamedExports
         ::= ( TypeKeyword __ )? NamedExports

referenced by:


NamedExports:

OpenBrace ExportSpecifier __ Comma __ CloseBrace InsertInlineOpenBrace ImplicitExportSpecifier _ InsertCloseBrace

NamedExports
         ::= OpenBrace ExportSpecifier* ( __ Comma )? __ CloseBrace
           | InsertInlineOpenBrace ImplicitExportSpecifier ( _ ImplicitExportSpecifier )* InsertCloseBrace

referenced by:


ExportSpecifier:

__ TypeKeyword __ ModuleExportName __ As __ ModuleExportName ObjectPropertyDelimiter

ExportSpecifier
         ::= __ ( TypeKeyword __ )? ModuleExportName ( __ As __ ModuleExportName )? ObjectPropertyDelimiter

referenced by:


ImplicitExportSpecifier:

! default ModuleExportName __ As __ ModuleExportName & __ From ImplicitInlineObjectPropertyDelimiter

ImplicitExportSpecifier
         ::= '!' 'default' ModuleExportName ( __ As __ ModuleExportName )? ( '&' __ From | ImplicitInlineObjectPropertyDelimiter )

referenced by:


Declaration:

HoistableDeclaration ClassDeclaration LexicalDeclaration TypeDeclaration

Declaration
         ::= HoistableDeclaration
           | ClassDeclaration
           | LexicalDeclaration
           | TypeDeclaration

referenced by:


HoistableDeclaration:

FunctionDeclaration

HoistableDeclaration
         ::= FunctionDeclaration

referenced by:


LexicalDeclaration:

LetOrConst LexicalBinding Comma __ InsertConst BindingPattern BindingIdentifier TypeSuffix __ ConstAssignment ExtendedExpression InsertLet BindingPattern BindingIdentifier TypeSuffix __ LetAssignment ExtendedExpression

LexicalDeclaration
         ::= LetOrConst LexicalBinding ( __ Comma LexicalBinding )*
           | InsertConst ( BindingPattern | BindingIdentifier ) TypeSuffix? __ ConstAssignment ExtendedExpression
           | InsertLet ( BindingPattern | BindingIdentifier ) TypeSuffix? __ LetAssignment ExtendedExpression

referenced by:


ConstAssignment:

:=

ConstAssignment
         ::= ':='

referenced by:


LetAssignment:

.=

LetAssignment
         ::= '.='

referenced by:


LexicalBinding:

BindingPattern TypeSuffix Initializer BindingIdentifier TypeSuffix Initializer

LexicalBinding
         ::= BindingPattern TypeSuffix? Initializer
           | BindingIdentifier TypeSuffix? Initializer?

referenced by:


Initializer:

__ Equals ExtendedExpression

Initializer
         ::= __ Equals ExtendedExpression

referenced by:


VariableStatement:

Var __ VariableDeclarationList

VariableStatement
         ::= Var __ VariableDeclarationList

referenced by:


VariableDeclarationList:

VariableDeclaration __ Comma __

VariableDeclarationList
         ::= VariableDeclaration ( __ Comma __ VariableDeclaration )*

referenced by:


VariableDeclaration:

BindingPattern TypeSuffix Initializer BindingIdentifier TypeSuffix Initializer

VariableDeclaration
         ::= BindingPattern TypeSuffix? Initializer
           | BindingIdentifier TypeSuffix? Initializer?

referenced by:


NumericLiteral:

NumericLiteralKind

NumericLiteral
         ::= NumericLiteralKind

referenced by:


NumericLiteralKind:

DecimalBigIntegerLiteral BinaryIntegerLiteral OctalIntegerLiteral HexLiteral DecimalLiteral

NumericLiteralKind
         ::= DecimalBigIntegerLiteral
           | BinaryIntegerLiteral
           | OctalIntegerLiteral
           | HexLiteral
           | DecimalLiteral

referenced by:


DecimalBigIntegerLiteral:

/(?:0|[1-9](?:_[0-9]|[0-9])*)n/

DecimalBigIntegerLiteral
         ::= '/(?:0|[1-9](?:_[0-9]|[0-9])*)n/'

referenced by:


DecimalLiteral:

/(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\.(?:\p{ID_Start}|[_$]))/ /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\.(?:[0-9](?:_[0-9]|[0-9])*))?/ ExponentPart /(?:\.[0-9](?:_[0-9]|[0-9])*)/ ExponentPart

DecimalLiteral
         ::= '/(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\.(?:\p{ID_Start}|[_$]))/'
           | '/(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\.(?:[0-9](?:_[0-9]|[0-9])*))?/' ExponentPart?
           | '/(?:\.[0-9](?:_[0-9]|[0-9])*)/' ExponentPart?

referenced by:


ExponentPart:

/(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/

ExponentPart
         ::= '/(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/'

referenced by:


BinaryIntegerLiteral:

/0[bB][01](?:[01]|_[01])*n?/

BinaryIntegerLiteral
         ::= '/0[bB][01](?:[01]|_[01])*n?/'

referenced by:


OctalIntegerLiteral:

/0[oO][0-7](?:[0-7]|_[0-7])*n?/

OctalIntegerLiteral
         ::= '/0[oO][0-7](?:[0-7]|_[0-7])*n?/'

referenced by:


HexLiteral:

/0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/

HexLiteral
         ::= '/0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/'

referenced by:


StringLiteral:

TripleDoubleQuote TripleDoubleStringCharacters CoffeeStringSubstitution TripleDoubleQuote TripleSingleQuote TripleSingleStringCharacters TripleSingleQuote CoffeeInterpolatedDoubleQuotedString BasicStringLiteral

StringLiteral
         ::= TripleDoubleQuote ( TripleDoubleStringCharacters | CoffeeStringSubstitution )* TripleDoubleQuote
           | TripleSingleQuote TripleSingleStringCharacters TripleSingleQuote
           | CoffeeInterpolatedDoubleQuotedString
           | BasicStringLiteral

referenced by:


BasicStringLiteral:

DoubleQuote DoubleStringCharacters DoubleQuote SingleQuote SingleStringCharacters SingleQuote

BasicStringLiteral
         ::= DoubleQuote DoubleStringCharacters DoubleQuote
           | SingleQuote SingleStringCharacters SingleQuote

referenced by:


DoubleStringCharacters:

/(?:\\.|[^"])*/

DoubleStringCharacters
         ::= '/(?:\\.|[^"])*/'

referenced by:


SingleStringCharacters:

/(?:\\.|[^'])*/

SingleStringCharacters
         ::= "/(?:\\.|[^'])*/"

referenced by:


TripleDoubleStringCharacters:

/(?:"(?!"")|#(?!\{)|\\.|[^#"])+/

TripleDoubleStringCharacters
         ::= '/(?:"(?!"")|#(?!\{)|\\.|[^#"])+/'

referenced by:


TripleSingleStringCharacters:

/(?:'(?!'')|\\.|[^'])*/

TripleSingleStringCharacters
         ::= "/(?:'(?!'')|\\.|[^'])*/"

referenced by:


CoffeeStringSubstitution:

CoffeeSubstitutionStart ExtendedExpression __ CloseBrace

CoffeeStringSubstitution
         ::= CoffeeSubstitutionStart ExtendedExpression __ CloseBrace

referenced by:


CoffeeInterpolatedDoubleQuotedString:

CoffeeInterpolationEnabled DoubleQuote CoffeeDoubleQuotedStringCharacters CoffeeStringSubstitution DoubleQuote

CoffeeInterpolatedDoubleQuotedString
         ::= CoffeeInterpolationEnabled DoubleQuote ( CoffeeDoubleQuotedStringCharacters | CoffeeStringSubstitution )* DoubleQuote

referenced by:


CoffeeDoubleQuotedStringCharacters:

/(?:\\.|#(?!\{)|[^"#])+/

CoffeeDoubleQuotedStringCharacters
         ::= '/(?:\\.|#(?!\{)|[^"#])+/'

referenced by:


RegularExpressionLiteral:

HeregexLiteral / RegularExpressionBody / RegularExpressionFlags

RegularExpressionLiteral
         ::= HeregexLiteral
           | '/' RegularExpressionBody '/' RegularExpressionFlags

referenced by:


RegularExpressionClass:

OpenBracket RegularExpressionClassCharacters CloseBracket

RegularExpressionClass
         ::= OpenBracket RegularExpressionClassCharacters CloseBracket

referenced by:


RegularExpressionClassCharacters:

/(?:\\.|[^\]])*/

RegularExpressionClassCharacters
         ::= '/(?:\\.|[^\]])*/'

referenced by:


HeregexLiteral:

TripleSlash HeregexBody TripleSlash RegularExpressionFlags

HeregexLiteral
         ::= TripleSlash HeregexBody TripleSlash RegularExpressionFlags

referenced by:


HeregexBody:

! TripleSlash HeregexPart

HeregexBody
         ::= '!' TripleSlash HeregexPart*

referenced by:


HeregexPart:

RegularExpressionClass CoffeeStringSubstitution TemplateSubstitution /(?:\\.)/ HeregexComment [\s]+ /\/(?!\/\/)/ [^\/\s#\\]+

HeregexPart
         ::= RegularExpressionClass
           | CoffeeStringSubstitution
           | TemplateSubstitution
           | '/(?:\\.)/'
           | HeregexComment
           | '[\s]+'
           | '/\/(?!\/\/)/'
           | '[^\/\s#\\]+'

referenced by:


HeregexComment:

JSSingleLineComment CoffeeSingleLineComment

HeregexComment
         ::= JSSingleLineComment
           | CoffeeSingleLineComment

referenced by:


RegularExpressionBody:

! [*\/\r\n] RegExpCharacter

RegularExpressionBody
         ::= '!' '[*\/\r\n]' RegExpCharacter*

referenced by:


RegExpCharacter:

/(?:\\.|[^\/\r\n])+/

RegExpCharacter
         ::= '/(?:\\.|[^\/\r\n])+/'

referenced by:


RegularExpressionFlags:

/(?:\p{ID_Continue}|[\u200C\u200D$])*/

RegularExpressionFlags
         ::= '/(?:\p{ID_Continue}|[\u200C\u200D$])*/'

referenced by:


TemplateLiteral:

TripleTick TemplateBlockCharacters TemplateSubstitution TripleTick Backtick TemplateCharacters TemplateSubstitution Backtick

TemplateLiteral
         ::= TripleTick ( TemplateBlockCharacters | TemplateSubstitution )* TripleTick
           | Backtick ( TemplateCharacters | TemplateSubstitution )* Backtick

referenced by:


TemplateSubstitution:

SubstitutionStart ExtendedExpression __ CloseBrace

TemplateSubstitution
         ::= SubstitutionStart ExtendedExpression __ CloseBrace

referenced by:


TemplateCharacters:

/(?:\$(?!\{)|\\.|[^$`])+/

TemplateCharacters
         ::= '/(?:\$(?!\{)|\\.|[^$`])+/'

referenced by:


TemplateBlockCharacters:

/(?:\$(?!\{)|`(?!``)|\\.|[^$`])+/

TemplateBlockCharacters
         ::= '/(?:\$(?!\{)|`(?!``)|\\.|[^$`])+/'

referenced by:


ReservedWord:

CoffeeBooleansEnabled /(?:on|off|yes|no)(?!\p{ID_Continue})/ CoffeeIsntEnabled /(?:isnt)(?!\p{ID_Continue})/ CoffeeForLoopsEnabled /(?:by)(?!\p{ID_Continue})/ CoffeeOfEnabled /(?:of)(?!\p{ID_Continue})/ CoffeeNotEnabled /(?:not)(?!\p{ID_Continue})/ not NonIdContinue __ in NonIdContinue /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\p{ID_Continue})/

ReservedWord
         ::= CoffeeBooleansEnabled '/(?:on|off|yes|no)(?!\p{ID_Continue})/'
           | CoffeeIsntEnabled '/(?:isnt)(?!\p{ID_Continue})/'
           | CoffeeForLoopsEnabled '/(?:by)(?!\p{ID_Continue})/'
           | CoffeeOfEnabled '/(?:of)(?!\p{ID_Continue})/'
           | CoffeeNotEnabled '/(?:not)(?!\p{ID_Continue})/'
           | 'not' NonIdContinue __ 'in' NonIdContinue
           | '/(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\p{ID_Continue})/'

referenced by:


Comment:

MultiLineComment SingleLineComment

Comment  ::= MultiLineComment
           | SingleLineComment

referenced by:


SingleLineComment:

JSSingleLineComment CoffeeCommentEnabled CoffeeSingleLineComment

SingleLineComment
         ::= JSSingleLineComment
           | CoffeeCommentEnabled CoffeeSingleLineComment

referenced by:


JSSingleLineComment:

/\/\/(?!\/)[^\r\n]*/

JSSingleLineComment
         ::= '/\/\/(?!\/)[^\r\n]*/'

referenced by:


MultiLineComment:

JSMultiLineComment CoffeeMultiLineComment

MultiLineComment
         ::= JSMultiLineComment
           | CoffeeMultiLineComment

referenced by:


JSMultiLineComment:

/* ! */ . */

JSMultiLineComment
         ::= '/*' ( '!' '*/' . )* '*/'

referenced by:


CoffeeSingleLineComment:

/#(?!##(?!#))([^\r\n]*)/

CoffeeSingleLineComment
         ::= '/#(?!##(?!#))([^\r\n]*)/'

referenced by:


CoffeeMultiLineComment:

CoffeeHereCommentStart ! CoffeeHereCommentStart */ . CoffeeHereCommentStart

CoffeeMultiLineComment
         ::= CoffeeHereCommentStart ( '!' ( CoffeeHereCommentStart | '*/' ) . )* CoffeeHereCommentStart

referenced by:


CoffeeHereCommentStart:

/###(?!#)/

CoffeeHereCommentStart
         ::= '/###(?!#)/'

referenced by:


InlineComment:

/* ! */ [^\r\n] */

InlineComment
         ::= '/*' ( '!' '*/' '[^\r\n]' )* '*/'

referenced by:


RestOfLine:

NonNewlineWhitespace SingleLineComment MultiLineComment EOL

RestOfLine
         ::= ( NonNewlineWhitespace | SingleLineComment | MultiLineComment )* EOL

referenced by:


TrailingComment:

NonNewlineWhitespace InlineComment SingleLineComment

TrailingComment
         ::= NonNewlineWhitespace
           | InlineComment
           | SingleLineComment

referenced by:


_:

NonNewlineWhitespace InlineComment

_        ::= ( NonNewlineWhitespace | InlineComment )+

referenced by:


NonNewlineWhitespace:

[ \t]+ CoffeeLineContinuationEnabled \\ EOL

NonNewlineWhitespace
         ::= '[ \t]+'
           | CoffeeLineContinuationEnabled '\\' EOL

referenced by:


Trimmed_:

_

Trimmed_ ::= _*

referenced by:


__:

Whitespace Comment

__       ::= ( Whitespace | Comment )*

referenced by:


Whitespace:

[\s]+

Whitespace
         ::= '[\s]+'

referenced by:


ExpressionDelimiter:

TrailingComment Semicolon InsertComma TrailingComment & EOS InsertComma

ExpressionDelimiter
         ::= TrailingComment* Semicolon InsertComma TrailingComment*
           | '&' EOS InsertComma

referenced by:


StatementDelimiter:

SemicolonDelimiter & EOS

StatementDelimiter
         ::= SemicolonDelimiter
           | '&' EOS

referenced by:


SemicolonDelimiter:

TrailingComment Semicolon TrailingComment

SemicolonDelimiter
         ::= TrailingComment* Semicolon TrailingComment*

referenced by:


NonIdContinue:

/(?!\p{ID_Continue})/

NonIdContinue
         ::= '/(?!\p{ID_Continue})/'

referenced by:


Loc:

Loc      ::= ''

referenced by:


Abstract:

abstract NonIdContinue

Abstract ::= 'abstract' NonIdContinue ' '?

referenced by:


Ampersand:

&

Ampersand
         ::= '&'

referenced by:


As:

as NonIdContinue

As       ::= 'as' NonIdContinue

referenced by:


At:

@

At       ::= '@'

referenced by:


AtAt:

@@

AtAt     ::= '@@'

referenced by:


Async:

async NonIdContinue

Async    ::= 'async' NonIdContinue

referenced by:


Await:

await NonIdContinue

Await    ::= 'await' NonIdContinue

referenced by:


Backtick:

`

Backtick ::= '`'

referenced by:


By:

by NonIdContinue

By       ::= 'by' NonIdContinue

referenced by:


Case:

case NonIdContinue

Case     ::= 'case' NonIdContinue

referenced by:


Catch:

catch NonIdContinue

Catch    ::= 'catch' NonIdContinue

referenced by:


Class:

class NonIdContinue

Class    ::= 'class' NonIdContinue

referenced by:


CloseBrace:

}

CloseBrace
         ::= '}'

referenced by:


CloseBracket:

]

CloseBracket
         ::= ']'

referenced by:


CloseParen:

)

CloseParen
         ::= ')'

referenced by:


CoffeeSubstitutionStart:

#{

CoffeeSubstitutionStart
         ::= '#{'

referenced by:


Colon:

:

Colon    ::= ':'

referenced by:


ConstructorShorthand:

@

ConstructorShorthand
         ::= '@'

referenced by:


Default:

default NonIdContinue

Default  ::= 'default' NonIdContinue

referenced by:


Delete:

delete NonIdContinue

Delete   ::= 'delete' NonIdContinue

referenced by:


Do:

do NonIdContinue

Do       ::= 'do' NonIdContinue

referenced by:


Dot:

.

Dot      ::= '.'

referenced by:


DotDot:

..

DotDot   ::= '..'

referenced by:


DotDotDot:

...

DotDotDot
         ::= '...'

referenced by:


DoubleColon:

::

DoubleColon
         ::= '::'

referenced by:


DoubleQuote:

\"

DoubleQuote
         ::= '\"'

referenced by:


Else:

else NonIdContinue

Else     ::= 'else' NonIdContinue

referenced by:


Equals:

=

Equals   ::= '='

referenced by:


Export:

export NonIdContinue

Export   ::= 'export' NonIdContinue

referenced by:


Extends:

extends NonIdContinue

Extends  ::= 'extends' NonIdContinue

referenced by:


For:

for NonIdContinue

For      ::= 'for' NonIdContinue

referenced by:


From:

from NonIdContinue

From     ::= 'from' NonIdContinue

referenced by:


Function:

function NonIdContinue

Function ::= 'function' NonIdContinue

referenced by:


GetOrSet:

get set NonIdContinue

GetOrSet ::= ( 'get' | 'set' ) NonIdContinue

referenced by:


If:

if NonIdContinue

If       ::= 'if' NonIdContinue ' '?

referenced by:


Import:

import & /\s/

Import   ::= 'import' '&' '/\s/'

referenced by:


In:

in NonIdContinue

In       ::= 'in' NonIdContinue

referenced by:


LetOrConst:

let const NonIdContinue

LetOrConst
         ::= ( 'let' | 'const' ) NonIdContinue

referenced by:


Loop:

loop NonIdContinue

Loop     ::= 'loop' NonIdContinue

referenced by:


New:

new NonIdContinue

New      ::= 'new' NonIdContinue

referenced by:


Not:

CoffeeNotEnabled not NonIdContinue

Not      ::= CoffeeNotEnabled 'not' NonIdContinue ' '?

referenced by:


Of:

of NonIdContinue

Of       ::= 'of' NonIdContinue

referenced by:


OpenAngleBracket:

<

OpenAngleBracket
         ::= '<'

referenced by:


OpenBrace:

{

OpenBrace
         ::= '{'

referenced by:


OpenBracket:

[

OpenBracket
         ::= '['

referenced by:


OpenParen:

(

OpenParen
         ::= '('

referenced by:


Public:

public NonIdContinue

Public   ::= 'public' NonIdContinue

referenced by:


Private:

private NonIdContinue

Private  ::= 'private' NonIdContinue

referenced by:


Protected:

protected NonIdContinue

Protected
         ::= 'protected' NonIdContinue

referenced by:


Pipe:

|>

Pipe     ::= '|>'

referenced by:


QuestionMark:

?

QuestionMark
         ::= '?'

referenced by:


Readonly:

readonly NonIdContinue

Readonly ::= 'readonly' NonIdContinue

referenced by:


Return:

return NonIdContinue

Return   ::= 'return' NonIdContinue

referenced by:


Satisfies:

satisfies NonIdContinue

Satisfies
         ::= 'satisfies' NonIdContinue

referenced by:


Semicolon:

;

Semicolon
         ::= ';'

referenced by:


SingleQuote:

'

SingleQuote
         ::= "'"

referenced by:


Star:

*

Star     ::= '*'

referenced by:


Static:

static NonIdContinue @ ! ( @

Static   ::= 'static' NonIdContinue
           | '@' '!' ( '(' | '@' )

referenced by:


SubstitutionStart:

${

SubstitutionStart
         ::= '${'

referenced by:


Switch:

switch NonIdContinue

Switch   ::= 'switch' NonIdContinue

referenced by:


Target:

target NonIdContinue

Target   ::= 'target' NonIdContinue

referenced by:


Then:

__ then NonIdContinue

Then     ::= __ 'then' NonIdContinue

referenced by:


This:

this NonIdContinue

This     ::= 'this' NonIdContinue

referenced by:


Throw:

throw NonIdContinue

Throw    ::= 'throw' NonIdContinue

referenced by:


TripleDoubleQuote:

\"\"\"

TripleDoubleQuote
         ::= '\"\"\"'

referenced by:


TripleSingleQuote:

'''

TripleSingleQuote
         ::= "'''"

referenced by:


TripleSlash:

///

TripleSlash
         ::= '///'

referenced by:


TripleTick:

```

TripleTick
         ::= '```'

referenced by:


Try:

try NonIdContinue

Try      ::= 'try' NonIdContinue

referenced by:


Typeof:

typeof NonIdContinue

Typeof   ::= 'typeof' NonIdContinue

referenced by:


Unless:

unless NonIdContinue

Unless   ::= 'unless' NonIdContinue

referenced by:


Until:

until NonIdContinue

Until    ::= 'until' NonIdContinue

referenced by:


Var:

var NonIdContinue

Var      ::= 'var' NonIdContinue

referenced by:


Void:

void NonIdContinue

Void     ::= 'void' NonIdContinue

referenced by:


When:

when NonIdContinue

When     ::= 'when' NonIdContinue

referenced by:


While:

while NonIdContinue

While    ::= 'while' NonIdContinue

referenced by:


Yield:

yield NonIdContinue

Yield    ::= 'yield' NonIdContinue

referenced by:


JSXImplicitFragment:

JSXTag Samedent

JSXImplicitFragment
         ::= JSXTag ( Samedent JSXTag )*

referenced by:


JSXTag:

JSXElement JSXFragment JSXComment

JSXTag   ::= JSXElement
           | JSXFragment
           | JSXComment

referenced by:


JSXElement:

JSXSelfClosingElement ! CoffeeJSXEnabled PushJSXOpeningElement JSXMixedChildren JSXOptionalClosingElement CoffeeJSXEnabled JSXOpeningElement JSXChildren Whitespace JSXClosingElement

JSXElement
         ::= JSXSelfClosingElement
           | '!' CoffeeJSXEnabled PushJSXOpeningElement JSXMixedChildren? JSXOptionalClosingElement
           | CoffeeJSXEnabled JSXOpeningElement JSXChildren? Whitespace? JSXClosingElement

referenced by:


JSXSelfClosingElement:

< JSXElementName TypeArguments JSXAttributes Whitespace />

JSXSelfClosingElement
         ::= '<' JSXElementName TypeArguments? JSXAttributes? Whitespace? '/>'

referenced by:


PushJSXOpeningElement:

JSXOpeningElement

PushJSXOpeningElement
         ::= JSXOpeningElement

referenced by:


JSXOpeningElement:

< JSXElementName TypeArguments JSXAttributes Whitespace >

JSXOpeningElement
         ::= '<' JSXElementName TypeArguments? JSXAttributes? Whitespace? '>'

referenced by:


JSXOptionalClosingElement:

Whitespace JSXClosingElement

JSXOptionalClosingElement
         ::= Whitespace? JSXClosingElement
           | ''

referenced by:


JSXClosingElement:

</ Whitespace JSXElementName Whitespace >

JSXClosingElement
         ::= '</' Whitespace? JSXElementName Whitespace? '>'

referenced by:


JSXFragment:

! CoffeeJSXEnabled PushJSXOpeningFragment JSXMixedChildren JSXOptionalClosingFragment CoffeeJSXEnabled <> JSXChildren Whitespace JSXClosingFragment

JSXFragment
         ::= '!' CoffeeJSXEnabled PushJSXOpeningFragment JSXMixedChildren? JSXOptionalClosingFragment
           | CoffeeJSXEnabled '<>' JSXChildren? Whitespace? JSXClosingFragment

referenced by:


PushJSXOpeningFragment:

<>

PushJSXOpeningFragment
         ::= '<>'

referenced by:


JSXOptionalClosingFragment:

Whitespace JSXClosingFragment

JSXOptionalClosingFragment
         ::= Whitespace? JSXClosingFragment
           | ''

referenced by:


JSXClosingFragment:

</>

JSXClosingFragment
         ::= '</>'

referenced by:


JSXElementName:

JSXIdentifierName Colon JSXIdentifierName Dot JSXIdentifierName

JSXElementName
         ::= JSXIdentifierName ( Colon JSXIdentifierName | ( Dot JSXIdentifierName )* )

referenced by:


JSXIdentifierName:

/(?:\p{ID_Start}|[_$])(?:\p{ID_Continue}|[\u200C\u200D$-])*/

JSXIdentifierName
         ::= '/(?:\p{ID_Start}|[_$])(?:\p{ID_Continue}|[\u200C\u200D$-])*/'

referenced by:


JSXAttributes:

Whitespace JSXAttribute

JSXAttributes
         ::= ( Whitespace? JSXAttribute )*

referenced by:


JSXAttribute:

BracedObjectLiteral JSXAttributeName JSXAttributeInitializer InsertInlineOpenBrace DotDotDot InlineJSXAttributeValue InsertCloseBrace # JSXShorthandString Dot JSXShorthandString [!+-] JSXAttributeName

JSXAttribute
         ::= BracedObjectLiteral
           | JSXAttributeName JSXAttributeInitializer?
           | InsertInlineOpenBrace DotDotDot InlineJSXAttributeValue InsertCloseBrace
           | '#' JSXShorthandString
           | Dot JSXShorthandString
           | '[!+-]' JSXAttributeName

referenced by:


JSXShorthandString:

/(?:[\w\-:]+|\([^()]*\)|\[[^\[\]]*\])+/ StringLiteral TemplateLiteral OpenBrace ExtendedExpression Whitespace CloseBrace

JSXShorthandString
         ::= '/(?:[\w\-:]+|\([^()]*\)|\[[^\[\]]*\])+/'
           | StringLiteral
           | TemplateLiteral
           | OpenBrace ExtendedExpression Whitespace? CloseBrace

referenced by:


JSXAttributeName:

JSXIdentifierName Colon JSXIdentifierName ComputedPropertyName

JSXAttributeName
         ::= JSXIdentifierName ( Colon JSXIdentifierName )?
           | ComputedPropertyName

referenced by:


JSXAttributeInitializer:

Whitespace Equals Whitespace JSXAttributeValue

JSXAttributeInitializer
         ::= Whitespace? Equals Whitespace? JSXAttributeValue

referenced by:


JSXAttributeValue:

StringLiteral OpenBrace ExtendedExpression Whitespace CloseBrace JSXElement JSXFragment InsertInlineOpenBrace InlineJSXAttributeValue InsertCloseBrace

JSXAttributeValue
         ::= StringLiteral
           | OpenBrace ExtendedExpression Whitespace? CloseBrace
           | JSXElement
           | JSXFragment
           | InsertInlineOpenBrace InlineJSXAttributeValue InsertCloseBrace

referenced by:


InlineJSXAttributeValue:

InlineJSXUnaryExpression InlineJSXBinaryOpRHS

InlineJSXAttributeValue
         ::= InlineJSXUnaryExpression InlineJSXBinaryOpRHS*

referenced by:


InlineJSXBinaryOpRHS:

BinaryOp ParenthesizedAssignment InlineJSXUnaryExpression

InlineJSXBinaryOpRHS
         ::= BinaryOp ( ParenthesizedAssignment | InlineJSXUnaryExpression )

referenced by:


InlineJSXUnaryExpression:

InlineJSXUnaryOp InlineJSXUpdateExpression InlineJSXUnaryPostfix

InlineJSXUnaryExpression
         ::= InlineJSXUnaryOp* InlineJSXUpdateExpression InlineJSXUnaryPostfix?

referenced by:


InlineJSXUnaryOp:

/[!~+-](?!\s|[!~+-]*&)/

InlineJSXUnaryOp
         ::= '/[!~+-](?!\s|[!~+-]*&)/'

referenced by:


InlineJSXUnaryPostfix:

QuestionMark

InlineJSXUnaryPostfix
         ::= QuestionMark

referenced by:


InlineJSXUpdateExpression:

UpdateExpressionSymbol UnaryExpression InlineJSXCallExpression UpdateExpressionSymbol

InlineJSXUpdateExpression
         ::= UpdateExpressionSymbol UnaryExpression
           | InlineJSXCallExpression UpdateExpressionSymbol?

referenced by:


InlineJSXCallExpression:

InlineJSXMemberExpression InlineJSXCallExpressionRest super ExplicitArguments import OpenParen ExtendedExpression __ CloseParen

InlineJSXCallExpression
         ::= 'super' ExplicitArguments
           | 'import' OpenParen ExtendedExpression __ CloseParen
           | InlineJSXMemberExpression InlineJSXCallExpressionRest*

referenced by:


InlineJSXCallExpressionRest:

MemberExpressionRest TemplateLiteral OptionalShorthand NonNullAssertion ExplicitArguments

InlineJSXCallExpressionRest
         ::= MemberExpressionRest
           | TemplateLiteral
           | ( OptionalShorthand | NonNullAssertion )? ExplicitArguments

referenced by:


InlineJSXMemberExpression:

InlineJSXPrimaryExpression InlineJSXMemberExpressionRest SuperProperty MetaProperty

InlineJSXMemberExpression
         ::= InlineJSXPrimaryExpression InlineJSXMemberExpressionRest*
           | SuperProperty
           | MetaProperty

referenced by:


InlineJSXMemberExpressionRest:

OptionalShorthand NonNullAssertion MemberBracketContent PropertyAccess NonNullAssertion

InlineJSXMemberExpressionRest
         ::= ( OptionalShorthand | NonNullAssertion )? MemberBracketContent
           | PropertyAccess
           | NonNullAssertion

referenced by:


InlineJSXPrimaryExpression:

NullLiteral BooleanLiteral NumericLiteral StringLiteral ThisLiteral ArrayLiteral BracedObjectLiteral IdentifierReference RegularExpressionLiteral TemplateLiteral ParenthesizedExpression

InlineJSXPrimaryExpression
         ::= NullLiteral
           | BooleanLiteral
           | NumericLiteral
           | StringLiteral
           | ThisLiteral
           | ArrayLiteral
           | BracedObjectLiteral
           | IdentifierReference
           | RegularExpressionLiteral
           | TemplateLiteral
           | ParenthesizedExpression

referenced by:


JSXMixedChildren:

JSXChild JSXNestedChildren

JSXMixedChildren
         ::= JSXChild* JSXNestedChildren

referenced by:


JSXChildren:

NonNewlineWhitespace EOL NonNewlineWhitespace JSXChild

JSXChildren
         ::= ( ( NonNewlineWhitespace? EOL NonNewlineWhitespace? )* JSXChild )*

referenced by:


JSXNestedChildren:

PushIndent JSXNested JSXChild PopIndent & JSXEOS } JSXClosingElement JSXClosingFragment

JSXNestedChildren
         ::= PushIndent ( JSXNested JSXChild+ )* PopIndent
           | '&' ( JSXEOS | '}' | JSXClosingElement | JSXClosingFragment )

referenced by:


JSXEOS:

NonNewlineWhitespace EOL

JSXEOS   ::= ( NonNewlineWhitespace? EOL )+

referenced by:


JSXNested:

JSXEOS Indent

JSXNested
         ::= JSXEOS Indent

referenced by:


JSXChild:

JSXElement JSXFragment JSXComment OpenBrace IndentedJSXChildExpression __ CloseBrace OpenBrace JSXChildExpression __ CloseBrace InsertInlineOpenBrace ArrowFunction InsertCloseBrace JSXText

JSXChild ::= JSXElement
           | JSXFragment
           | JSXComment
           | OpenBrace IndentedJSXChildExpression __ CloseBrace
           | OpenBrace JSXChildExpression? __ CloseBrace
           | InsertInlineOpenBrace ArrowFunction InsertCloseBrace
           | JSXText

referenced by:


JSXComment:

<!-- JSXCommentContent -->

JSXComment
         ::= '<!--' JSXCommentContent '-->'

referenced by:


JSXCommentContent:

/(?:-[^-]|[^-]*)*/

JSXCommentContent
         ::= '/(?:-[^-]|[^-]*)*/'

referenced by:


JSXText:

[^{}<>\r\n]+

JSXText  ::= '[^{}<>\r\n]+'

referenced by:


JSXChildExpression:

Whitespace DotDotDot Whitespace ExtendedExpression

JSXChildExpression
         ::= Whitespace? ( DotDotDot Whitespace? )? ExtendedExpression

referenced by:


IndentedJSXChildExpression:

PushIndent NestedJSXChildExpression PopIndent

IndentedJSXChildExpression
         ::= PushIndent NestedJSXChildExpression? PopIndent

referenced by:


NestedJSXChildExpression:

JSXNested JSXChildExpression

NestedJSXChildExpression
         ::= JSXNested JSXChildExpression

referenced by:


TypeDeclaration:

TypeDeclarationModifier TrailingComment TypeDeclarationRest

TypeDeclaration
         ::= ( TypeDeclarationModifier TrailingComment* )* TypeDeclarationRest

referenced by:


TypeDeclarationModifier:

declare NonIdContinue Export

TypeDeclarationModifier
         ::= 'declare' NonIdContinue
           | Export

referenced by:


TypeDeclarationRest:

TypeKeyword TrailingComment IdentifierName TypeParameters __ Equals __ Type Interface TrailingComment IdentifierName TypeParameters InterfaceExtendsClause InterfaceBlock Namespace TrailingComment IdentifierName NamespaceBlock FunctionSignature

TypeDeclarationRest
         ::= TypeKeyword TrailingComment* IdentifierName TypeParameters? __ Equals __ Type
           | Interface TrailingComment* IdentifierName TypeParameters? InterfaceExtendsClause? InterfaceBlock
           | Namespace TrailingComment* IdentifierName NamespaceBlock
           | FunctionSignature

referenced by:


InterfaceExtendsClause:

ExtendsToken InterfaceExtendsTarget

InterfaceExtendsClause
         ::= ExtendsToken InterfaceExtendsTarget

referenced by:


InterfaceExtendsTarget:

ImplementsTarget

InterfaceExtendsTarget
         ::= ImplementsTarget

referenced by:


TypeKeyword:

type NonIdContinue

TypeKeyword
         ::= 'type' NonIdContinue

referenced by:


Interface:

interface NonIdContinue

Interface
         ::= 'interface' NonIdContinue

referenced by:


Namespace:

namespace NonIdContinue

Namespace
         ::= 'namespace' NonIdContinue

referenced by:


InterfaceBlock:

__ OpenBrace NestedInterfaceProperties __ CloseBrace __ OpenBrace __ InterfaceProperty __ CloseBrace InsertOpenBrace NestedInterfaceProperties InsertNewline InsertIndent InsertCloseBrace

InterfaceBlock
         ::= __ OpenBrace NestedInterfaceProperties __ CloseBrace
           | __ OpenBrace ( __ InterfaceProperty )* __ CloseBrace
           | InsertOpenBrace NestedInterfaceProperties InsertNewline InsertIndent InsertCloseBrace

referenced by:


NestedInterfaceProperties:

PushIndent NestedInterfaceProperty PopIndent

NestedInterfaceProperties
         ::= PushIndent NestedInterfaceProperty* PopIndent

referenced by:


NestedInterfaceProperty:

Nested InterfaceProperty

NestedInterfaceProperty
         ::= Nested InterfaceProperty

referenced by:


InterfaceProperty:

TypeIndexSignature PropertyName TypeSuffix InterfacePropertyDelimiter NonEmptyParameters TypeSuffix InterfacePropertyDelimiter MethodSignature InterfacePropertyDelimiter

InterfaceProperty
         ::= ( TypeIndexSignature | PropertyName ) TypeSuffix InterfacePropertyDelimiter
           | NonEmptyParameters TypeSuffix InterfacePropertyDelimiter
           | MethodSignature InterfacePropertyDelimiter

referenced by:


InterfacePropertyDelimiter:

_ Semicolon Comma & __ CloseBrace & EOS

InterfacePropertyDelimiter
         ::= _* ( Semicolon | Comma )
           | '&' __ CloseBrace
           | '&' EOS

referenced by:


NamespaceBlock:

__ OpenBrace NestedTypeDeclarations __ CloseBrace __ OpenBrace __ TypeDeclaration InterfacePropertyDelimiter __ CloseBrace InsertOpenBrace NestedTypeDeclarations InsertNewline InsertIndent InsertCloseBrace

NamespaceBlock
         ::= __ OpenBrace NestedTypeDeclarations __ CloseBrace
           | __ OpenBrace ( __ TypeDeclaration InterfacePropertyDelimiter )* __ CloseBrace
           | InsertOpenBrace NestedTypeDeclarations InsertNewline InsertIndent InsertCloseBrace

referenced by:


NestedTypeDeclarations:

PushIndent NestedTypeDeclaration PopIndent

NestedTypeDeclarations
         ::= PushIndent NestedTypeDeclaration* PopIndent

referenced by:


NestedTypeDeclaration:

Nested TypeDeclaration InterfacePropertyDelimiter

NestedTypeDeclaration
         ::= Nested TypeDeclaration InterfacePropertyDelimiter

referenced by:


TypeIndexSignature:

[+-]? readonly __ OpenBracket TypeIndex CloseBracket __ [+-] QuestionMark

TypeIndexSignature
         ::= ( '[+-]?' 'readonly' __ )? OpenBracket TypeIndex CloseBracket ( __ '[+-]' QuestionMark )?

referenced by:


TypeIndex:

__ Identifier TypeSuffix __ PropertyName __ In Type __ As Type

TypeIndex
         ::= __ Identifier TypeSuffix
           | __ PropertyName __ In Type ( __ As Type )?

referenced by:


TypeSuffix:

QuestionMark __ Colon Type

TypeSuffix
         ::= QuestionMark? __ Colon Type

referenced by:


ReturnTypeSuffix:

__ Colon __ asserts NonIdContinue TypePredicate

ReturnTypeSuffix
         ::= __ Colon ( __ 'asserts' NonIdContinue )? TypePredicate

referenced by:


TypePredicate:

Type __ is NonIdContinue Type

TypePredicate
         ::= Type ( __ 'is' NonIdContinue Type )?

referenced by:


Type:

TypeConditional

Type     ::= TypeConditional

referenced by:


TypeBinary:

TypeUnary __ TypeBinaryOp __

TypeBinary
         ::= TypeUnary ( __ TypeBinaryOp __ TypeUnary )*

referenced by:


TypeUnary:

__ TypeUnaryOp NonIdContinue TypePrimary TypeUnarySuffix

TypeUnary
         ::= ( __ TypeUnaryOp NonIdContinue )* TypePrimary TypeUnarySuffix*

referenced by:


TypeUnarySuffix:

TypeIndexedAccess QuestionMark

TypeUnarySuffix
         ::= TypeIndexedAccess
           | QuestionMark

referenced by:


TypeUnaryOp:

keyof NonIdContinue typeof NonIdContinue infer NonIdContinue readonly NonIdContinue

TypeUnaryOp
         ::= 'keyof' NonIdContinue
           | 'typeof' NonIdContinue
           | 'infer' NonIdContinue
           | 'readonly' NonIdContinue

referenced by:


TypeIndexedAccess:

__ OpenBracket Type __ CloseBracket

TypeIndexedAccess
         ::= __ OpenBracket Type? __ CloseBracket

referenced by:


TypePrimary:

_ ImportType InterfaceBlock __ OpenParen Type __ CloseParen __ TypeTuple _ FunctionType _ TypeLiteral _ IdentifierName Dot TypeArguments

TypePrimary
         ::= InterfaceBlock
           | __ OpenParen Type __ CloseParen
           | __ TypeTuple
           | _* ImportType
           | _* FunctionType
           | _* TypeLiteral
           | _* IdentifierName ( Dot IdentifierName )* TypeArguments?

referenced by:


ImportType:

import OpenParen __ BasicStringLiteral __ CloseParen Dot IdentifierName TypeArguments import InsertOpenParen Trimmed_ BasicStringLiteral InsertCloseParen

ImportType
         ::= 'import' OpenParen __ BasicStringLiteral __ CloseParen ( Dot IdentifierName )? TypeArguments?
           | 'import' InsertOpenParen Trimmed_ BasicStringLiteral InsertCloseParen

referenced by:


TypeTuple:

OpenBracket NestedTypeList __ CloseBracket OpenBracket TypeList __ CloseBracket

TypeTuple
         ::= OpenBracket NestedTypeList __ CloseBracket
           | OpenBracket TypeList? __ CloseBracket

referenced by:


TypeList:

Type Comma __

TypeList ::= Type ( __ Comma Type )*

referenced by:


NestedTypeList:

PushIndent NestedType PopIndent

NestedTypeList
         ::= PushIndent NestedType* PopIndent

referenced by:


NestedType:

Nested Type ArrayElementDelimiter

NestedType
         ::= Nested Type ArrayElementDelimiter

referenced by:


TypeConditional:

TypeBinary __ extends NonIdContinue Type __ QuestionMark Type __ Colon Type

TypeConditional
         ::= TypeBinary ( __ 'extends' NonIdContinue Type ( __ QuestionMark Type __ Colon Type )? )?

referenced by:


TypeLiteral:

Literal TemplateLiteral void NonIdContinue []

TypeLiteral
         ::= Literal
           | TemplateLiteral
           | 'void' NonIdContinue
           | '[]'

referenced by:


TypeBinaryOp:

| &

TypeBinaryOp
         ::= '|'
           | '&'

referenced by:


FunctionType:

Parameters __ => Type

FunctionType
         ::= Parameters __ '=>' Type?

referenced by:


TypeArguments:

< TypeArgument __ >

TypeArguments
         ::= '<' TypeArgument+ __ '>'

referenced by:


TypeArgument:

__ Type TypeArgumentDelimiter

TypeArgument
         ::= __ Type TypeArgumentDelimiter

referenced by:


TypeArgumentDelimiter:

TypeParameterDelimiter

TypeArgumentDelimiter
         ::= TypeParameterDelimiter

referenced by:


TypeParameters:

__ < TypeParameter __ >

TypeParameters
         ::= __ '<' TypeParameter+ __ '>'

referenced by:


TypeParameter:

__ Identifier TypeConstraint TypeInitializer TypeParameterDelimiter

TypeParameter
         ::= __ Identifier TypeConstraint? TypeInitializer? TypeParameterDelimiter

referenced by:


TypeConstraint:

__ extends NonIdContinue Type

TypeConstraint
         ::= __ 'extends' NonIdContinue Type

referenced by:


TypeInitializer:

__ = Type

TypeInitializer
         ::= __ '=' Type

referenced by:


TypeParameterDelimiter:

_ Comma & __ > & EOS InsertComma

TypeParameterDelimiter
         ::= _* Comma
           | '&' __ '>'
           | '&' EOS InsertComma

referenced by:


ThisType:

This AtThis Colon Type

ThisType ::= ( This | AtThis ) Colon Type

referenced by:


Shebang:

/#![^\r\n]*/ EOL

Shebang  ::= '/#![^\r\n]*/' EOL

referenced by:


CivetPrologue:

[\t ]* DoubleQuote CivetPrologueContent DoubleQuote StatementDelimiter EOS [\t ]* SingleQuote CivetPrologueContent SingleQuote StatementDelimiter EOS

CivetPrologue
         ::= '[\t ]*' DoubleQuote CivetPrologueContent DoubleQuote StatementDelimiter EOS?
           | '[\t ]*' SingleQuote CivetPrologueContent SingleQuote StatementDelimiter EOS?

referenced by:


CivetPrologueContent:

civet NonIdContinue CivetOption [\s]*

CivetPrologueContent
         ::= 'civet' NonIdContinue CivetOption* '[\s]*'

referenced by:


CivetOption:

/\s+([+-]?)([a-zA-Z0-9-]+)(\s*=\s*([a-zA-Z0-9.+-]*))?/

CivetOption
         ::= '/\s+([+-]?)([a-zA-Z0-9-]+)(\s*=\s*([a-zA-Z0-9.+-]*))?/'

referenced by:


UnknownPrologue:

[\t ]* BasicStringLiteral StatementDelimiter EOS

UnknownPrologue
         ::= '[\t ]*' BasicStringLiteral StatementDelimiter EOS

referenced by:


DirectivePrologue:

CivetPrologue UnknownPrologue

DirectivePrologue
         ::= CivetPrologue
           | UnknownPrologue

referenced by:


EOS:

RestOfLine

EOS      ::= RestOfLine+

referenced by:


EOL:

/\r\n|\n|\r|$/

EOL      ::= '/\r\n|\n|\r|$/'

referenced by:


Debugger:

Debugger ::= ''

no references


InsertOpenParen:

InsertOpenParen
         ::= ''

referenced by:


InsertCloseParen:

InsertCloseParen
         ::= ''

referenced by:


InsertOpenBrace:

InsertOpenBrace
         ::= ''

referenced by:


InsertInlineOpenBrace:

InsertInlineOpenBrace
         ::= ''

referenced by:


InsertCloseBrace:

InsertCloseBrace
         ::= ''

referenced by:


InsertComma:

InsertComma
         ::= ''

referenced by:


InsertConst:

InsertConst
         ::= ''

referenced by:


InsertLet:

InsertLet
         ::= ''

referenced by:


InsertReadonly:

InsertReadonly
         ::= ''

referenced by:


InsertNewline:

InsertNewline
         ::= ''

referenced by:


InsertIndent:

InsertIndent
         ::= ''

referenced by:


InsertSpace:

InsertSpace
         ::= ''

referenced by:


InsertDot:

InsertDot
         ::= ''

referenced by:


InsertBreak:

InsertBreak
         ::= ''

referenced by:


InsertVar:

InsertVar
         ::= ''

referenced by:


CoffeeBinaryExistentialEnabled:

CoffeeBinaryExistentialEnabled
         ::= ''

referenced by:


CoffeeBooleansEnabled:

CoffeeBooleansEnabled
         ::= ''

referenced by:


CoffeeClassesEnabled:

CoffeeClassesEnabled
         ::= ''

referenced by:


CoffeeCommentEnabled:

CoffeeCommentEnabled
         ::= ''

referenced by:


CoffeeDoEnabled:

CoffeeDoEnabled
         ::= ''

referenced by:


CoffeeForLoopsEnabled:

CoffeeForLoopsEnabled
         ::= ''

referenced by:


CoffeeInterpolationEnabled:

CoffeeInterpolationEnabled
         ::= ''

referenced by:


CoffeeIsntEnabled:

CoffeeIsntEnabled
         ::= ''

referenced by:


CoffeeJSXEnabled:

CoffeeJSXEnabled
         ::= ''

referenced by:


CoffeeLineContinuationEnabled:

CoffeeLineContinuationEnabled
         ::= ''

referenced by:


CoffeeNotEnabled:

CoffeeNotEnabled
         ::= ''

referenced by:


CoffeeOfEnabled:

CoffeeOfEnabled
         ::= ''

referenced by:


CoffeePrototypeEnabled:

CoffeePrototypeEnabled
         ::= ''

referenced by:


Reset:

Reset    ::= ''

referenced by:


Init:

Shebang DirectivePrologue

Init     ::= Shebang? DirectivePrologue* ''

referenced by:


Indent:

[ \t]*

Indent   ::= '[ \t]*'

referenced by:


TrackIndented:

Indent

TrackIndented
         ::= Indent

referenced by:


Samedent:

EOS Indent

Samedent ::= EOS Indent

referenced by:


IndentedFurther:

EOS Indent

IndentedFurther
         ::= EOS Indent

referenced by:


PushIndent:

& EOS TrackIndented

PushIndent
         ::= '&' EOS TrackIndented

referenced by:


PopIndent:

PopIndent
         ::= ''

referenced by:


Nested:

EOS Indent

Nested   ::= EOS Indent

referenced by:



  ... generated by RR - Railroad Diagram Generator R R