Interface -> INTERFACE IDENTIFIER Inheritance LBRACE InterfaceMembers RBRACE SEMICOLON

PartialInterface -> PARTIAL INTERFACE IDENTIFIER LBRACE InterfaceMembers RBRACE SEMICOLON

InterfaceMembers -> ExtendedAttributeList InterfaceMember InterfaceMembers

Dictionary -> DICTIONARY IDENTIFIER Inheritance LBRACE DictionaryMembers RBRACE SEMICOLON

DictionaryMembers -> ExtendedAttributeList DictionaryMember DictionaryMembers

Exception -> EXCEPTION IDENTIFIER Inheritance LBRACE ExceptionMembers RBRACE SEMICOLON

CallbackRest -> IDENTIFIER EQUALS ReturnType LPAREN ArgumentList RPAREN SEMICOLON

ExceptionMembers -> ExtendedAttributeList ExceptionMember ExceptionMembers

ImplementsStatement -> ScopedName IMPLEMENTS ScopedName SEMICOLON

OperationRest -> ReturnType OptionalIdentifier LPAREN ArgumentList RPAREN SEMICOLON

Argument -> ExtendedAttributeList Optional Type Ellipsis ArgumentName DefaultValue

ExtendedAttributeList -> LBRACKET ExtendedAttribute ExtendedAttributes RBRACKET

ExtendedAttributes -> COMMA ExtendedAttribute ExtendedAttributes

UnionType -> LPAREN UnionMemberType OR UnionMemberType UnionMemberTypes RPAREN

ExtendedAttributeArgList -> IDENTIFIER LPAREN ArgumentList RPAREN

ExtendedAttributeNamedArgList -> IDENTIFIER EQUALS IDENTIFIER LPAREN ArgumentList RPAREN