Grammer:
Grammer ::= Statement
no referencesSourceCharacter:
SourceCharacter
::= #x0000 - #x10FFFF
referenced by:
IdentityEscape
InputElementDiv:
InputElementDiv
::= WhiteSpace
| LineTerminator
| Comment
| CommonToken
| DivPunctuator
| RightBracePunctuator
no referencesInputElementRegExp:
InputElementRegExp
::= WhiteSpace
| LineTerminator
| Comment
| CommonToken
| RightBracePunctuator
| RegularExpressionLiteral
no referencesInputElementRegExpOrTemplateTail:
InputElementRegExpOrTemplateTail
::= WhiteSpace
| LineTerminator
| Comment
| CommonToken
| RegularExpressionLiteral
| TemplateSubstitutionTail
no referencesInputElementTemplateTail:
InputElementTemplateTail
::= WhiteSpace
| LineTerminator
| Comment
| CommonToken
| DivPunctuator
| TemplateSubstitutionTail
no referencesWhiteSpace:
WhiteSpace
::= '<TAB>'
| '<VT>'
| '<FF>'
| '<SP>'
| '<NBSP>'
| '<ZWNBSP>'
| '<USP>'
referenced by:
InputElementDiv
InputElementRegExp
InputElementRegExpOrTemplateTail
InputElementTemplateTail
StrWhiteSpaceChar
WhiteSpaceSequence
LineTerminator:
LineTerminator
::= '<LF>'
| '<CR>'
| '<LS>'
| '<PS>'
referenced by:
InputElementDiv
InputElementRegExp
InputElementRegExpOrTemplateTail
InputElementTemplateTail
MultiLineComment
StrWhiteSpaceChar
LineTerminatorSequence:
LineTerminatorSequence
::= '<LF>'
| '<CR>' '<LF>'?
| '<LS>'
| '<PS>'
referenced by:
LineContinuation
SingleLineHTMLCloseComment
TemplateCharacter
Comment:
Comment ::= MultiLineComment
| SingleLineComment
| MultiLineComment
| SingleLineComment
| SingleLineHTMLOpenComment
| SingleLineHTMLCloseComment
| SingleLineDelimitedComment
referenced by:
InputElementDiv
InputElementRegExp
InputElementRegExpOrTemplateTail
InputElementTemplateTail
MultiLineComment:
MultiLineComment
::= '/*' MultiLineCommentChars? '*/'
| '/*' FirstCommentLine? LineTerminator MultiLineCommentChart? '*/' HTMLCloseComment?
referenced by:
Comment
MultiLineCommentChars:
MultiLineCommentChars
::= MultiLineNotAsteriskChar MultiLineCommentChars?
referenced by:
MultiLineComment
MultiLineCommentChars
PostAsteriskCommentChars
PostAsteriskCommentChars:
PostAsteriskCommentChars
::= MultiLineNotForwardSlashOrAsteriskChar MultiLineCommentChars?
| '*' PostAsteriskCommentChars?
referenced by:
PostAsteriskCommentChars
MultiLineNotAsteriskChar:
MultiLineNotAsteriskChar
::= [^*]
referenced by:
MultiLineCommentChars
MultiLineNotForwardSlashOrAsteriskChar:
MultiLineNotForwardSlashOrAsteriskChar
::= [^/*]
referenced by:
PostAsteriskCommentChars
SingleLineComment:
SingleLineComment
::= '/' '/' SingleLineCommentChars?
referenced by:
Comment
SingleLineCommentChars:
SingleLineCommentChars
::= SingleLineCommentChar SingleLineCommentChars?
referenced by:
HTMLCloseComment
SingleLineComment
SingleLineCommentChars
SingleLineHTMLOpenComment
SingleLineCommentChar:
SingleLineCommentChar
::= [^ #x0012 #x0015 #x2028 #x2029 ]
referenced by:
SingleLineCommentChars
CommonToken:
CommonToken
::= IdentifierName
| Punctuator
| NumericLiteral
| StringLiteral
| Template
referenced by:
InputElementDiv
InputElementRegExp
InputElementRegExpOrTemplateTail
InputElementTemplateTail
IdentifierName:
IdentifierName
::= IdentifierStart
| IdentifierName IdentifierPart
referenced by:
CallExpression
CommonToken
ExportSpecifier
Identifier
IdentifierName
ImportSpecifier
LiteralPropertyName
MemberExpression
SuperProperty
IdentifierStart:
IdentifierStart
::= UnicodeIDStart
| '$'
| '_'
| '\' UnicodeEscapeSequence
referenced by:
IdentifierName
IdentifierPart:
IdentifierPart
::= UnicodeIDContinue
| '$'
| '_'
| '\' UnicodeEscapeSequence
| '<ZWNJ>'
| '<ZWJ>'
referenced by:
IdentifierName
RegularExpressionFlags
UnicodeIDStart:
UnicodeIDStart
::= [https://github.com/mathiasbynens/unicode-data/blob/master/5.1.0/properties/ID_Start-regex.js]
referenced by:
IdentifierStart
UnicodeIDContinue:
UnicodeIDContinue
::= [https://github.com/mathiasbynens/unicode-data/blob/master/5.1.0/properties/Other_ID_Continue-regex.js]
referenced by:
IdentifierPart
ReservedWord:
ReservedWord
::= Keyword
| FutureReservedWord
| NullLIteral
| BooleanLiteral
no referencesKeyword:
Keyword ::= 'break'
| 'case'
| 'catch'
| 'class'
| 'const'
| 'continue'
| 'debugger'
| 'default'
| 'delete'
| 'do'
| 'else'
| 'export'
| 'extends'
| 'finally'
| 'for'
| 'function'
| 'if'
| 'import'
| 'in'
| 'instanceof'
| 'new'
| 'return'
| 'super'
| 'switch'
| 'this'
| 'throw'
| 'try'
| 'typeof'
| 'var'
| 'void'
| 'while'
| 'with'
| 'yield'
referenced by:
ReservedWord
FutureReservedWord:
FutureReservedWord
::= 'enum'
| 'await'
| 'implements'
| 'interface'
| 'package'
| 'private'
| 'protected'
| 'public'
referenced by:
ReservedWord
Punctuator:
Punctuator
::= '{'
| '}'
| '('
| ')'
| '['
| ']'
| '.'
| ';'
| ','
| '<'
| '>'
| '<='
| '>='
| '=='
| '!='
| '==='
| '!=='
| '+'
| '-'
| '*'
| '%'
| '++'
| '--'
| '<<'
| '>>'
| '>>>'
| '&'
| '|'
| '^'
| '!'
| '~'
| '&&'
| '?'
| ':'
| '='
| '+='
| '-='
| '*='
| '%='
| '<<='
| '>>='
| '>>>='
| '&='
| '|='
| '^='
| '=>'
referenced by:
CommonToken
DivPunctuator:
DivPunctuator
::= '/'
| '/='
referenced by:
InputElementDiv
InputElementTemplateTail
RightBracePunctuator:
RightBracePunctuator
::= '}'
referenced by:
InputElementDiv
InputElementRegExp
NullLiteral:
NullLiteral
::= 'null'
referenced by:
Literal
BooleanLiteral:
BooleanLiteral
::= 'true'
| 'false'
referenced by:
Literal
ReservedWord
NumbericLiteral:
NumbericLiteral
::= DecimalLiteral
| BinaryLiteral
| OctalIntegerLiteral
| HexIntegerLiteral
referenced by:
Literal
DecimalLiteral:
DecimalLiteral
::= DecimalIntegerLiteral '.' DecimalDigits? ExponentPart?
| '.' DecimalDigits ExponentPart?
| DecimalIntegerLiteral ExponentPart?
referenced by:
NumbericLiteral
NumericLiteral
DecimalIntegerLiteral:
DecimalIntegerLiteral
::= '0'
| NonZeroDigit DecimalDigits?
| '0' OctalDigit
| LegacyOctalIntegerLiteral OctalDigit
referenced by:
DecimalEscape
DecimalLiteral
DecimalDigits:
DecimalDigits
::= DecimalDigit
| DecimalDigits DecimalDigit
referenced by:
DecimalDigits
DecimalIntegerLiteral
DecimalLiteral
LegacyOctalIntegerLiteral
QuantifierPrefix
SignedInteger
StrUnsignedDecimalLiteral
DecimalDigit:
DecimalDigit
::= '0'
| '1'
| '2'
| '3'
| '4'
| '5'
| '6'
| '7'
| '8'
| '9'
referenced by:
DecimalDigits
EscapeCharacter
NonOctalDecimalIntegerLiteral
uriUnescaped
NonZeroDigit:
NonZeroDigit
::= '1'
| '2'
| '3'
| '4'
| '5'
| '6'
| '7'
| '8'
| '9'
referenced by:
DecimalIntegerLiteral
LegacyOctalIntegerLiteral
ExponentPart:
ExponentPart
::= ExponentIndicator SignedInteger
referenced by:
DecimalLiteral
StrUnsignedDecimalLiteral
ExponentIndicator:
ExponentIndicator
::= 'e'
| 'E'
referenced by:
ExponentPart
SignedInteger:
SignedInteger
::= DecimalDigits
| '+' DecimalDigits
| '-' DecimalDigits
referenced by:
ExponentPart
BinaryIntegerLiteral:
BinaryIntegerLiteral
::= '0b' BinaryDigits
| '0B' BinaryDigits
referenced by:
NumericLiteral
StrNumericLiteral
BinaryDigits:
BinaryDigits
::= BinaryDigit
| BinaryDigits BinaryDigit
referenced by:
BinaryDigits
BinaryIntegerLiteral
BinaryDigit:
BinaryDigit
::= '0'
| '1'
referenced by:
BinaryDigits
OctalIntegerLiteral:
OctalIntegerLiteral
::= '0o' OctalDigits
| '0O' OctalDigits
referenced by:
NumbericLiteral
NumericLiteral
StrNumericLiteral
OctalDigits:
OctalDigits
::= OctalDigit
| OctalDigits OctalDigit
referenced by:
OctalDigits
OctalIntegerLiteral
OctalDigit:
OctalDigit
::= '0'
| '1'
| '2'
| '3'
| '4'
| '5'
| '6'
| '7'
referenced by:
DecimalIntegerLiteral
LegacyOctalEscapeSequence
LegacyOctalIntegerLiteral
LegacyOctalLikeDecimalIntegerLiteral
OctalDigits
HexIntegerLiteral:
HexIntegerLiteral
::= '0x' HexDigits
| '0X' HexDigits
referenced by:
NumbericLiteral
NumericLiteral
StrNumericLiteral
HexDigits:
HexDigits
::= HexDigit
| HexDigits HexDigit
referenced by:
HexDigits
HexIntegerLiteral
RegExpUnicodeEscapeSequence
UnicodeEscapeSequence
HexDigit:
HexDigit ::= '0'
| '1'
| '2'
| '3'
| '4'
| '5'
| '6'
| '7'
| '8'
| '9'
| 'a'
| 'b'
| 'c'
| 'd'
| 'e'
| 'f'
| 'A'
| 'B'
| 'C'
| 'D'
| 'E'
| 'F'
referenced by:
Hex4Digits
HexDigits
HexEscapeSequence
uriEscaped
StringLiteral:
StringLiteral
::= '"' DoubleStringCharacters? '"'
| '"' SingleStringCharacters? '"'
referenced by:
CommonToken
Literal
LiteralPropertyName
ModuleSpecifier
DoubleStringCharacters:
DoubleStringCharacters
::= DoubleStringCharacter DoubleStringCharacters?
referenced by:
DoubleStringCharacters
StringLiteral
SingleStringCharacters:
SingleStringCharacters
::= SingleStringCharacter SingleStringCharacters?
referenced by:
SingleStringCharacters
StringLiteral
DoubleStringCharacter:
DoubleStringCharacter
::= [^" \ #x0012 #x0015 #x2028 #x2029]
| '\' EscapeSequence
| LineContinuation
referenced by:
DoubleStringCharacters
SingleStringCharacter:
SingleStringCharacter
::= [^' \ #x0012 #x0015 #x2028 #x2029]
| '\' EscapeSequence
| LineContinuation
referenced by:
SingleStringCharacters
LineContinuation:
LineContinuation
::= '\' LineTerminatorSequence
referenced by:
DoubleStringCharacter
SingleStringCharacter
TemplateCharacter
EscapeSequence:
EscapeSequence
::= CharacterEscapeSequence
| '0' [^ 0 1 2 3 4 5 6 7 8 9]
| HexEscapeSequence
| UnicodeEscapeSequence
| CharacterEscapeSequence
| LegacyOctalEscapeSequence
| HexEscapeSequence
| UnicodeEscapeSequence
referenced by:
DoubleStringCharacter
SingleStringCharacter
TemplateCharacter
CharacterEscapeSequence:
CharacterEscapeSequence
::= SingleEscapeCharacter
| NonEscapeCharacter
referenced by:
EscapeSequence
SingleEscapeCharacter:
SingleEscapeCharacter
::= "'"
| '"'
| '\'
| 'b'
| 'f'
| 'n'
| 'r'
| 't'
| 'v'
referenced by:
CharacterEscapeSequence
EscapeCharacter
NonEscapeCharacter:
NonEscapeCharacter
::= [^ ' " \ b f n r t v #x0012 #x0015 #x2028 #x2029]
referenced by:
CharacterEscapeSequence
EscapeCharacter:
EscapeCharacter
::= SingleEscapeCharacter
| DecimalDigit
| 'x'
| 'u'
no referencesHexEscapeSequence:
HexEscapeSequence
::= 'x' HexDigit HexDigit
referenced by:
CharacterEscape
EscapeSequence
UnicodeEscapeSequence:
UnicodeEscapeSequence
::= 'u' Hex4Digits
| 'u{' HexDigits '}'
referenced by:
EscapeSequence
IdentifierPart
IdentifierStart
Hex4Digits:
Hex4Digits
::= HexDigit HexDigit HexDigit HexDigit
referenced by:
LeadSurrogate
NonSurrogate
RegExpUnicodeEscapeSequence
TrailSurrogate
UnicodeEscapeSequence
RegularExpressionLiteral:
RegularExpressionLiteral
::= '/' RegularExpressionBody '/' RegularExpressionFlags
referenced by:
InputElementRegExp
InputElementRegExpOrTemplateTail
PrimaryExpression
RegularExpressionBody:
RegularExpressionBody
::= RegularExpressionFirstChar RegularExpressionChars
referenced by:
RegularExpressionLiteral
RegularExpressionChars:
RegularExpressionChars
::=
| RegularExpressionChars RegularExpressionChar
referenced by:
RegularExpressionBody
RegularExpressionChars
RegularExpressionFirstChar:
RegularExpressionFirstChar
::= [^ #x0012 #x0015 #x2028 #x2029 * \ / []
| RegularExpressionBackslashSequence
| RegularExpressionClass
referenced by:
RegularExpressionBody
RegularExpressionChar:
RegularExpressionChar
::= [^ #x0012 #x0015 #x2028 #x2029 \ / []
| RegularExpressionBackslashSequence
| RegularExpressionClass
referenced by:
RegularExpressionChars
RegularExpressionBackslashSequence:
RegularExpressionBackslashSequence
::= '\' RegularExpressionNonTerminator
referenced by:
RegularExpressionChar
RegularExpressionClassChar
RegularExpressionFirstChar
RegularExpressionNonTerminator:
RegularExpressionNonTerminator
::= [^#x0012 #x0015 #x2028 #x2029]
referenced by:
RegularExpressionBackslashSequence
RegularExpressionClass:
RegularExpressionClass
::= '[' RegularExpressionClassChars ']'
referenced by:
RegularExpressionChar
RegularExpressionFirstChar
RegularExpressionClassChars:
RegularExpressionClassChars
::=
| RegularExpressionClassChars RegularExpressionClassChar
referenced by:
RegularExpressionClass
RegularExpressionClassChars
RegularExpressionClassChar:
RegularExpressionClassChar
::= [^ \ #x0012 #x0015 #x2028 #x2029 #x005D]
| RegularExpressionBackslashSequence
referenced by:
RegularExpressionClassChars
RegularExpressionFlags:
RegularExpressionFlags
::=
| RegularExpressionFlags IdentifierPart
referenced by:
RegularExpressionFlags
RegularExpressionLiteral
Template:
Template ::= NoSubstitutionTemplate
| TemplateHead
referenced by:
CommonToken
NoSubstitutionTemplate:
NoSubstitutionTemplate
::= '`' TemplateCharacters? '`'
referenced by:
Template
TemplateLiteral
TemplateHead:
TemplateHead
::= '`' TemplateCharacters? '${'
referenced by:
Template
TemplateLiteral
TemplateSubstitutionTail:
TemplateSubstitutionTail
::= TemplateMiddle
| TemplateTail
referenced by:
InputElementRegExpOrTemplateTail
InputElementTemplateTail
TemplateMiddle:
TemplateMiddle
::= '}' TemplateCharacters? '${'
referenced by:
TemplateMiddleList
TemplateSubstitutionTail
TemplateTail:
TemplateTail
::= '}' TemplateCharacters? '`'
referenced by:
TemplateSpans
TemplateSubstitutionTail
TemplateCharacters:
TemplateCharacters
::= TemplateCharacter TemplateCharacters?
referenced by:
NoSubstitutionTemplate
TemplateCharacters
TemplateHead
TemplateMiddle
TemplateTail
TemplateCharacter:
TemplateCharacter
::= '$' [^{]
| '\' EscapeSequence
| LineContinuation
| LineTerminatorSequence
| [^ ` \ $ #x0012 #x0015 #x2028 #x2029]
referenced by:
TemplateCharacters
IdentifierReference:
IdentifierReference
::= Identifier
| 'yield'
referenced by:
CoverInitializedName
PrimaryExpression
PropertyDefinition
BindingIdentifier:
BindingIdentifier
::= Identifier
| 'yield'
referenced by:
ArrowParameters
BindingRestElement
CatchParameter
ClassDeclaration
ClassExpression
CoverParenthesizedExpressionAndArrowParameterList
ForBinding
FunctionDeclaration
FunctionExpression
GeneratorDeclaration
GeneratorExpression
ImportedBinding
LexicalBinding
SingleNameBinding
VariableDeclaration
LabelIdentifier:
LabelIdentifier
::= Identifier
| 'yield'
referenced by:
BreakStatement
ContinueStatement
LabelledStatement
Identifier:
Identifier
::= IdentifierName
referenced by:
BindingIdentifier
IdentifierReference
LabelIdentifier
PrimaryExpression:
PrimaryExpression
::= 'this'
| IdentifierReference
| Literal
| ArrayLiteral
| ObjectLiteral
| FunctionExpression
| ClassExpression
| GeneratorExpression
| RegularExpressionLiteral
| TemplateLIteral
| CoverParenthesizedExpressionAndArrowParameterList
referenced by:
MemberExpression
CoverParenthesizedExpressionAndArrowParameterList:
CoverParenthesizedExpressionAndArrowParameterList
::= '(' Expression ')'
| '(' ')'
| '(' '...' BindingIdentifier ')'
| '(' Expression ',' '...' BindingIdentifier ')'
referenced by:
ArrowParameters
PrimaryExpression
ParenthesizedExpression:
ParenthesizedExpression
::= '(' Expression ')'
no referencesLiteral:
Literal ::= NullLiteral
| BooleanLiteral
| NumbericLiteral
| StringLiteral
referenced by:
PrimaryExpression
ArrayLiteral:
ArrayLiteral
::= '[' Elision? ']'
| '[' ElementList ']'
| '[' ElementList ',' Elision? ']'
referenced by:
PrimaryExpression
ElementList:
ElementList
::= Elision? AssignmentExpression
| Elision? SpreadElement
| ElementList ',' Elision? AssignmentExpression
| ElementLIst ','
| Elision? SpreadElement
referenced by:
ArrayLiteral
ElementList
Elision:
Elision ::= ','
| Elision ','
referenced by:
ArrayBindingPattern
ArrayLiteral
BindingElisionElement
ElementList
Elision
SpreadElement:
SpreadElement
::= '...' AssignmentExpression
referenced by:
ElementList
ObjectLiteral:
ObjectLiteral
::= '{' '}'
| '{' PropertyDefinitionList '}'
| '{' PropertyDefinitionList ',' '}'
referenced by:
PrimaryExpression
PropertyDefinitionList:
PropertyDefinitionList
::= PropertyDefinition
| PropertyDefinitionList ',' PropertyDefinition
referenced by:
ObjectLiteral
PropertyDefinitionList
PropertyDefinition:
PropertyDefinition
::= IdentifierReference
| CoverInitializedName
| PropertyName ':' AssignmentExpression
| MethodDefinition
referenced by:
PropertyDefinitionList
PropertyName:
PropertyName
::= LiteralPropertyName
| ComputedPropertyName
referenced by:
BindingProperty
GeneratorMethod
MethodDefinition
PropertyDefinition
LiteralPropertyName:
LiteralPropertyName
::= IdentifierName
| StringLiteral
| NumericLiteral
referenced by:
PropertyName
ComputedPropertyName:
ComputedPropertyName
::= '[' AssignmentExpression ']'
referenced by:
PropertyName
CoverInitializedName:
CoverInitializedName
::= IdentifierReference Initializer
referenced by:
PropertyDefinition
Initializer:
Initializer
::= '=' AssignmentExpression
referenced by:
BindingElement
CoverInitializedName
LexicalBinding
SingleNameBinding
VariableDeclaration
TemplateLiteral:
TemplateLiteral
::= NoSubstitutionTemplate
| TemplateHead Expression TemplateSpans
referenced by:
CallExpression
MemberExpression
TemplateSpans:
TemplateSpans
::= TemplateTail
| TemplateMiddleList TemplateTail
referenced by:
TemplateLiteral
TemplateMiddleList:
TemplateMiddleList
::= TemplateMiddle Expression
| TemplateMiddleList TemplateMiddle Expression
referenced by:
TemplateMiddleList
TemplateSpans
MemberExpression:
MemberExpression
::= PrimaryExpression
| MemberExpression '[' Expression ']'
| MemberExpression '.' IdentifierName
| MemberExpression TemplateLiteral
| SuperProperty
| MetaProperty
| 'new' MemberExpression Arguments
referenced by:
CallExpression
MemberExpression
NewExpression
SuperProperty:
SuperProperty
::= 'super' '[' Expression ']'
| 'super' '.' IdentifierName
referenced by:
MemberExpression
MetaProperty:
MetaProperty
::= NewTarget
referenced by:
MemberExpression
NewTarget:
NewTarget
::= 'new' '.' 'target'
referenced by:
MetaProperty
NewExpression:
NewExpression
::= MemberExpression
| 'new' NewExpression
referenced by:
LeftHandSideExpression
NewExpression
CallExpression:
CallExpression
::= MemberExpression Arguments
| SuperCall
| CallExpression Arguments
| CallExpression '[' Expression ']'
| CallExpression '.' IdentifierName
| CallExpression TemplateLiteral
referenced by:
CallExpression
LeftHandSideExpression
SuperCall:
SuperCall
::= 'super' Arguments
referenced by:
CallExpression
Arguments:
Arguments
::= '(' ')'
| '(' ArgumentList ')'
referenced by:
CallExpression
MemberExpression
SuperCall
ArgumentList:
ArgumentList
::= AssignmentExpression
| '...' AssignmentExpression
| ArgumentList ',' AssignmentExpression
| ArugmentList ',' '...' AssignmentExpression
referenced by:
ArgumentList
Arguments
LeftHandSideExpression:
LeftHandSideExpression
::= NewExpression
| CallExpression
referenced by:
AssignmentExpression
ClassHeritage
IterationStatement
PostfixExpression
PostfixExpression:
PostfixExpression
::= LeftHandSideExpression
| LeftHandSideExpression '++'
| LeftHandSideExpression '--'
referenced by:
UnaryExpression
UnaryExpression:
UnaryExpression
::= PostfixExpression
| 'delete' UnaryExpression
| 'void' UnaryExpression
| 'typeof' UnaryExpression
| '++' UnaryExpression
| '--' UnaryExpression
| '+' UnaryExpression
| '-' UnaryExpression
| '~' UnaryExpression
| '!' UnaryExpression
referenced by:
MultiplicativeExpression
UnaryExpression
MultiplicativeExpression:
MultiplicativeExpression
::= UnaryExpression
| MultiplicativeExpression MultiplicativeOperator UnaryExpression
referenced by:
AdditiveExpression
MultiplicativeExpression
MultiplicativeOperator:
MultiplicativeOperator
::= [* / %]
referenced by:
MultiplicativeExpression
AdditiveExpression:
AdditiveExpression
::= MultiplicativeExpression
| AdditiveExpression '+' MultiplicativeExpression
| AdditiveExpression '-' MultiplicativeExpression
referenced by:
AdditiveExpression
ShiftExpression
ShiftExpression:
ShiftExpression
::= AdditiveExpression
| ShiftExpression '<<' AdditiveExpression
| ShiftExpression '>>' AdditiveExpression
| ShiftExpression '>>>' AdditiveExpression
referenced by:
RelationalExpression
ShiftExpression
RelationalExpression:
RelationalExpression
::= ShiftExpression
| RelationalExpression '<' ShiftExpression
| RelationalExpression '>' ShiftExpression
| RelationalExpression '<=' ShiftExpression
| RelationalExpression '>=' ShiftExpression
| RelationalExpression 'instanceof' ShiftExpression
| RelationalExpression 'in' ShiftExpression
referenced by:
BitwiseANDExpression
EqualityExpression
RelationalExpression
EqualityExpression:
EqualityExpression
::= RelationalExpression
| EqualityExpression '==' RelationalExpression
| EqualityExpression '!=' RelationalExpression
| EqualityExpression '===' RelationalExpression
| EqualityExpression '!==' RelationalExpression
referenced by:
EqualityExpression
BitwiseANDExpression:
BitwiseANDExpression
::= RelationalExpression
| BitwiseANDExpression '&' RelationalExpression
referenced by:
BitwiseANDExpression
BitwiseXORExpression
BitwiseXORExpression:
BitwiseXORExpression
::= BitwiseANDExpression
| BitwiseXORExpression '^' BitwiseANDExpression
referenced by:
BitwiseORExpression
BitwiseXORExpression
BitwiseORExpression:
BitwiseORExpression
::= BitwiseXORExpression
| BitwiseORExpression '|' BitwiseXORExpression
referenced by:
BitwiseORExpression
ConditionalExpression:
ConditionalExpression
::= LogicalORExpression
| LogicalORExpression '?' AssignmentExpression ':' AssignmentExpression
referenced by:
AssignmentExpression
AssignmentExpression:
AssignmentExpression
::= ConditionalExpression
| YieldExpression
| ArrowFunction
| LeftHandSideExpression '=' AssignmentExpression
| LeftHandSideExpression AssignmentOperator AssignmentExpression
referenced by:
ArgumentList
AssignmentExpression
ComputedPropertyName
ConciseBody
ConditionalExpression
ElementList
ExportDeclaration
Expression
Initializer
IterationStatement
PropertyDefinition
SpreadElement
YieldExpression
AssignmentOperator:
AssignmentOperator
::= '*='
| '/='
| '%='
| '+='
| '-='
| '<<='
| '>>='
| '>>>='
| '&='
| '^='
| '|='
referenced by:
AssignmentExpression
Expression:
Expression
::= AssignmentExpression
| Expression AssignmentExpression
referenced by:
CallExpression
CaseClause
CoverParenthesizedExpressionAndArrowParameterList
Expression
ExpressionStatement
IfStatement
IterationStatement
MemberExpression
ParenthesizedExpression
ReturnStatement
SuperProperty
SwitchStatement
TemplateLiteral
TemplateMiddleList
ThrowStatement
WithStatement
Statement:
Statement
::= BlockStatement
| VariableStatement
| EmptyStatement
| ExpressionStatement
| IfStatement
| BreakableStatement
| ContinueStatement
| BreakStatement
| ReturnStatement
| WithStatement
| LabelledStatement
| ThrowStatement
| TryStatement
| DebuggerStatement
referenced by:
Grammer
IfStatement
IterationStatement
LabelledItem
StatementListItem
WithStatement
Declaration:
Declaration
::= HoistableDeclaration
| ClassDeclaration
| LexicalDeclaration
referenced by:
ExportDeclaration
StatementListItem
HoistableDeclaration:
HoistableDeclaration
::= FunctionDeclaration
| GeneratorDeclaration
referenced by:
Declaration
ExportDeclaration
BreakableStatement:
BreakableStatement
::= IterationStatement
| SwitchStatement
referenced by:
Statement
BlockStatement:
BlockStatement
::= Block
referenced by:
Statement
Block:
Block ::= '{' StatementList? '}'
referenced by:
BlockStatement
Catch
Finally
TryStatement
StatementList:
StatementList
::= StatementListItem
| StatementList StatementListItem
referenced by:
Block
CaseClause
DefaultClause
FunctionStatementList
ScriptBody
StatementList
StatementListItem:
StatementListItem
::= Statement
| Declaration
referenced by:
ModuleItem
StatementList
LexicalDeclaration:
LexicalDeclaration
::= LetOrConst BindingList
referenced by:
Declaration
IterationStatement
LetOrConst:
LetOrConst
::= 'let'
| 'const'
referenced by:
ForDeclaration
LexicalDeclaration
BindingList:
BindingList
::= LexicalBinding
| BindingList ',' LexicalBinding
referenced by:
BindingList
LexicalDeclaration
LexicalBinding:
LexicalBinding
::= BindingIdentifier Initializer?
| BindingPattern Initializer
referenced by:
BindingList
VariableStatement:
VariableStatement
::= 'var' VariableDeclarationList
referenced by:
ExportDeclaration
Statement
VariableDeclarationList:
VariableDeclarationList
::= VariableDeclaration
| VariableDeclarationList ',' VariableDeclaration
referenced by:
IterationStatement
VariableDeclarationList
VariableStatement
VariableDeclaration:
VariableDeclaration
::= BindingIdentifier Initializer?
| BindingPattern Initializer
referenced by:
VariableDeclarationList
BindingPattern:
BindingPattern
::= ObjectBindingPattern
| ArrayBindingPattern
referenced by:
BindingElement
CatchParameter
ForBinding
LexicalBinding
VariableDeclaration
ObjectBindingPattern:
ObjectBindingPattern
::= '{' '}'
| '{' BindingPropertyList '}'
| '{' BindingPropertyList ',' '}'
referenced by:
BindingPattern
ArrayBindingPattern:
ArrayBindingPattern
::= '[' Elision? BindingRestElement? ']'
| '[' BindingElementList ']'
| '[' BindingElementList ',' Elision? BindingRestElement? ']'
referenced by:
BindingPattern
BindingPropertyList:
BindingPropertyList
::= BindingProperty
| BindingPropertyList BindingProperty
referenced by:
BindingPropertyList
ObjectBindingPattern
BindingElementList:
BindingElementList
::= BindingElisionElement
| BindingElementList ',' BindingElisionElement
referenced by:
ArrayBindingPattern
BindingElementList
BindingElisionElement:
BindingElisionElement
::= Elision? BindingElement
referenced by:
BindingElementList
BindingProperty:
BindingProperty
::= SingleNameBinding
| PropertyName ':' BindingElement
referenced by:
BindingPropertyList
BindingElement:
BindingElement
::= SingleNameBinding
| BindingPattern Initializer?
referenced by:
BindingElisionElement
BindingProperty
FormalParameter
SingleNameBinding:
SingleNameBinding
::= BindingIdentifier Initializer?
referenced by:
BindingElement
BindingProperty
BindingRestElement:
BindingRestElement
::= '...' BindingIdentifier
referenced by:
ArrayBindingPattern
FunctionRestParameter
EmptyStatement:
EmptyStatement
::= ';'
referenced by:
Statement
ExpressionStatement:
ExpressionStatement
::= Expression ';'
referenced by:
Statement
IfStatement:
IfStatement
::= 'if' '(' Expression ')' Statement 'else' statement
| 'if' '(' Expression ')' Statement
referenced by:
Statement
IterationStatement:
IterationStatement
::= 'do' Statement 'while' '(' Expression ')' ';'
| 'while' '(' Expression ')' Statement
| 'for' '(' Expression? ';' Expression? ';' Expression? ')' Statement
| 'for' '(' 'var' VariableDeclarationList ';' Expression? ';' Expression? ')' Statement
| 'for' '(' LexicalDeclaration Expression? ';' Expression? ';' Expression? ')' Statement
| 'for' '(' LeftHandSideExpression 'in' Expression ')' Statement
| 'for' '(' 'var' ForBinding 'in' Expression ')' Statement
| 'for' '(' ForDeclaration 'in' Expression ')' Statement
| 'for' '(' LeftHandSideExpression 'of' AssignmentExpression ')' Statement
| 'for' '(' 'var' ForBinding 'of' AssignmentExpression ')' Statement
| 'for' '(' LexicalDeclaration Expression 'of' AssignmentExpression ')' Statement
referenced by:
BreakableStatement
ForDeclaration:
ForDeclaration
::= LetOrConst ForBinding
referenced by:
IterationStatement
ForBinding:
ForBinding
::= BindingIdentifier
| BindingPattern
referenced by:
ForDeclaration
IterationStatement
ContinueStatement:
ContinueStatement
::= 'continue' ';'
| 'continue' LabelIdentifier ';'
referenced by:
Statement
BreakStatement:
BreakStatement
::= 'break' ';'
| 'break' LabelIdentifier ';'
referenced by:
Statement
ReturnStatement:
ReturnStatement
::= 'return' ';'
| 'return' Expression ';'
referenced by:
Statement
WithStatement:
WithStatement
::= 'with' '(' Expression ')' Statement
referenced by:
Statement
SwitchStatement:
SwitchStatement
::= 'switch' '(' Expression ')' CaseBlock
referenced by:
BreakableStatement
CaseBlock:
CaseBlock
::= '{' CaseClauses? '}'
| '{' CaseClauses? DefaultClause CaseClauses? '}'
referenced by:
SwitchStatement
CaseClauses:
CaseClauses
::= CaseClause
| CaseClauses CaseClause
referenced by:
CaseBlock
CaseClauses
CaseClause:
CaseClause
::= 'case' Expression ':' StatementList?
referenced by:
CaseClauses
DefaultClause:
DefaultClause
::= 'default' ':' StatementList?
referenced by:
CaseBlock
LabelledStatement:
LabelledStatement
::= LabelIdentifier ':' LabelledItem
referenced by:
Statement
LabelledItem:
LabelledItem
::= Statement
| FunctionDeclaration
referenced by:
LabelledStatement
ThrowStatement:
ThrowStatement
::= 'throw' Expression ';'
referenced by:
Statement
TryStatement:
TryStatement
::= 'try' Block Catch
| 'try' Block Finally
| 'try' Block Catch finally
referenced by:
Statement
Catch:
Catch ::= 'catch' '(' CatchParameter ')' Block
referenced by:
TryStatement
Finally:
Finally ::= 'finally' Block
referenced by:
TryStatement
CatchParameter:
CatchParameter
::= BindingIdentifier
| BindingPattern
referenced by:
Catch
DebuggerStatement:
DebuggerStatement
::= 'debugger' ';'
referenced by:
Statement
FunctionDeclaration:
FunctionDeclaration
::= 'function' BindingIdentifier '(' FormalParameters ')' '{' FunctionBody '}'
| 'function' '(' FormalParameters ')' '{' FunctionBody '}'
referenced by:
HoistableDeclaration
LabelledItem
FunctionExpression:
FunctionExpression
::= 'function' BindingIdentifier? '(' FormalParameters ')' '{' FunctionBody '}'
referenced by:
PrimaryExpression
StrictFormalParameters:
StrictFormalParameters
::= FormalParameters
referenced by:
ArrowFormalParameters
GeneratorMethod
MethodDefinition
FormalParameters:
FormalParameters
::=
| FormalParameterList
referenced by:
FunctionDeclaration
FunctionExpression
GeneratorDeclaration
GeneratorExpression
StrictFormalParameters
FormalParameterList:
FormalParameterList
::= FunctionRestParameter
| FormalsList
| FormalsList ',' FormalParameter
referenced by:
FormalParameters
FormalsList:
FormalsList
::= FormalParameter
| FormalsList ',' FormalParameter
referenced by:
FormalParameterList
FormalsList
FunctionRestParameter:
FunctionRestParameter
::= BindingRestElement
referenced by:
FormalParameterList
FormalParameter:
FormalParameter
::= BindingElement
referenced by:
FormalParameterList
FormalsList
PropertySetParameterList
FunctionBody:
FunctionBody
::= FunctionStatementList
referenced by:
ConciseBody
FunctionDeclaration
FunctionExpression
GeneratorBody
MethodDefinition
FunctionStatementList:
FunctionStatementList
::= StatementList?
referenced by:
FunctionBody
ArrowFunction:
ArrowFunction
::= ArrowParameters '=>' ConciseBody
referenced by:
AssignmentExpression
ArrowParameters:
ArrowParameters
::= BindingIdentifier
| CoverParenthesizedExpressionAndArrowParameterList
referenced by:
ArrowFunction
ConciseBody:
ConciseBody
::= AssignmentExpression
| '{' FunctionBody '}'
referenced by:
ArrowFunction
ArrowFormalParameters:
ArrowFormalParameters
::= '(' StrictFormalParameters ')'
no referencesMethodDefinition:
MethodDefinition
::= PropertyName '(' StrictFormalParameters ')' '{' FunctionBody '}'
| GeneratorMethod
| 'get' PropertyName '(' ')' '{' FunctionBody '}'
| 'set' PropertyName '(' PropertySetParameterList ')' '{' FunctionBody '}'
referenced by:
ClassElement
PropertyDefinition
PropertySetParameterList:
PropertySetParameterList
::= FormalParameter
referenced by:
MethodDefinition
GeneratorMethod:
GeneratorMethod
::= '*' PropertyName '(' StrictFormalParameters ')' '{' GeneratorBody '}'
referenced by:
MethodDefinition
GeneratorDeclaration:
GeneratorDeclaration
::= 'function' '*' BindingIdentifier '(' FormalParameters ')' '{' GeneratorBody '}'
| 'function' '*' '(' FormalParameters ')' '{' GeneratorBody '}'
referenced by:
HoistableDeclaration
GeneratorExpression:
GeneratorExpression
::= 'function' '*' BindingIdentifier? '(' FormalParameters ')' '{' GeneratorBody '}'
referenced by:
PrimaryExpression
GeneratorBody:
GeneratorBody
::= FunctionBody
referenced by:
GeneratorDeclaration
GeneratorExpression
GeneratorMethod
YieldExpression:
YieldExpression
::= 'yield'
| 'yield' AssignmentExpression
| 'yield' '*' AssignmentExpression
referenced by:
AssignmentExpression
ClassDeclaration:
ClassDeclaration
::= 'class' BindingIdentifier? ClassTail
| class ClassTail
referenced by:
Declaration
ExportDeclaration
ClassExpression:
ClassExpression
::= 'class' BindingIdentifier? ClassTail
referenced by:
PrimaryExpression
ClassTail:
ClassTail
::= ClassHeritage? '{' ClassBody? '}'
referenced by:
ClassDeclaration
ClassExpression
ClassHeritage:
ClassHeritage
::= 'extends' LeftHandSideExpression
referenced by:
ClassTail
ClassBody:
ClassBody
::= ClassElementList
referenced by:
ClassTail
ClassElementList:
ClassElementList
::= ClassElement
| classElementLIst ClassElement
referenced by:
ClassBody
ClassElement:
ClassElement
::= MethodDefinition
| 'static' MethodDefinition
| ';'
referenced by:
ClassElementList
script:
script ::= ScriptBody?
no referencesScriptBody:
ScriptBody
::= StatementList
referenced by:
script
Module:
Module ::= ModuleBody?
no referencesModuleBody:
ModuleBody
::= ModuleItemList
referenced by:
Module
ModuleItemList:
ModuleItemList
::= ModuleItem
| ModuleItemList ModuleItem
referenced by:
ModuleBody
ModuleItemList
ModuleItem:
ModuleItem
::= ImportDeclaration
| ExportDeclaration
| StatementListItem
referenced by:
ModuleItemList
ImportDeclaration:
ImportDeclaration
::= 'import' ImportClause FromClause ';'
| 'import' ModuleSpecifier ';'
referenced by:
ModuleItem
ImportClause:
ImportClause
::= ImportedDefaultBinding
| NameSpaceImport
| NamedImports
| ImportedDefaultBinding ',' NameSpaceImport
| ImportedDefaultBinding ',' NamedImports
referenced by:
ImportDeclaration
ImportedDefaultBinding:
ImportedDefaultBinding
::= ImportedBinding
referenced by:
ImportClause
NameSpaceImport:
NameSpaceImport
::= '*' 'as' ImportedBinding
referenced by:
ImportClause
NamedImports:
NamedImports
::= '{' '}'
referenced by:
ImportClause
FromClause:
FromClause
::= 'from' ModuleSpecifier
referenced by:
ExportDeclaration
ImportDeclaration
ImportsList:
ImportsList
::= ImportSpecifier
| ImportsList ',' ImportSpecifier
referenced by:
ImportsList
ImportSpecifier:
ImportSpecifier
::= ImportedBinding
| IdentifierName 'as' ImportedBinding
referenced by:
ImportsList
ModuleSpecifier:
ModuleSpecifier
::= StringLiteral
referenced by:
FromClause
ImportDeclaration
ImportedBinding:
ImportedBinding
::= BindingIdentifier
referenced by:
ImportSpecifier
ImportedDefaultBinding
NameSpaceImport
ExportDeclaration:
ExportDeclaration
::= 'export' '*' FromClause ';'
| 'export' ExportClause FromClause ';'
| 'export' ExportClause ';'
| 'export' VariableStatement
| 'export' Declaration
| 'export' 'default' HoistableDeclaration
| 'export' 'default' ClassDeclaration
| 'export' 'default' AssignmentExpression ';'
referenced by:
ModuleItem
ExportClause:
ExportClause
::= '{' '}'
| '{' ExportList '}'
| '{' ExportList ',' '}'
referenced by:
ExportDeclaration
ExportList:
ExportList
::= ExportSpecifier
| ExportsList ',' ExportSpecifier
referenced by:
ExportClause
ExportSpecifier:
ExportSpecifier
::= IdentifierName
| IdentifierName 'as' IdentifierName
referenced by:
ExportList
StringNumericLiteral:
StringNumericLiteral
::= StrWhiteSpace?
| StrWhiteSpace? StrNumericLiteral StrWhiteSpace?
no referencesStrWhiteSpace:
StrWhiteSpace
::= StrWhiteSpaceChar StrWhiteSpace?
referenced by:
StrWhiteSpace
StringNumericLiteral
StrWhiteSpaceChar:
StrWhiteSpaceChar
::= WhiteSpace
| LineTerminator
referenced by:
StrWhiteSpace
StrNumericLiteral:
StrNumericLiteral
::= StrDecimalLiteral
| BinaryIntegerLiteral
| OctalIntegerLiteral
| HexIntegerLiteral
referenced by:
StringNumericLiteral
StrDecimalLiteral:
StrDecimalLiteral
::= StrUnsignedDecimalLiteral
| '+' StrUnsignedDecimalLiteral
| '-' StrUnsignedDecimalLiteral
referenced by:
StrNumericLiteral
StrUnsignedDecimalLiteral:
StrUnsignedDecimalLiteral
::= 'Infinity'
| DecimalDigits '.' DecimalDigits? ExponentPart?
| '.' DecimalDigits ExponentPart?
| DecimalDigits ExponentPart?
referenced by:
StrDecimalLiteral
uri:
uri ::= uriCharacters?
no referencesuriCharacters:
uriCharacters
::= uriCharacter uriCharacters?
referenced by:
uri
uriCharacters
uriCharacter:
uriCharacter
::= uriReserved
| uriUnescaped
| uriEscaped
referenced by:
uriCharacters
uriReserved:
uriReserved
::= [ ; / ? : @ & = + $ , ]
referenced by:
uriCharacter
uriUnescaped:
uriUnescaped
::= uriAlpha
| DecimalDigit
| uriMark
referenced by:
uriCharacter
uriEscaped:
uriEscaped
::= '%' HexDigit HexDigit
referenced by:
uriCharacter
uriAlpha:
uriAlpha ::= [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
referenced by:
ControlEscape
uriUnescaped
uriMark:
uriMark ::= [-_.!~*'()]
referenced by:
uriUnescaped
Pattern:
Pattern ::= Disjunction
no referencesDisjunction:
Disjunction
::= Alternative
| Alternative '|' Disjunction
referenced by:
Assertion
Atom
AtomNoBrace
Disjunction
Pattern
QuantifiableAssertion
Alternative:
Alternative
::=
| Alternative Term
referenced by:
Alternative
Disjunction
Term:
Term ::= Assertion
| Atom
| Atom Quantifier
| ExtendedTerm
| Assertion
| Atom
| Atom Quantifier
referenced by:
Alternative
Assertion:
Assertion
::= '^'
| '$'
| '\' 'b'
| '\' 'B'
| '(' '?' '=' Disjunction ')'
| '(' '?' '!' Disjunction ')'
| '^'
| '$'
| '\' 'b'
| '\' 'B'
| '(' '?' '=' Disjunction ')'
| '(' '?' '!' Disjunction ')'
| QuantifiableAssertion
referenced by:
ExtendedTerm
Term
Quantifier:
Quantifier
::= QuantifierPrefix
| QuantifierPrefix '?'
referenced by:
ExtendedTerm
Term
QuantifierPrefix:
QuantifierPrefix
::= '*'
| '+'
| '?'
| '{' DecimalDigits '}'
| '{' DecimalDigits ',' '}'
| '{' DecimalDigits ',' DecimalDigits '}'
referenced by:
Quantifier
Atom:
Atom ::= PatternCharacter
| '.'
| '\' AtomEscape
| CharacterClass
| '(' Disjunction ')'
| '(' '?' ':' Disjunction ')'
| PatternCharacter
| '.'
| '\' AtomEscape
| CharacterClass
| '(' Disjunction ')'
| '(' '?' ':' Disjunction ')'
referenced by:
ExtendedTerm
Term
SyntaxCharacter:
SyntaxCharacter
::= [$^\.*+?()[#x005D{}|]
referenced by:
IdentityEscape
PatternCharacter:
PatternCharacter
::= [^$^\.*+?()[#x005D{}|]
| [^#x5E$\.*+?()[#x005D|]
referenced by:
Atom
AtomEscape:
AtomEscape
::= DecimalEscape
| CharacterEscape
| CharacterClassEscape
| DecimalEscape
| CharacterEscape
| CharacterClassEscape
| DecimalEscape
| CharacterClassEscape
| CharacterEscape
referenced by:
Atom
AtomNoBrace
CharacterEscape:
CharacterEscape
::= ControlEscape
| 'c' ControlLetter
| HexEscapeSequence
| RegExpUnicodeEscapeSequence
| IdentityEscape
| ControlEscape
| 'c' ControlLetter
| HexEscapeSequence
| RegExpUnicodeEscapeSequence
| LegacyOctalEscapeSequence
| IdentityEscape
referenced by:
AtomEscape
ClassEscape
ControlLetter:
ControlLetter
::= [fnrtv]
referenced by:
CharacterEscape
ControlEscape:
ControlEscape
::= uriAlpha
referenced by:
CharacterEscape
RegExpUnicodeEscapeSequence:
RegExpUnicodeEscapeSequence
::= 'u' LeadSurrogate '\u' TrailSurrogate
| 'u' LeadSurrogate
| 'u' TrailSurrogate
| 'u' NonSurrogate
| Hex4Digits
| 'u{' HexDigits '}'
referenced by:
CharacterEscape
LeadSurrogate:
LeadSurrogate
::= Hex4Digits
referenced by:
RegExpUnicodeEscapeSequence
TrailSurrogate:
TrailSurrogate
::= Hex4Digits
referenced by:
RegExpUnicodeEscapeSequence
NonSurrogate:
NonSurrogate
::= Hex4Digits
referenced by:
RegExpUnicodeEscapeSequence
IdentityEscape:
IdentityEscape
::= SyntaxCharacter
| '/'
| [^UnicodeContinue]
| SyntaxCharacter
| '/'
| SourceCharacter
referenced by:
CharacterEscape
ClassAtomNoDashInRange
DecimalEscape:
DecimalEscape
::= DecimalIntegerLiteral
referenced by:
AtomEscape
ClassEscape
CharacterClassEscape:
CharacterClassEscape
::= [dDsSwW]
referenced by:
AtomEscape
ClassEscape
CharacterClass:
CharacterClass
::= '[' ClassRanges ']'
| '[' '^' ClassRanges ']'
referenced by:
Atom
AtomNoBrace
ClassRanges:
ClassRanges
::=
| NonemptyClassRanges
referenced by:
CharacterClass
NonemptyClassRanges
NonemptyClassRangesNoDash
NonemptyClassRanges:
NonemptyClassRanges
::= ClassAtom
| ClassAtom NonemptyClassRangesNoDash
| ClassAtom '-' ClassAtom ClassRanges
| ClassAtom
| ClassAtom NonemptyClassRangesNoDash
| ClassAtom '-' ClassAtom ClassRanges
| ClassAtomInRange '-' ClassAtomInRange ClassRanges
referenced by:
ClassRanges
NonemptyClassRangesNoDash:
NonemptyClassRangesNoDash
::= ClassAtom
| ClassAtomNoDash NonemptyClassRangesNoDash
| ClassAtomNoDash '-' ClassAtom ClassRanges
| ClassAtom
| ClassAtomNoDash NonemptyClassRangesNoDash
| ClassAtomNoDash '-' ClassAtom ClassRanges
| ClassAtomNoDashInRange '-' ClassAtomInRange ClassRanges
referenced by:
NonemptyClassRanges
NonemptyClassRangesNoDash
ClassAtom:
ClassAtom
::= '-'
| ClassAtomNoDash
| '-'
| ClassAtomNoDashInRange
referenced by:
NonemptyClassRanges
NonemptyClassRangesNoDash
ClassAtomNoDash:
ClassAtomNoDash
::= [^\#x005D#x2D]
| '\' ClassEscape
| [^\#x005D#x2D]
| '\' ClassEscape
referenced by:
ClassAtom
NonemptyClassRangesNoDash
ClassEscape:
ClassEscape
::= DecimalEscape
| 'b'
| '-'
| CharacterEscape
| CharacterClassEscape
| DecimalEscape
| CharacterEscape
| CharacterClassEscape
| DecimalEscape
| 'b'
| CharacterClassEscape
| CharacterEscape
referenced by:
ClassAtomNoDash
ClassAtomNoDashInRange
NumericLiteral:
NumericLiteral
::= DecimalLiteral
| BinaryIntegerLiteral
| OctalIntegerLiteral
| HexIntegerLiteral
| LegacyOctalIntegerLiteral
referenced by:
CommonToken
LiteralPropertyName
LegacyOctalIntegerLiteral:
LegacyOctalIntegerLiteral
::= '0' OctalDigit
| NonZeroDigit DecimalDigits?
| NonOctalDecimalIntegerLiteral
referenced by:
DecimalIntegerLiteral
NumericLiteral
NonOctalDecimalIntegerLiteral:
NonOctalDecimalIntegerLiteral
::= '0' NonOctalDigit
| LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
| NonOctalDecimalIntegerLiteral DecimalDigit
referenced by:
LegacyOctalIntegerLiteral
NonOctalDecimalIntegerLiteral
LegacyOctalLikeDecimalIntegerLiteral:
LegacyOctalLikeDecimalIntegerLiteral
::= '0' OctalDigit
| LegacyOctalLikeDecimalIntegerLiteral OctalDigit
referenced by:
LegacyOctalLikeDecimalIntegerLiteral
NonOctalDecimalIntegerLiteral
NonOctalDigit:
NonOctalDigit
::= '8'
| '9'
referenced by:
NonOctalDecimalIntegerLiteral
LegacyOctalEscapeSequence:
LegacyOctalEscapeSequence
::= OctalDigit
| ZeroToThree OctalDigit
| FourToSeven OctalDigit
| ZeroToThree OctalDigit OctalDigit
referenced by:
CharacterEscape
EscapeSequence
ZeroToThree:
ZeroToThree
::= [0-3]
referenced by:
LegacyOctalEscapeSequence
FourToSeven:
FourToSeven
::= [4-7]
referenced by:
LegacyOctalEscapeSequence
FirstCommentLine:
FirstCommentLine
::= SingleLineDelimitedCommentChars
referenced by:
MultiLineComment
SingleLineHTMLOpenComment:
SingleLineHTMLOpenComment
::= '<!--' SingleLineCommentChars?
referenced by:
Comment
SingleLineHTMLCloseComment:
SingleLineHTMLCloseComment
::= LineTerminatorSequence HTMLCloseComment
referenced by:
Comment
SingleLineDelimiterComment:
SingleLineDelimiterComment
::= '/*' SingleLineDelimitedCommentChars? '*/'
no referencesHTMLCloseComment:
HTMLCloseComment
::= WhiteSpaceSequence? SingleLineDelimitedCommentSequence? '-->' SingleLineCommentChars?
referenced by:
MultiLineComment
SingleLineHTMLCloseComment
SingleLineDelimitedCommentChars:
SingleLineDelimitedCommentChars
::= SingleLineNotAsteriskChar SingleLineDelimitedCommentChars?
| '*' SingleLinePstAsteriskCommentChars?
referenced by:
FirstCommentLine
SingleLineDelimitedCommentChars
SingleLineDelimiterComment
SingleLinePostAsteriskCommentChars
SingleLineNotAsteriskChar:
SingleLineNotAsteriskChar
::= [^*#x0012#x0015#x2028#x2029]
referenced by:
SingleLineDelimitedCommentChars
SingleLinePostAsteriskCommentChars:
SingleLinePostAsteriskCommentChars
::= SingleLineNotForwardSlashOrAsteriskChar SingleLineDelimitedCommentChars?
| '*' SingleLinePostAsteriskCommentChars?
referenced by:
SingleLinePostAsteriskCommentChars
SingleLineNotForwardSlashOrAsteriskChar:
SingleLineNotForwardSlashOrAsteriskChar
::= [^*/#x0012#x0015#x2028#x2029]
referenced by:
SingleLinePostAsteriskCommentChars
WhiteSpaceSequence:
WhiteSpaceSequence
::= WhiteSpace WhiteSpaceSequence?
referenced by:
HTMLCloseComment
SingleLineDelimitedCommentSequence
WhiteSpaceSequence
SingleLineDelimitedCommentSequence:
SingleLineDelimitedCommentSequence
::= SingleLineDelimitedComment WhiteSpaceSequence? SingleLineDelimitedCommentSequence?
referenced by:
HTMLCloseComment
SingleLineDelimitedCommentSequence
ExtendedTerm:
ExtendedTerm
::= Assertion
| AtomNoBrace Quantifier
| Atom
| QuantifiableAssertion Quantifier
referenced by:
Term
AtomNoBrace:
AtomNoBrace
::= PatternCharacterNoBrace
| '.'
| '\' AtomEscape
| CharacterClass
| '(' Disjunction ')'
| '(' '?' ':' Disjunction ')'
referenced by:
ExtendedTerm
PatternCharacterNoBrace:
PatternCharacterNoBrace
::= [^#x5E$\.*+?()[#x005D{}|]
referenced by:
AtomNoBrace
QuantifiableAssertion:
QuantifiableAssertion
::= '(' '?' '=' Disjunction ')'
| '(' '?' '!' Disjunction ')'
referenced by:
Assertion
ExtendedTerm
ClassAtomInRange:
ClassAtomInRange
::= '-'
| ClassAtomNoDashInRange
referenced by:
NonemptyClassRanges
NonemptyClassRangesNoDash
ClassAtomNoDashInRange:
ClassAtomNoDashInRange
::= [^\#x005D#x2D]
| '\' ClassEscape
| '\' IdentityEscape
referenced by:
ClassAtom
ClassAtomInRange
NonemptyClassRangesNoDash
... generated by Railroad Diagram Generator