'/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */' Comment.Multiline
'\n'          Text

'/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this file,\n * You can obtain one at http://mozilla.org/MPL/2.0/.\n */' Comment.Multiline
'\n\n'        Text

'typedef'     Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'myLong'      Name.Class
';'           Punctuation
'\n'          Text

'typedef'     Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'AnotherNameForTestInterface' Name.Class
';'           Punctuation
'\n'          Text

'typedef'     Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'NullableTestInterface' Name.Class
';'           Punctuation
'\n'          Text

'typedef'     Keyword
' '           Text
'CustomEventInit' Name.Class
' '           Text
'TestDictionaryTypedef' Name.Class
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestExternalInterface' Name.Class
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"xyz"'       Literal.String
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'TestRenamedInterface' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'callback'    Keyword
' '           Text
'interface'   Keyword
' '           Text
'TestCallbackInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'foo'         Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'bar'         Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'doSomething' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'doSomethingElse' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
','           Punctuation
' '           Text
'TestInterface' Name.Class
' '           Text
'otherArg'    Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'doSequenceLongArg' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'doSequenceStringArg' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'doMozMapLongArg' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'getSequenceOfLong' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'getSequenceOfInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'getNullableSequenceOfInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'getSequenceOfNullableInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'getNullableSequenceOfNullableInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'>'           Punctuation
' '           Text
'getSequenceOfCallbackInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'getNullableSequenceOfCallbackInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'getSequenceOfNullableCallbackInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'getNullableSequenceOfNullableCallbackInterfaces' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'getMozMapOfLong' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Dict'        Name.Class
'?'           Punctuation
' '           Text
'getDictionary' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passArrayBuffer' Name.Function
'('           Punctuation
'ArrayBuffer' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableArrayBuffer' Name.Function
'('           Punctuation
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalArrayBuffer' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ArrayBuffer' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableArrayBuffer' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableArrayBufferWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passArrayBufferView' Name.Function
'('           Punctuation
'ArrayBufferView' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passInt8Array' Name.Function
'('           Punctuation
'Int8Array'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passInt16Array' Name.Function
'('           Punctuation
'Int16Array'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passInt32Array' Name.Function
'('           Punctuation
'Int32Array'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint8Array' Name.Function
'('           Punctuation
'Uint8Array'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint16Array' Name.Function
'('           Punctuation
'Uint16Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint32Array' Name.Function
'('           Punctuation
'Uint32Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint8ClampedArray' Name.Function
'('           Punctuation
'Uint8ClampedArray' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passFloat32Array' Name.Function
'('           Punctuation
'Float32Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passFloat64Array' Name.Function
'('           Punctuation
'Float64Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfArrayBuffers' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ArrayBuffer' Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfNullableArrayBuffers' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ArrayBuffer' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicTypedArray' Name.Function
'('           Punctuation
'Float32Array' Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicNullableTypedArray' Name.Function
'('           Punctuation
'Float32Array' Keyword.Type
'?'           Punctuation
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Uint8Array'  Keyword.Type
' '           Text
'receiveUint8Array' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'Uint8Array'  Keyword.Type
' '           Text
'uint8ArrayAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'Promise'     Keyword.Type
'<'           Punctuation
'void'        Keyword.Type
'>'           Punctuation
' '           Text
'receivePromise' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'callback'    Keyword
' '           Text
'interface'   Keyword
' '           Text
'TestSingleOperationCallbackInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
' '           Text
'doSomething' Name.Function
'('           Punctuation
'short'       Keyword.Type
' '           Text
'arg'         Name.Variable
','           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'double'      Keyword.Type
'>'           Punctuation
' '           Text
'anotherArg'  Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'enum'        Keyword
' '           Text
'TestEnum'    Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'"1"'         Literal.String
','           Punctuation
'\n  '        Text
'"a"'         Literal.String
','           Punctuation
'\n  '        Text
'"b"'         Literal.String
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'callback'    Keyword
' '           Text
'TestCallback' Name.Class
' '           Text
'='           Punctuation
' '           Text
'void'        Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'['           Punctuation
'TreatNonCallableAsNull' Name.Decorator
']'           Punctuation
' '           Text
'callback'    Keyword
' '           Text
'TestTreatAsNullCallback' Name.Class
' '           Text
'='           Punctuation
' '           Text
'void'        Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n'        Text

'// Callback return value tests' Comment.Single
'\n'          Text

'callback'    Keyword
' '           Text
'TestIntegerReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'long'        Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableIntegerReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'long'        Keyword.Type
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestBooleanReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'boolean'     Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestFloatReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'float'       Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestStringReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'DOMString'   Keyword.Type
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestEnumReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestEnum'    Name.Class
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestInterfaceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestInterface' Name.Class
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableInterfaceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestExternalInterfaceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestExternalInterface' Name.Class
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableExternalInterfaceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestExternalInterface' Name.Class
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestCallbackInterfaceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestCallbackInterface' Name.Class
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableCallbackInterfaceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestCallbackReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestCallback' Name.Class
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableCallbackReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'TestCallback' Name.Class
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestObjectReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'object'      Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableObjectReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'object'      Keyword.Type
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestTypedArrayReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'ArrayBuffer' Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableTypedArrayReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestSequenceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'boolean'     Keyword.Type
'>'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestNullableSequenceReturn' Name.Class
' '           Text
'='           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'boolean'     Keyword.Type
'>'           Punctuation
'?'           Punctuation
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'// Callback argument tests' Comment.Single
'\n'          Text

'callback'    Keyword
' '           Text
'TestIntegerArguments' Name.Class
' '           Text
'='           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'long'        Keyword.Type
'?'           Punctuation
' '           Text
'arg2'        Name.Variable
','           Punctuation
'\n                                               ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg3'        Name.Variable
','           Punctuation
'\n                                               ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg4'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestInterfaceArguments' Name.Class
' '           Text
'='           Punctuation
' '           Text
'void'        Keyword.Type
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'arg2'        Name.Variable
','           Punctuation
'\n                                       ' Text
'TestExternalInterface' Name.Class
' '           Text
'arg3'        Name.Variable
','           Punctuation
'\n                                       ' Text
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'arg4'        Name.Variable
','           Punctuation
'\n                                       ' Text
'TestCallbackInterface' Name.Class
' '           Text
'arg5'        Name.Variable
','           Punctuation
'\n                                       ' Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'arg6'        Name.Variable
','           Punctuation
'\n                                       ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'arg7'        Name.Variable
','           Punctuation
'\n                                       ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg8'        Name.Variable
','           Punctuation
'\n                                       ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestExternalInterface' Name.Class
'>'           Punctuation
' '           Text
'arg9'        Name.Variable
','           Punctuation
'\n                                       ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestExternalInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg10'       Name.Variable
','           Punctuation
'\n                                       ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'>'           Punctuation
' '           Text
'arg11'       Name.Variable
','           Punctuation
'\n                                       ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg12'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestStringEnumArguments' Name.Class
' '           Text
'='           Punctuation
' '           Text
'void'        Keyword.Type
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'myString'    Name.Variable
','           Punctuation
' '           Text
'DOMString'   Keyword.Type
'?'           Punctuation
' '           Text
'nullString'  Name.Variable
','           Punctuation
'\n                                        ' Text
'TestEnum'    Name.Class
' '           Text
'myEnum'      Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestObjectArguments' Name.Class
' '           Text
'='           Punctuation
' '           Text
'void'        Keyword.Type
'('           Punctuation
'object'      Keyword.Type
' '           Text
'anObj'       Name.Variable
','           Punctuation
' '           Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'anotherObj'  Name.Variable
','           Punctuation
'\n                                    ' Text
'ArrayBuffer' Keyword.Type
' '           Text
'buf'         Name.Variable
','           Punctuation
' '           Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'buf2'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'callback'    Keyword
' '           Text
'TestOptionalArguments' Name.Class
' '           Text
'='           Punctuation
' '           Text
'void'        Keyword.Type
'('           Punctuation
'optional'    Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'aString'     Name.Variable
','           Punctuation
'\n                                      ' Text
'optional'    Keyword
' '           Text
'object'      Keyword.Type
' '           Text
'something'   Name.Variable
','           Punctuation
'\n                                      ' Text
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'aSeq'        Name.Variable
','           Punctuation
'\n                                      ' Text
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'anInterface' Name.Variable
','           Punctuation
'\n                                      ' Text
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'anotherInterface' Name.Variable
','           Punctuation
'\n                                      ' Text
'optional'    Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'aLong'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'// If you add a new test callback, add it to the forceCallbackGeneration' Comment.Single
'\n'          Text

'// method on TestInterface so it actually gets tested.' Comment.Single
'\n\n'        Text

'TestInterface' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'ImplementedInterface' Name.Class
';'           Punctuation
'\n\n'        Text

'// This interface is only for use in the constructor below' Comment.Single
'\n'          Text

'interface'   Keyword
' '           Text
'OnlyForUseInConstructor' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'Constructor' Name.Decorator
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'str'         Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'num'         Name.Variable
','           Punctuation
' '           Text
'boolean'     Keyword.Type
'?'           Punctuation
' '           Text
'boolArg'     Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'iface'       Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'iface'       Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'Date'        Name.Class
' '           Text
'arg1'        Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'ArrayBuffer' Keyword.Type
' '           Text
'arrayBuf'    Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'Constructor' Name.Decorator
'('           Punctuation
'Uint8Array'  Keyword.Type
' '           Text
'typedArr'    Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'// Constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3),' Comment.Single
'\n '         Text
'NamedConstructor' Name.Decorator
'='           Punctuation
'Test'        Name
','           Punctuation
'\n '         Text
'NamedConstructor' Name.Decorator
'='           Punctuation
'Test'        Name
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'str'         Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'NamedConstructor' Name.Decorator
'='           Punctuation
'Test2'       Name
'('           Punctuation
'DictForConstructor' Name.Class
' '           Text
'dict'        Name.Variable
','           Punctuation
' '           Text
'any'         Keyword.Type
' '           Text
'any1'        Name.Variable
','           Punctuation
' '           Text
'object'      Keyword.Type
' '           Text
'obj1'        Name.Variable
','           Punctuation
'\n                        ' Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'obj2'        Name.Variable
','           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
' '           Text
'seq'         Name.Variable
','           Punctuation
' '           Text
'optional'    Keyword
' '           Text
'any'         Keyword.Type
' '           Text
'any2'        Name.Variable
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'object'      Keyword.Type
' '           Text
'obj3'        Name.Variable
','           Punctuation
' '           Text
'optional'    Keyword
' '           Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'obj4'        Name.Variable
')'           Punctuation
','           Punctuation
'\n '         Text
'NamedConstructor' Name.Decorator
'='           Punctuation
'Test3'       Name
'('           Punctuation
'('           Punctuation
'long'        Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
')'           Punctuation
' '           Text
'arg1'        Name.Variable
')'           Punctuation
'\n '         Text
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'// Integer types' Comment.Single
'\n  '        Text
'// XXXbz add tests for throwing versions of all the integer stuff' Comment.Single
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'readonlyByte' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'writableByte' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passByte'    Name.Function
'('           Punctuation
'byte'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'receiveByte' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalByte' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalByteBeforeRequired' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'byte'        Keyword.Type
' '           Text
'arg2'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalByteWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'0'           Literal.Number.Oct
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalByteWithDefaultBeforeRequired' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'arg1'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'0'           Literal.Number.Oct
','           Punctuation
' '           Text
'byte'        Keyword.Type
' '           Text
'arg2'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableByte' Name.Function
'('           Punctuation
'byte'        Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableByte' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'byte'        Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicByte' Name.Function
'('           Punctuation
'byte'        Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'StoreInSlot' Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'cachedByte'  Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'StoreInSlot' Name.Decorator
','           Punctuation
' '           Text
'Constant'    Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'cachedConstantByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'StoreInSlot' Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'cachedWritableByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'sideEffectFreeByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
','           Punctuation
' '           Text
'DependsOn'   Name.Decorator
'='           Punctuation
'DOMState'    Name
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'domDependentByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
','           Punctuation
' '           Text
'DependsOn'   Name.Decorator
'='           Punctuation
'Nothing'     Name
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'constantByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'DependsOn'   Name.Decorator
'='           Punctuation
'DeviceState' Name
','           Punctuation
' '           Text
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'deviceStateDependentByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
']'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'returnByteSideEffectFree' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
','           Punctuation
' '           Text
'DependsOn'   Name.Decorator
'='           Punctuation
'DOMState'    Name
']'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'returnDOMDependentByte' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
','           Punctuation
' '           Text
'DependsOn'   Name.Decorator
'='           Punctuation
'Nothing'     Name
']'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'returnConstantByte' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'DependsOn'   Name.Decorator
'='           Punctuation
'DeviceState' Name
','           Punctuation
' '           Text
'Affects'     Name.Decorator
'='           Punctuation
'Nothing'     Name
']'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'returnDeviceStateDependentByte' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'['           Punctuation
'UnsafeInPrerendering' Name.Decorator
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'unsafePrerenderMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'UnsafeInPrerendering' Name.Decorator
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'unsafePrerenderWritable' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'UnsafeInPrerendering' Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'unsafePrerenderReadonly' Name.Variable
';'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'short'       Keyword.Type
' '           Text
'readonlyShort' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'short'       Keyword.Type
' '           Text
'writableShort' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passShort'   Name.Function
'('           Punctuation
'short'       Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'short'       Keyword.Type
' '           Text
'receiveShort' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalShort' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'short'       Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalShortWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'short'       Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'readonlyLong' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'writableLong' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passLong'    Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'receiveLong' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalLong' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalLongWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'7'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long long'   Keyword.Type
' '           Text
'readonlyLongLong' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'long long'   Keyword.Type
' '           Text
'writableLongLong' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passLongLong' Name.Function
'('           Punctuation
'long long'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'long long'   Keyword.Type
' '           Text
'receiveLongLong' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalLongLong' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'long long'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalLongLongWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'long long'   Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-12'         Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'octet'       Keyword.Type
' '           Text
'readonlyOctet' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'octet'       Keyword.Type
' '           Text
'writableOctet' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOctet'   Name.Function
'('           Punctuation
'octet'       Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'octet'       Keyword.Type
' '           Text
'receiveOctet' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalOctet' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'octet'       Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalOctetWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'octet'       Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'19'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'unsigned short' Keyword.Type
' '           Text
'readonlyUnsignedShort' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unsigned short' Keyword.Type
' '           Text
'writableUnsignedShort' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnsignedShort' Name.Function
'('           Punctuation
'unsigned short' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'unsigned short' Keyword.Type
' '           Text
'receiveUnsignedShort' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnsignedShort' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unsigned short' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnsignedShortWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unsigned short' Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'readonlyUnsignedLong' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'writableUnsignedLong' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnsignedLong' Name.Function
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'unsigned long' Keyword.Type
' '           Text
'receiveUnsignedLong' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnsignedLong' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnsignedLongWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'6'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'unsigned long long' Keyword.Type
' '           Text
'readonlyUnsignedLongLong' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unsigned long long' Keyword.Type
'  '          Text
'writableUnsignedLongLong' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnsignedLongLong' Name.Function
'('           Punctuation
'unsigned long long' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'unsigned long long' Keyword.Type
' '           Text
'receiveUnsignedLongLong' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnsignedLongLong' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unsigned long long' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnsignedLongLongWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unsigned long long' Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'17'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'attribute'   Keyword
' '           Text
'float'       Keyword.Type
' '           Text
'writableFloat' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'writableUnrestrictedFloat' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'float'       Keyword.Type
'?'           Punctuation
' '           Text
'writableNullableFloat' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unrestricted float' Keyword.Type
'?'           Punctuation
' '           Text
'writableNullableUnrestrictedFloat' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'double'      Keyword.Type
' '           Text
'writableDouble' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'writableUnrestrictedDouble' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'double'      Keyword.Type
'?'           Punctuation
' '           Text
'writableNullableDouble' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'unrestricted double' Keyword.Type
'?'           Punctuation
' '           Text
'writableNullableUnrestrictedDouble' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passFloat'   Name.Function
'('           Punctuation
'float'       Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'arg2'        Name.Variable
','           Punctuation
'\n                 ' Text
'float'       Keyword.Type
'?'           Punctuation
' '           Text
'arg3'        Name.Variable
','           Punctuation
' '           Text
'unrestricted float' Keyword.Type
'?'           Punctuation
' '           Text
'arg4'        Name.Variable
','           Punctuation
'\n                 ' Text
'double'      Keyword.Type
' '           Text
'arg5'        Name.Variable
','           Punctuation
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'arg6'        Name.Variable
','           Punctuation
'\n                 ' Text
'double'      Keyword.Type
'?'           Punctuation
' '           Text
'arg7'        Name.Variable
','           Punctuation
' '           Text
'unrestricted double' Keyword.Type
'?'           Punctuation
' '           Text
'arg8'        Name.Variable
','           Punctuation
'\n                 ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'float'       Keyword.Type
'>'           Punctuation
' '           Text
'arg9'        Name.Variable
','           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted float' Keyword.Type
'>'           Punctuation
' '           Text
'arg10'       Name.Variable
','           Punctuation
'\n                 ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'float'       Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg11'       Name.Variable
','           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted float' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg12'       Name.Variable
','           Punctuation
'\n                 ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'double'      Keyword.Type
'>'           Punctuation
' '           Text
'arg13'       Name.Variable
','           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted double' Keyword.Type
'>'           Punctuation
' '           Text
'arg14'       Name.Variable
','           Punctuation
'\n                 ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'double'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg15'       Name.Variable
','           Punctuation
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted double' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg16'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'LenientFloat' Name.Decorator
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passLenientFloat' Name.Function
'('           Punctuation
'float'       Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'arg2'        Name.Variable
','           Punctuation
'\n                        ' Text
'float'       Keyword.Type
'?'           Punctuation
' '           Text
'arg3'        Name.Variable
','           Punctuation
' '           Text
'unrestricted float' Keyword.Type
'?'           Punctuation
' '           Text
'arg4'        Name.Variable
','           Punctuation
'\n                        ' Text
'double'      Keyword.Type
' '           Text
'arg5'        Name.Variable
','           Punctuation
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'arg6'        Name.Variable
','           Punctuation
'\n                        ' Text
'double'      Keyword.Type
'?'           Punctuation
' '           Text
'arg7'        Name.Variable
','           Punctuation
' '           Text
'unrestricted double' Keyword.Type
'?'           Punctuation
' '           Text
'arg8'        Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'float'       Keyword.Type
'>'           Punctuation
' '           Text
'arg9'        Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted float' Keyword.Type
'>'           Punctuation
' '           Text
'arg10'       Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'float'       Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg11'       Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted float' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg12'       Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'double'      Keyword.Type
'>'           Punctuation
' '           Text
'arg13'       Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted double' Keyword.Type
'>'           Punctuation
' '           Text
'arg14'       Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'double'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg15'       Name.Variable
','           Punctuation
'\n                        ' Text
'sequence'    Keyword.Type
'<'           Punctuation
'unrestricted double' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg16'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'LenientFloat' Name.Decorator
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'float'       Keyword.Type
' '           Text
'lenientFloatAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'LenientFloat' Name.Decorator
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'double'      Keyword.Type
' '           Text
'lenientDoubleAttr' Name.Variable
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passUnrestricted' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'arg1'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'0'           Literal.Number.Oct
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'arg2'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'Infinity'    Keyword.Constant
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'arg3'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-Infinity'   Keyword.Constant
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted float' Keyword.Type
' '           Text
'arg4'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'NaN'         Keyword.Constant
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'arg5'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'0'           Literal.Number.Oct
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'arg6'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'Infinity'    Keyword.Constant
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'arg7'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-Infinity'   Keyword.Constant
','           Punctuation
'\n                        ' Text
'optional'    Keyword
' '           Text
'unrestricted double' Keyword.Type
' '           Text
'arg8'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'NaN'         Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Castable interface types' Comment.Single
'\n  '        Text
'// XXXbz add tests for throwing versions of all the castable interface stuff' Comment.Single
'\n  '        Text
'TestInterface' Name.Class
' '           Text
'receiveSelf' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveNullableSelf' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
' '           Text
'receiveWeakSelf' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveWeakNullableSelf' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSelf'    Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableSelf' Name.Function
'('           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'nonNullSelf' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'nullableSelf' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'cachedSelf'  Name.Variable
';'           Punctuation
'\n  '        Text
'// Optional arguments' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSelf' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNonNullSelf' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSelfWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Non-wrapper-cache interface types' Comment.Single
'\n  '        Text
'['           Punctuation
'NewObject'   Name.Decorator
']'           Punctuation
'\n  '        Text
'TestNonWrapperCacheInterface' Name.Class
' '           Text
'receiveNonWrapperCacheInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'NewObject'   Name.Decorator
']'           Punctuation
'\n  '        Text
'TestNonWrapperCacheInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveNullableNonWrapperCacheInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'NewObject'   Name.Decorator
']'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestNonWrapperCacheInterface' Name.Class
'>'           Punctuation
' '           Text
'receiveNonWrapperCacheInterfaceSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'NewObject'   Name.Decorator
']'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestNonWrapperCacheInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveNullableNonWrapperCacheInterfaceSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'NewObject'   Name.Decorator
']'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestNonWrapperCacheInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNonWrapperCacheInterfaceNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'NewObject'   Name.Decorator
']'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestNonWrapperCacheInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableNonWrapperCacheInterfaceNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Non-castable interface types' Comment.Single
'\n  '        Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'receiveOther' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'IndirectlyImplementedInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveNullableOther' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'receiveWeakOther' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'IndirectlyImplementedInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveWeakNullableOther' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOther'   Name.Function
'('           Punctuation
'IndirectlyImplementedInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableOther' Name.Function
'('           Punctuation
'IndirectlyImplementedInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'nonNullOther' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
'?'           Punctuation
' '           Text
'nullableOther' Name.Variable
';'           Punctuation
'\n  '        Text
'// Optional arguments' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalOther' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNonNullOther' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalOtherWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// External interface types' Comment.Single
'\n  '        Text
'TestExternalInterface' Name.Class
' '           Text
'receiveExternal' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveNullableExternal' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestExternalInterface' Name.Class
' '           Text
'receiveWeakExternal' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveWeakNullableExternal' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passExternal' Name.Function
'('           Punctuation
'TestExternalInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableExternal' Name.Function
'('           Punctuation
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestExternalInterface' Name.Class
' '           Text
'nonNullExternal' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'nullableExternal' Name.Variable
';'           Punctuation
'\n  '        Text
'// Optional arguments' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalExternal' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNonNullExternal' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestExternalInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalExternalWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestExternalInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Callback interface types' Comment.Single
'\n  '        Text
'TestCallbackInterface' Name.Class
' '           Text
'receiveCallbackInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveNullableCallbackInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestCallbackInterface' Name.Class
' '           Text
'receiveWeakCallbackInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'receiveWeakNullableCallbackInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passCallbackInterface' Name.Function
'('           Punctuation
'TestCallbackInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableCallbackInterface' Name.Function
'('           Punctuation
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestCallbackInterface' Name.Class
' '           Text
'nonNullCallbackInterface' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'nullableCallbackInterface' Name.Variable
';'           Punctuation
'\n  '        Text
'// Optional arguments' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalCallbackInterface' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNonNullCallbackInterface' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestCallbackInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalCallbackInterfaceWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestCallbackInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Miscellaneous interface tests' Comment.Single
'\n  '        Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'receiveConsequentialInterface' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passConsequentialInterface' Name.Function
'('           Punctuation
'IndirectlyImplementedInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Sequence types' Comment.Single
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'readonlySequence' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
' '           Text
'readonlySequenceOfDictionaries' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'readonlyNullableSequenceOfDictionaries' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
','           Punctuation
' '           Text
'Frozen'      Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
' '           Text
'readonlyFrozenSequence' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
','           Punctuation
' '           Text
'Frozen'      Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'readonlyFrozenNullableSequence' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'receiveSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveSequenceOfNullableInts' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableSequenceOfNullableInts' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfNullableInts' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSequenceOfNullableInts' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceOfNullableInts' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'receiveCastableObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'>'           Punctuation
' '           Text
'receiveCallbackObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveNullableCastableObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestCallbackInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveNullableCallbackObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveCastableObjectNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableCastableObjectNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'receiveWeakCastableObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveWeakNullableCastableObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveWeakCastableObjectNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveWeakNullableCastableObjectNullableSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passCastableObjectSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableCastableObjectSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passCastableObjectNullableSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableCastableObjectNullableSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSequence' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSequenceWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequence' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceWithDefaultValue2' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalObjectSequence' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passExternalInterfaceSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'TestExternalInterface' Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableExternalInterfaceSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'TestExternalInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'receiveStringSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passStringSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'sequence'    Keyword.Type
'<'           Punctuation
'ByteString'  Keyword.Type
'>'           Punctuation
' '           Text
'receiveByteStringSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passByteStringSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ByteString'  Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'receiveAnySequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableAnySequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'receiveAnySequenceSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'receiveObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveNullableObjectSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passSequenceOfSequences' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfSequencesOfSequences' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'receiveSequenceOfSequences' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
'>'           Punctuation
' '           Text
'receiveSequenceOfSequencesOfSequences' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// MozMap types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMap'  Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfNullableInts' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalMozMapOfNullableInts' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableMozMapOfNullableInts' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passCastableObjectMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableCastableObjectMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passCastableObjectNullableMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableCastableObjectNullableMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'TestInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalMozMap' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableMozMap' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableMozMapWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalObjectMozMap' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passExternalInterfaceMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'TestExternalInterface' Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableExternalInterfaceMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'TestExternalInterface' Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passStringMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passByteStringMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'ByteString'  Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfMozMaps' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'receiveMozMap' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableMozMap' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'receiveMozMapOfNullableInts' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableMozMapOfNullableInts' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'receiveMozMapOfMozMaps' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'receiveAnyMozMap' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Typed array types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passArrayBuffer' Name.Function
'('           Punctuation
'ArrayBuffer' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableArrayBuffer' Name.Function
'('           Punctuation
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalArrayBuffer' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ArrayBuffer' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableArrayBuffer' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableArrayBufferWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passArrayBufferView' Name.Function
'('           Punctuation
'ArrayBufferView' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passInt8Array' Name.Function
'('           Punctuation
'Int8Array'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passInt16Array' Name.Function
'('           Punctuation
'Int16Array'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passInt32Array' Name.Function
'('           Punctuation
'Int32Array'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint8Array' Name.Function
'('           Punctuation
'Uint8Array'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint16Array' Name.Function
'('           Punctuation
'Uint16Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint32Array' Name.Function
'('           Punctuation
'Uint32Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUint8ClampedArray' Name.Function
'('           Punctuation
'Uint8ClampedArray' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passFloat32Array' Name.Function
'('           Punctuation
'Float32Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passFloat64Array' Name.Function
'('           Punctuation
'Float64Array' Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfArrayBuffers' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ArrayBuffer' Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfNullableArrayBuffers' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ArrayBuffer' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfArrayBuffers' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'ArrayBuffer' Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfNullableArrayBuffers' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'ArrayBuffer' Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicTypedArray' Name.Function
'('           Punctuation
'Float32Array' Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicNullableTypedArray' Name.Function
'('           Punctuation
'Float32Array' Keyword.Type
'?'           Punctuation
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Uint8Array'  Keyword.Type
' '           Text
'receiveUint8Array' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'Uint8Array'  Keyword.Type
' '           Text
'uint8ArrayAttr' Name.Variable
';'           Punctuation
'\n\n  '      Text
'// DOMString types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passString'  Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableString' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalString' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalStringWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"abc"'       Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableString' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'DOMString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableStringWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'DOMString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicString' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'DOMString'   Keyword.Type
' '           Text
'receiveString' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// ByteString types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passByteString' Name.Function
'('           Punctuation
'ByteString'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableByteString' Name.Function
'('           Punctuation
'ByteString'  Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalByteString' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ByteString'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalByteStringWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ByteString'  Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"abc"'       Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableByteString' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ByteString'  Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableByteStringWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'ByteString'  Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicByteString' Name.Function
'('           Punctuation
'ByteString'  Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnionByteString' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'ByteString'  Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnionByteStringWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'ByteString'  Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"abc"'       Literal.String
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// USVString types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUSVS'    Name.Function
'('           Punctuation
'USVString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUSVS' Name.Function
'('           Punctuation
'USVString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUSVS' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'USVString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUSVSWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'USVString'   Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"abc"'       Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableUSVS' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'USVString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableUSVSWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'USVString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicUSVS' Name.Function
'('           Punctuation
'USVString'   Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'USVString'   Keyword.Type
' '           Text
'receiveUSVS' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Enumerated types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passEnum'    Name.Function
'('           Punctuation
'TestEnum'    Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableEnum' Name.Function
'('           Punctuation
'TestEnum'    Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalEnum' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestEnum'    Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passEnumWithDefault' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestEnum'    Name.Class
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"a"'         Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableEnum' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestEnum'    Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableEnumWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestEnum'    Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableEnumWithDefaultValue2' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestEnum'    Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"a"'         Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestEnum'    Name.Class
' '           Text
'receiveEnum' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestEnum'    Name.Class
'?'           Punctuation
' '           Text
'receiveNullableEnum' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestEnum'    Name.Class
' '           Text
'enumAttribute' Name.Variable
';'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'TestEnum'    Name.Class
' '           Text
'readonlyEnumAttribute' Name.Variable
';'           Punctuation
'\n\n  '      Text
'// Callback types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passCallback' Name.Function
'('           Punctuation
'TestCallback' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableCallback' Name.Function
'('           Punctuation
'TestCallback' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalCallback' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestCallback' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableCallback' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestCallback' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableCallbackWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestCallback' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestCallback' Name.Class
' '           Text
'receiveCallback' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestCallback' Name.Class
'?'           Punctuation
' '           Text
'receiveNullableCallback' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableTreatAsNullCallback' Name.Function
'('           Punctuation
'TestTreatAsNullCallback' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableTreatAsNullCallback' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestTreatAsNullCallback' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableTreatAsNullCallbackWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestTreatAsNullCallback' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestTreatAsNullCallback' Name.Class
' '           Text
'treatAsNullCallback' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestTreatAsNullCallback' Name.Class
'?'           Punctuation
' '           Text
'nullableTreatAsNullCallback' Name.Variable
';'           Punctuation
'\n\n  '      Text
'// Force code generation of the various test callbacks we have.' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'forceCallbackGeneration' Name.Function
'('           Punctuation
'TestIntegerReturn' Name.Class
' '           Text
'arg1'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableIntegerReturn' Name.Class
' '           Text
'arg2'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestBooleanReturn' Name.Class
' '           Text
'arg3'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestFloatReturn' Name.Class
' '           Text
'arg4'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestStringReturn' Name.Class
' '           Text
'arg5'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestEnumReturn' Name.Class
' '           Text
'arg6'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestInterfaceReturn' Name.Class
' '           Text
'arg7'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableInterfaceReturn' Name.Class
' '           Text
'arg8'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestExternalInterfaceReturn' Name.Class
' '           Text
'arg9'        Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableExternalInterfaceReturn' Name.Class
' '           Text
'arg10'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestCallbackInterfaceReturn' Name.Class
' '           Text
'arg11'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableCallbackInterfaceReturn' Name.Class
' '           Text
'arg12'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestCallbackReturn' Name.Class
' '           Text
'arg13'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableCallbackReturn' Name.Class
' '           Text
'arg14'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestObjectReturn' Name.Class
' '           Text
'arg15'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableObjectReturn' Name.Class
' '           Text
'arg16'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestTypedArrayReturn' Name.Class
' '           Text
'arg17'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableTypedArrayReturn' Name.Class
' '           Text
'arg18'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestSequenceReturn' Name.Class
' '           Text
'arg19'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestNullableSequenceReturn' Name.Class
' '           Text
'arg20'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestIntegerArguments' Name.Class
' '           Text
'arg21'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestInterfaceArguments' Name.Class
' '           Text
'arg22'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestStringEnumArguments' Name.Class
' '           Text
'arg23'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestObjectArguments' Name.Class
' '           Text
'arg24'       Name.Variable
','           Punctuation
'\n                               ' Text
'TestOptionalArguments' Name.Class
' '           Text
'arg25'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Any types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passAny'     Name.Function
'('           Punctuation
'any'         Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicAny' Name.Function
'('           Punctuation
'any'         Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'any'         Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passAnyDefaultNull' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'any'         Keyword.Type
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfAny' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableSequenceOfAny' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSequenceOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalSequenceOfAnyWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfSequenceOfAny' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfNullableSequenceOfAny' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableSequenceOfNullableSequenceOfAny' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceOfNullableSequenceOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfAny' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableMozMapOfAny' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalMozMapOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableMozMapOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalMozMapOfAnyWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfMozMapOfAny' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfNullableMozMapOfAny' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableMozMapOfNullableMozMapOfAny' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableMozMapOfNullableMozMapOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableMozMapOfNullableSequenceOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceOfNullableMozMapOfAny' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'any'         Keyword.Type
' '           Text
'receiveAny'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// object types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passObject'  Name.Function
'('           Punctuation
'object'      Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicObject' Name.Function
'('           Punctuation
'object'      Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableObject' Name.Function
'('           Punctuation
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicNullableObject' Name.Function
'('           Punctuation
'object'      Keyword.Type
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalObject' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'object'      Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableObject' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableObjectWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfObject' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfNullableObject' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableSequenceOfObject' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceOfNullableSequenceOfObject' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableSequenceOfNullableSequenceOfNullableObject' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfObject' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'object'      Keyword.Type
' '           Text
'receiveObject' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'receiveNullableObject' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Union types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion'   Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'// Some  union tests are debug-only to avoid creating all those' Comment.Single
'\n  '        Text
'// unused union types in opt builds.' Comment.Single
'\n'          Text

'#ifdef DEBUG' Comment.Preproc
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion2'  Name.Function
'('           Punctuation
'('           Punctuation
'long'        Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'boolean'     Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion3'  Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'boolean'     Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion4'  Name.Function
'('           Punctuation
'('           Punctuation
'Node'        Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'boolean'     Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion5'  Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'boolean'     Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion6'  Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion7'  Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion8'  Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'boolean'     Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion9'  Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'boolean'     Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion10' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion11' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion12' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion13' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
'?'           Punctuation
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion14' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
'?'           Punctuation
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion15' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion16' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion17' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion18' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion19' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion20' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion21' Name.Function
'('           Punctuation
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion22' Name.Function
'('           Punctuation
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion23' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ImageData'   Name.Class
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion24' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ImageData'   Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion25' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ImageData'   Name.Class
'>'           Punctuation
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion26' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'ImageData'   Name.Class
'?'           Punctuation
'>'           Punctuation
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion27' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'EventInit'   Name.Class
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnion28' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithCallback' Name.Function
'('           Punctuation
'('           Punctuation
'EventHandler' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithByteString' Name.Function
'('           Punctuation
'('           Punctuation
'ByteString'  Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithMozMap' Name.Function
'('           Punctuation
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithMozMapAndSequence' Name.Function
'('           Punctuation
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithSequenceAndMozMap' Name.Function
'('           Punctuation
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'MozMap'      Name.Class
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithUSVS' Name.Function
'('           Punctuation
'('           Punctuation
'USVString'   Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'#endif'      Comment.Preproc
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithNullable' Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnion' Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalUnion' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableUnion' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableUnionWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'//void passUnionWithInterfaces((TestInterface or TestExternalInterface) arg);' Comment.Single
'\n  '        Text
'//void passUnionWithInterfacesAndNullable((TestInterface? or TestExternalInterface) arg);' Comment.Single
'\n  '        Text
'//void passUnionWithSequence((sequence<object> or long) arg);' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithArrayBuffer' Name.Function
'('           Punctuation
'('           Punctuation
'ArrayBuffer' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithString' Name.Function
'('           Punctuation
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'object'      Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'// Using an enum in a union.  Note that we use some enum not declared in our' Comment.Single
'\n  '        Text
'// binding file, because UnionTypes.h will need to include the binding header' Comment.Single
'\n  '        Text
"// for this enum.  Pick an enum from an interface that won't drag in too much" Comment.Single
'\n  '        Text
'// stuff.'   Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithEnum' Name.Function
'('           Punctuation
'('           Punctuation
'SupportedType' Name.Class
' '           Text
'or'          Keyword
' '           Text
'object'      Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
"// Trying to use a callback in a union won't include the test" Comment.Single
'\n  '        Text
"// headers, unfortunately, so won't compile." Comment.Single
'\n  '        Text
'//void passUnionWithCallback((TestCallback or long) arg);' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithObject' Name.Function
'('           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'//void passUnionWithDict((Dict or long) arg);' Comment.Single
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue1' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue2' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue3' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue4' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue5' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue6' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue7' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue8' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue9' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue10' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'Infinity'    Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue11' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted float' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue12' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted float' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue13' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted float' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'Infinity'    Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue14' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue15' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue16' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue17' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"text/html"' Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue18' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passUnionWithDefaultValue19' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue1' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue2' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue3' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue4' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue5' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue6' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue7' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue8' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue9' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted double' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue10' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted float' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue11' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted float' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue12' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'unrestricted float' Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue13' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue14' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue15' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue16' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'ByteString'  Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue17' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"text/html"' Literal.String
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue18' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue19' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.5'         Literal.Number.Float
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableUnionWithDefaultValue20' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'SupportedType' Name.Class
')'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passSequenceOfUnions' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfUnions2' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicUnion' Name.Function
'('           Punctuation
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passSequenceOfNullableUnions' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicNullableUnion' Name.Function
'('           Punctuation
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'?'           Punctuation
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfUnions' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'// XXXbz no move constructor on some unions' Comment.Single
'\n  '        Text
'// void passMozMapOfUnions2(MozMap<(object or long)> arg);' Comment.Single
'\n\n  '      Text
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
' '           Text
'receiveUnion' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'receiveUnion2' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CanvasPattern' Name.Class
'?'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
' '           Text
'receiveUnionContainingNull' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableUnion' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'receiveNullableUnion2' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'attribute'   Keyword
' '           Text
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
' '           Text
'writableUnion' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'('           Punctuation
'CanvasPattern' Name.Class
'?'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
' '           Text
'writableUnionContainingNull' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'('           Punctuation
'CanvasPattern' Name.Class
' '           Text
'or'          Keyword
' '           Text
'CanvasGradient' Name.Class
')'           Punctuation
'?'           Punctuation
' '           Text
'writableNullableUnion' Name.Variable
';'           Punctuation
'\n\n  '      Text
'// Date types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDate'    Name.Function
'('           Punctuation
'Date'        Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableDate' Name.Function
'('           Punctuation
'Date'        Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalDate' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Date'        Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableDate' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Date'        Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullableDateWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Date'        Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDateSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Date'        Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullableDateSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Date'        Name.Class
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDateMozMap' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'Date'        Name.Class
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Date'        Name.Class
' '           Text
'receiveDate' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Date'        Name.Class
'?'           Punctuation
' '           Text
'receiveNullableDate' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Promise types' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passPromise' Name.Function
'('           Punctuation
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullablePromise' Name.Function
'('           Punctuation
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalPromise' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullablePromise' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOptionalNullablePromiseWithDefaultValue' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'arg'         Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passPromiseSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passNullablePromiseSequence' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'receivePromise' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Promise'     Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'receiveAddrefedPromise' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// binaryNames tests' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'methodRenamedFrom' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'BinaryName'  Name.Decorator
'='           Punctuation
'"otherMethodRenamedTo"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'otherMethodRenamedFrom' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'methodRenamedFrom' Name.Function
'('           Punctuation
'byte'        Keyword.Type
' '           Text
'argument'    Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'attributeGetterRenamedFrom' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'attributeRenamedFrom' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'BinaryName'  Name.Decorator
'='           Punctuation
'"otherAttributeRenamedTo"' Literal.String
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'otherAttributeRenamedFrom' Name.Variable
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passDictionary' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDictionary2' Name.Function
'('           Punctuation
'Dict'        Name.Class
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'readonlyDictionary' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'Dict'        Name.Class
'?'           Punctuation
' '           Text
'readonlyNullableDictionary' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'writableDictionary' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
','           Punctuation
' '           Text
'Frozen'      Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'readonlyFrozenDictionary' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
','           Punctuation
' '           Text
'Frozen'      Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'Dict'        Name.Class
'?'           Punctuation
' '           Text
'readonlyFrozenNullableDictionary' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Cached'      Name.Decorator
','           Punctuation
' '           Text
'Pure'        Name.Decorator
','           Punctuation
' '           Text
'Frozen'      Name.Decorator
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'writableFrozenDictionary' Name.Variable
';'           Punctuation
'\n  '        Text
'Dict'        Name.Class
' '           Text
'receiveDictionary' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'Dict'        Name.Class
'?'           Punctuation
' '           Text
'receiveNullableDictionary' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passOtherDictionary' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'GrandparentDict' Name.Class
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passSequenceOfDictionaries' Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passMozMapOfDictionaries' Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'GrandparentDict' Name.Class
'>'           Punctuation
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'// No support for nullable dictionaries inside a sequence (nor should there be)' Comment.Single
'\n  '        Text
'//  void passSequenceOfNullableDictionaries(sequence<Dict?> x);' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDictionaryOrLong' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDictionaryOrLong' Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'x'           Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'void'        Keyword.Type
' '           Text
'passDictContainingDict' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'DictContainingDict' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passDictContainingSequence' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'DictContainingSequence' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'DictContainingSequence' Name.Class
' '           Text
'receiveDictContainingSequence' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicDictionary' Name.Function
'('           Punctuation
'Dict'        Name.Class
'...'         Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// EnforceRange/Clamp tests' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'dontEnforceRangeOrClamp' Name.Function
'('           Punctuation
'byte'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'doEnforceRange' Name.Function
'('           Punctuation
'['           Punctuation
'EnforceRange' Name.Decorator
']'           Punctuation
' '           Text
'byte'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'doClamp'     Name.Function
'('           Punctuation
'['           Punctuation
'Clamp'       Name.Decorator
']'           Punctuation
' '           Text
'byte'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'EnforceRange' Name.Decorator
']'           Punctuation
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'enforcedByte' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Clamp'       Name.Decorator
']'           Punctuation
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'clampedByte' Name.Variable
';'           Punctuation
'\n\n  '      Text
'// Typedefs' Comment.Single
'\n  '        Text
'const'       Keyword
' '           Text
'myLong'      Name.Class
' '           Text
'myLongConstant' Name.Constant
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'exerciseTypedefInterfaces1' Name.Function
'('           Punctuation
'AnotherNameForTestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'AnotherNameForTestInterface' Name.Class
' '           Text
'exerciseTypedefInterfaces2' Name.Function
'('           Punctuation
'NullableTestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'exerciseTypedefInterfaces3' Name.Function
'('           Punctuation
'YetAnotherNameForTestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Deprecated methods and attributes' Comment.Single
'\n  '        Text
'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
']'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'deprecatedAttribute' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
']'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'deprecatedMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
']'           Punctuation
'\n  '        Text
'byte'        Keyword.Type
' '           Text
'deprecatedMethodWithContext' Name.Function
'('           Punctuation
'any'         Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Static methods and attributes' Comment.Single
'\n  '        Text
'static'      Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'staticAttribute' Name.Variable
';'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'staticMethod' Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'staticMethodWithContext' Name.Function
'('           Punctuation
'any'         Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Testing static method with a reserved C++ keyword as the name' Comment.Single
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'assert'      Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Deprecated static methods and attributes' Comment.Single
'\n  '        Text
'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
']'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'staticDeprecatedAttribute' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
']'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'staticDeprecatedMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
']'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'staticDeprecatedMethodWithContext' Name.Function
'('           Punctuation
'any'         Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Overload resolution tests' Comment.Single
'\n  '        Text
'//void overload1(DOMString... strs);' Comment.Single
'\n  '        Text
'boolean'     Keyword.Type
' '           Text
'overload1'   Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
' '           Text
'overload1'   Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'strs'        Name.Variable
','           Punctuation
' '           Text
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload2'   Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload2'   Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload2'   Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload2'   Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload2'   Name.Function
'('           Punctuation
'Date'        Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload3'   Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload3'   Name.Function
'('           Punctuation
'TestCallback' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload3'   Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload4'   Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload4'   Name.Function
'('           Punctuation
'TestCallbackInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload4'   Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload5'   Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload5'   Name.Function
'('           Punctuation
'TestEnum'    Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload6'   Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload6'   Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload7'   Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload7'   Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload7'   Name.Function
'('           Punctuation
'ByteString'  Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload8'   Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload8'   Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload9'   Name.Function
'('           Punctuation
'long'        Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload9'   Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload10'  Name.Function
'('           Punctuation
'long'        Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload10'  Name.Function
'('           Punctuation
'object'      Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload11'  Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload11'  Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload12'  Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload12'  Name.Function
'('           Punctuation
'boolean'     Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload13'  Name.Function
'('           Punctuation
'long'        Keyword.Type
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload13'  Name.Function
'('           Punctuation
'boolean'     Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload14'  Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload14'  Name.Function
'('           Punctuation
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload15'  Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload15'  Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload16'  Name.Function
'('           Punctuation
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload16'  Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload17'  Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload17'  Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload18'  Name.Function
'('           Punctuation
'MozMap'      Name.Class
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload18'  Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'DOMString'   Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload19'  Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload19'  Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload20'  Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'overload20'  Name.Function
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Variadic handling' Comment.Single
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passVariadicThirdArg' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'long'        Keyword.Type
' '           Text
'arg2'        Name.Variable
','           Punctuation
' '           Text
'TestInterface' Name.Class
'...'         Punctuation
' '           Text
'arg3'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Conditionally exposed methods/attributes' Comment.Single
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable1'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable2'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"ghi.jkl"'   Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable3'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"ghi.jkl"'   Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable4'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable5'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable6'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable7'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"ghi.jkl"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable8'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable9'   Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable10'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable11'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable12'  Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable13'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable14'  Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable15'  Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'prefable16'  Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable17'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable18'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable19'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
','           Punctuation
' '           Text
'ChromeOnly'  Name.Decorator
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'prefable20'  Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Conditionally exposed methods/attributes involving [SecureContext]' Comment.Single
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'conditionalOnSecureContext1' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
','           Punctuation
' '           Text
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'conditionalOnSecureContext2' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
','           Punctuation
' '           Text
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'conditionalOnSecureContext3' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
','           Punctuation
' '           Text
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'conditionalOnSecureContext4' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'conditionalOnSecureContext5' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
','           Punctuation
' '           Text
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'conditionalOnSecureContext6' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
','           Punctuation
' '           Text
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'conditionalOnSecureContext7' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SecureContext' Name.Decorator
','           Punctuation
' '           Text
'Pref'        Name.Decorator
'='           Punctuation
'"abc.def"'   Literal.String
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'conditionalOnSecureContext8' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// Miscellania' Comment.Single
'\n  '        Text
'['           Punctuation
'LenientThis' Name.Decorator
']'           Punctuation
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'attrWithLenientThis' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Unforgeable' Name.Decorator
']'           Punctuation
' '           Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'unforgeableAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Unforgeable' Name.Decorator
','           Punctuation
' '           Text
'ChromeOnly'  Name.Decorator
']'           Punctuation
' '           Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'unforgeableAttr2' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Unforgeable' Name.Decorator
']'           Punctuation
' '           Text
'long'        Keyword.Type
' '           Text
'unforgeableMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Unforgeable' Name.Decorator
','           Punctuation
' '           Text
'ChromeOnly'  Name.Decorator
']'           Punctuation
' '           Text
'long'        Keyword.Type
' '           Text
'unforgeableMethod2' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'stringifier' Keyword
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passRenamedInterface' Name.Function
'('           Punctuation
'TestRenamedInterface' Name.Class
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'PutForwards' Name.Decorator
'='           Punctuation
'writableByte' Name
']'           Punctuation
' '           Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'putForwardsAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'PutForwards' Name.Decorator
'='           Punctuation
'writableByte' Name
','           Punctuation
' '           Text
'LenientThis' Name.Decorator
']'           Punctuation
' '           Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'putForwardsAttr2' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'PutForwards' Name.Decorator
'='           Punctuation
'writableByte' Name
','           Punctuation
' '           Text
'ChromeOnly'  Name.Decorator
']'           Punctuation
' '           Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'TestInterface' Name.Class
' '           Text
'putForwardsAttr3' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Throws'      Name.Decorator
']'           Punctuation
' '           Text
'void'        Keyword.Type
' '           Text
'throwingMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Throws'      Name.Decorator
']'           Punctuation
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'throwingAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'GetterThrows' Name.Decorator
']'           Punctuation
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'throwingGetterAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'SetterThrows' Name.Decorator
']'           Punctuation
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'throwingSetterAttr' Name.Variable
';'           Punctuation
'\n  '        Text
'legacycaller' Keyword
' '           Text
'short'       Keyword.Type
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
' '           Text
'TestInterface' Name.Class
' '           Text
'arg2'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'passArgsWithDefaults' Name.Function
'('           Punctuation
'optional'    Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'arg1'        Name.Variable
','           Punctuation
'\n                            ' Text
'optional'    Keyword
' '           Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'arg2'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
','           Punctuation
'\n                            ' Text
'optional'    Keyword
' '           Text
'Dict'        Name.Class
' '           Text
'arg3'        Name.Variable
','           Punctuation
' '           Text
'optional'    Keyword
' '           Text
'double'      Keyword.Type
' '           Text
'arg4'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5.0'         Literal.Number.Float
','           Punctuation
'\n                            ' Text
'optional'    Keyword
' '           Text
'float'       Keyword.Type
' '           Text
'arg5'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'attribute'   Keyword
' '           Text
'any'         Keyword.Type
' '           Text
'jsonifierShouldSkipThis' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestParentInterface' Name.Class
' '           Text
'jsonifierShouldSkipThis2' Name.Variable
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'TestCallbackInterface' Name.Class
' '           Text
'jsonifierShouldSkipThis3' Name.Variable
';'           Punctuation
'\n  '        Text
'jsonifier'   Keyword
';'           Punctuation
'\n\n  '      Text
'attribute'   Keyword
' '           Text
'byte'        Keyword.Type
' '           Text
'dashed-attribute' Name.Variable
';'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'dashed-method' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n\n  '      Text
'// If you add things here, add them to TestExampleGen and TestJSImplGen as well' Comment.Single
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestParentInterface' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestChildInterface' Name.Class
' '           Text
':'           Punctuation
' '           Text
'TestParentInterface' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestNonWrapperCacheInterface' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'ImplementedInterfaceParent' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'implementedParentMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'implementedParentProperty' Name.Variable
';'           Punctuation
'\n\n  '      Text
'const'       Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'implementedParentConstant' Name.Constant
' '           Text
'='           Punctuation
' '           Text
'8'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'ImplementedInterfaceParent' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'IndirectlyImplementedInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'indirectlyImplementedMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'indirectlyImplementedProperty' Name.Variable
';'           Punctuation
'\n\n  '      Text
'const'       Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'indirectlyImplementedConstant' Name.Constant
' '           Text
'='           Punctuation
' '           Text
'9'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'ImplementedInterface' Name.Class
' '           Text
':'           Punctuation
' '           Text
'ImplementedInterfaceParent' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'implementedMethod' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'implementedProperty' Name.Variable
';'           Punctuation
'\n\n  '      Text
'const'       Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'implementedConstant' Name.Constant
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'DiamondImplements' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'diamondImplementedProperty' Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'DiamondBranch1A' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'DiamondBranch1B' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'DiamondBranch2A' Name.Class
' '           Text
':'           Punctuation
' '           Text
'DiamondImplements' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'['           Punctuation
'NoInterfaceObject' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'DiamondBranch2B' Name.Class
' '           Text
':'           Punctuation
' '           Text
'DiamondImplements' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'TestInterface' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'DiamondBranch1A' Name.Class
';'           Punctuation
'\n'          Text

'TestInterface' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'DiamondBranch1B' Name.Class
';'           Punctuation
'\n'          Text

'TestInterface' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'DiamondBranch2A' Name.Class
';'           Punctuation
'\n'          Text

'TestInterface' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'DiamondBranch2B' Name.Class
';'           Punctuation
'\n'          Text

'DiamondBranch1A' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'DiamondImplements' Name.Class
';'           Punctuation
'\n'          Text

'DiamondBranch1B' Name.Class
' '           Text
'implements'  Keyword
' '           Text
'DiamondImplements' Name.Class
';'           Punctuation
'\n\n'        Text

'dictionary'  Keyword
' '           Text
'Dict'        Name.Class
' '           Text
':'           Punctuation
' '           Text
'ParentDict'  Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'TestEnum'    Name.Class
' '           Text
'someEnum'    Name.Variable
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'x'           Name.Variable
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'a'           Name.Variable
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'b'           Name.Variable
' '           Text
'='           Punctuation
' '           Text
'8'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'z'           Name.Variable
' '           Text
'='           Punctuation
' '           Text
'9'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'['           Punctuation
'EnforceRange' Name.Decorator
']'           Punctuation
' '           Text
'unsigned long' Keyword.Type
' '           Text
'enforcedUnsignedLong' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Clamp'       Name.Decorator
']'           Punctuation
' '           Text
'unsigned long' Keyword.Type
' '           Text
'clampedUnsignedLong' Name.Variable
';'           Punctuation
'\n  '        Text
'DOMString'   Keyword.Type
' '           Text
'str'         Name.Variable
';'           Punctuation
'\n  '        Text
'DOMString'   Keyword.Type
' '           Text
'empty'       Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
';'           Punctuation
'\n  '        Text
'TestEnum'    Name.Class
' '           Text
'otherEnum'   Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"b"'         Literal.String
';'           Punctuation
'\n  '        Text
'DOMString'   Keyword.Type
' '           Text
'otherStr'    Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"def"'       Literal.String
';'           Punctuation
'\n  '        Text
'DOMString'   Keyword.Type
'?'           Punctuation
' '           Text
'yetAnotherStr' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'DOMString'   Keyword.Type
' '           Text
'template'    Name.Variable
';'           Punctuation
'\n  '        Text
'ByteString'  Keyword.Type
' '           Text
'byteStr'     Name.Variable
';'           Punctuation
'\n  '        Text
'ByteString'  Keyword.Type
' '           Text
'emptyByteStr' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'""'          Literal.String
';'           Punctuation
'\n  '        Text
'ByteString'  Keyword.Type
' '           Text
'otherByteStr' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"def"'       Literal.String
';'           Punctuation
'\n  '        Text
'object'      Keyword.Type
' '           Text
'someObj'     Name.Variable
';'           Punctuation
'\n  '        Text
'boolean'     Keyword.Type
' '           Text
'prototype'   Name.Variable
';'           Punctuation
'\n  '        Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'anotherObj'  Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'TestCallback' Name.Class
'?'           Punctuation
' '           Text
'someCallback' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'any'         Keyword.Type
' '           Text
'someAny'     Name.Variable
';'           Punctuation
'\n  '        Text
'any'         Keyword.Type
' '           Text
'anotherAny'  Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n\n  '      Text
'unrestricted float' Keyword.Type
'  '          Text
'urFloat'     Name.Variable
' '           Text
'='           Punctuation
' '           Text
'0'           Literal.Number.Oct
';'           Punctuation
'\n  '        Text
'unrestricted float' Keyword.Type
'  '          Text
'urFloat2'    Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.1'         Literal.Number.Float
';'           Punctuation
'\n  '        Text
'unrestricted float' Keyword.Type
'  '          Text
'urFloat3'    Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-1.1'        Literal.Number.Float
';'           Punctuation
'\n  '        Text
'unrestricted float' Keyword.Type
'?'           Punctuation
' '           Text
'urFloat4'    Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'unrestricted float' Keyword.Type
'  '          Text
'infUrFloat'  Name.Variable
' '           Text
'='           Punctuation
' '           Text
'Infinity'    Keyword.Constant
';'           Punctuation
'\n  '        Text
'unrestricted float' Keyword.Type
'  '          Text
'negativeInfUrFloat' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-Infinity'   Keyword.Constant
';'           Punctuation
'\n  '        Text
'unrestricted float' Keyword.Type
'  '          Text
'nanUrFloat'  Name.Variable
' '           Text
'='           Punctuation
' '           Text
'NaN'         Keyword.Constant
';'           Punctuation
'\n\n  '      Text
'unrestricted double' Keyword.Type
'  '          Text
'urDouble'    Name.Variable
' '           Text
'='           Punctuation
' '           Text
'0'           Literal.Number.Oct
';'           Punctuation
'\n  '        Text
'unrestricted double' Keyword.Type
'  '          Text
'urDouble2'   Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1.1'         Literal.Number.Float
';'           Punctuation
'\n  '        Text
'unrestricted double' Keyword.Type
'  '          Text
'urDouble3'   Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-1.1'        Literal.Number.Float
';'           Punctuation
'\n  '        Text
'unrestricted double' Keyword.Type
'?'           Punctuation
' '           Text
'urDouble4'   Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'unrestricted double' Keyword.Type
'  '          Text
'infUrDouble' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'Infinity'    Keyword.Constant
';'           Punctuation
'\n  '        Text
'unrestricted double' Keyword.Type
'  '          Text
'negativeInfUrDouble' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'-Infinity'   Keyword.Constant
';'           Punctuation
'\n  '        Text
'unrestricted double' Keyword.Type
'  '          Text
'nanUrDouble' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'NaN'         Keyword.Constant
';'           Punctuation
'\n\n  '      Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
' '           Text
'floatOrString' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"str"'       Literal.String
';'           Punctuation
'\n  '        Text
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableFloatOrString' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'"str"'       Literal.String
';'           Punctuation
'\n  '        Text
'('           Punctuation
'object'      Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'objectOrLong' Name.Variable
';'           Punctuation
'\n'          Text

'#ifdef DEBUG' Comment.Preproc
'\n  '        Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'eventInitOrLong' Name.Variable
';'           Punctuation
'\n  '        Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableEventInitOrLong' Name.Variable
';'           Punctuation
'\n  '        Text
'('           Punctuation
'HTMLElement' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableHTMLElementOrLong' Name.Variable
';'           Punctuation
'\n  '        Text
'// CustomEventInit is useful to test because it needs rooting.' Comment.Single
'\n  '        Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'eventInitOrLong2' Name.Variable
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableEventInitOrLong2' Name.Variable
';'           Punctuation
'\n  '        Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'eventInitOrLongWithDefaultValue' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'eventInitOrLongWithDefaultValue2' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'eventInitOrLongWithDefaultValue3' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'eventInitOrLongWithDefaultValue4' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableEventInitOrLongWithDefaultValue' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableEventInitOrLongWithDefaultValue2' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'('           Punctuation
'EventInit'   Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableEventInitOrLongWithDefaultValue3' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'('           Punctuation
'CustomEventInit' Name.Class
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableEventInitOrLongWithDefaultValue4' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'objectSequenceOrLong' Name.Variable
';'           Punctuation
'\n  '        Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'objectSequenceOrLongWithDefaultValue1' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
' '           Text
'objectSequenceOrLongWithDefaultValue2' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
';'           Punctuation
'\n  '        Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableObjectSequenceOrLong' Name.Variable
';'           Punctuation
'\n  '        Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableObjectSequenceOrLongWithDefaultValue1' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'1'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'('           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'or'          Keyword
' '           Text
'long'        Keyword.Type
')'           Punctuation
'?'           Punctuation
' '           Text
'nullableObjectSequenceOrLongWithDefaultValue2' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
';'           Punctuation
'\n'          Text

'#endif'      Comment.Preproc
'\n\n  '      Text
'ArrayBuffer' Keyword.Type
' '           Text
'arrayBuffer' Name.Variable
';'           Punctuation
'\n  '        Text
'ArrayBuffer' Keyword.Type
'?'           Punctuation
' '           Text
'nullableArrayBuffer' Name.Variable
';'           Punctuation
'\n  '        Text
'Uint8Array'  Keyword.Type
' '           Text
'uint8Array'  Name.Variable
';'           Punctuation
'\n  '        Text
'Float64Array' Keyword.Type
'?'           Punctuation
' '           Text
'float64Array' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n\n  '      Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'seq1'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'seq2'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'seq3'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'seq4'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'seq5'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'[]'          Punctuation
';'           Punctuation
'\n\n  '      Text
'long'        Keyword.Type
' '           Text
'dashed-name' Name.Variable
';'           Punctuation
'\n\n  '      Text
'required'    Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'requiredLong' Name.Variable
';'           Punctuation
'\n  '        Text
'required'    Keyword
' '           Text
'object'      Keyword.Type
' '           Text
'requiredObject' Name.Variable
';'           Punctuation
'\n\n  '      Text
'CustomEventInit' Name.Class
' '           Text
'customEventInit' Name.Variable
';'           Punctuation
'\n  '        Text
'TestDictionaryTypedef' Name.Class
' '           Text
'dictionaryTypedef' Name.Variable
';'           Punctuation
'\n\n  '      Text
'Promise'     Keyword.Type
'<'           Punctuation
'void'        Keyword.Type
'>'           Punctuation
' '           Text
'promise'     Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'Promise'     Keyword.Type
'<'           Punctuation
'void'        Keyword.Type
'>'           Punctuation
'>'           Punctuation
' '           Text
'promiseSequence' Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'dictionary'  Keyword
' '           Text
'ParentDict'  Name.Class
' '           Text
':'           Punctuation
' '           Text
'GrandparentDict' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'c'           Name.Variable
' '           Text
'='           Punctuation
' '           Text
'5'           Literal.Number.Integer
';'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
' '           Text
'someInterface' Name.Variable
';'           Punctuation
'\n  '        Text
'TestInterface' Name.Class
'?'           Punctuation
' '           Text
'someNullableInterface' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'TestExternalInterface' Name.Class
' '           Text
'someExternalInterface' Name.Variable
';'           Punctuation
'\n  '        Text
'any'         Keyword.Type
' '           Text
'parentAny'   Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'dictionary'  Keyword
' '           Text
'DictContainingDict' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'Dict'        Name.Class
' '           Text
'memberDict'  Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'dictionary'  Keyword
' '           Text
'DictContainingSequence' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'long'        Keyword.Type
'>'           Punctuation
' '           Text
'ourSequence' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'TestInterface' Name.Class
'>'           Punctuation
' '           Text
'ourSequence2' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'ourSequence3' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
' '           Text
'ourSequence4' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
' '           Text
'ourSequence5' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'ourSequence6' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'ourSequence7' Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'>'           Punctuation
'?'           Punctuation
' '           Text
'ourSequence8' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'object'      Keyword.Type
'?'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'ourSequence9' Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'('           Punctuation
'float'       Keyword.Type
' '           Text
'or'          Keyword
' '           Text
'DOMString'   Keyword.Type
')'           Punctuation
'>'           Punctuation
' '           Text
'ourSequence10' Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'dictionary'  Keyword
' '           Text
'DictForConstructor' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'Dict'        Name.Class
' '           Text
'dict'        Name.Variable
';'           Punctuation
'\n  '        Text
'DictContainingDict' Name.Class
' '           Text
'dict2'       Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
' '           Text
'seq1'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
'>'           Punctuation
'?'           Punctuation
' '           Text
'seq2'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'sequence'    Keyword.Type
'<'           Punctuation
'Dict'        Name.Class
'>'           Punctuation
'?'           Punctuation
'>'           Punctuation
' '           Text
'seq3'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'seq4'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'any'         Keyword.Type
'>'           Punctuation
' '           Text
'seq5'        Name.Variable
';'           Punctuation
'\n  '        Text
'sequence'    Keyword.Type
'<'           Punctuation
'DictContainingSequence' Name.Class
'>'           Punctuation
' '           Text
'seq6'        Name.Variable
';'           Punctuation
'\n  '        Text
'object'      Keyword.Type
' '           Text
'obj1'        Name.Variable
';'           Punctuation
'\n  '        Text
'object'      Keyword.Type
'?'           Punctuation
' '           Text
'obj2'        Name.Variable
';'           Punctuation
'\n  '        Text
'any'         Keyword.Type
' '           Text
'any1'        Name.Variable
' '           Text
'='           Punctuation
' '           Text
'null'        Keyword.Constant
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'dictionary'  Keyword
' '           Text
'DictWithConditionalMembers' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'['           Punctuation
'ChromeOnly'  Name.Decorator
']'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'chromeOnlyMember' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'Func'        Name.Decorator
'='           Punctuation
'"TestFuncControlledMember"' Literal.String
']'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'funcControlledMember' Name.Variable
';'           Punctuation
'\n  '        Text
'['           Punctuation
'ChromeOnly'  Name.Decorator
','           Punctuation
' '           Text
'Func'        Name.Decorator
'='           Punctuation
'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String
']'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'chromeOnlyFuncControlledMember' Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedGetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'item'        Name.Function
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'idx'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'length'      Name.Variable
';'           Punctuation
'\n  '        Text
'legacycaller' Keyword
' '           Text
'void'        Keyword.Type
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestNamedGetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedGetterAndSetterAndNamedGetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'myName'      Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
','           Punctuation
' '           Text
'long'        Keyword.Type
' '           Text
'arg'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedAndNamedGetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'namedItem'   Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'length'      Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'setItem'     Name.Function
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'idx'         Name.Variable
','           Punctuation
' '           Text
'DOMString'   Keyword.Type
' '           Text
'item'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'idx'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestNamedSetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'myName'      Name.Variable
','           Punctuation
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'item'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedAndNamedSetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
','           Punctuation
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'item'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'setNamedItem' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
','           Punctuation
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'item'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedAndNamedGetterAndSetterInterface' Name.Class
' '           Text
':'           Punctuation
' '           Text
'TestIndexedSetterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'item'        Name.Function
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'namedItem'   Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
','           Punctuation
' '           Text
'long'        Keyword.Type
' '           Text
'item'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'setter'      Keyword
' '           Text
'creator'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
','           Punctuation
' '           Text
'DOMString'   Keyword.Type
' '           Text
'item'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'stringifier' Keyword
' '           Text
'DOMString'   Keyword.Type
' '           Text
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'unsigned long' Keyword.Type
' '           Text
'length'      Name.Variable
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedDeleterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'deleter'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'delItem'     Name.Function
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'idx'         Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedDeleterWithRetvalInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'deleter'     Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'delItem'     Name.Function
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestNamedDeleterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'deleter'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestNamedDeleterWithRetvalInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'deleter'     Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'delNamedItem' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestIndexedAndNamedDeleterInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'deleter'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'unsigned long' Keyword.Type
' '           Text
'index'       Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'deleter'     Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'delNamedItem' Name.Function
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n  '        Text
'getter'      Keyword
' '           Text
'long'        Keyword.Type
' '           Text
'('           Punctuation
'DOMString'   Keyword.Type
' '           Text
'name'        Name.Variable
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'interface'   Keyword
' '           Text
'TestCppKeywordNamedMethodsInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'boolean'     Keyword.Type
' '           Text
'continue'    Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'boolean'     Keyword.Type
' '           Text
'delete'      Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'volatile'    Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'Deprecated'  Name.Decorator
'='           Punctuation
'"GetAttributeNode"' Literal.String
','           Punctuation
' '           Text
'Constructor' Name.Decorator
'('           Punctuation
')'           Punctuation
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'TestDeprecatedInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'alsoDeprecated' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n\n'      Text

'['           Punctuation
'Constructor' Name.Decorator
'('           Punctuation
'Promise'     Keyword.Type
'<'           Punctuation
'void'        Keyword.Type
'>'           Punctuation
' '           Text
'promise'     Name.Variable
')'           Punctuation
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'TestInterfaceWithPromiseConstructorArg' Name.Class
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'namespace'   Keyword
' '           Text
'TestNamespace' Name.Namespace
' '           Text
'{'           Punctuation
'\n  '        Text
'readonly'    Keyword
' '           Text
'attribute'   Keyword
' '           Text
'boolean'     Keyword.Type
' '           Text
'foo'         Name.Variable
';'           Punctuation
'\n  '        Text
'long'        Keyword.Type
' '           Text
'bar'         Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'partial'     Keyword
' '           Text
'namespace'   Keyword
' '           Text
'TestNamespace' Name.Namespace
' '           Text
'{'           Punctuation
'\n  '        Text
'void'        Keyword.Type
' '           Text
'baz'         Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'ClassString' Name.Decorator
'='           Punctuation
'"RenamedNamespaceClassName"' Literal.String
']'           Punctuation
'\n'          Text

'namespace'   Keyword
' '           Text
'TestRenamedNamespace' Name.Namespace
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'ProtoObjectHack' Name.Decorator
']'           Punctuation
'\n'          Text

'namespace'   Keyword
' '           Text
'TestProtoObjectHackedNamespace' Name.Namespace
' '           Text
'{'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n\n'        Text

'['           Punctuation
'SecureContext' Name.Decorator
']'           Punctuation
'\n'          Text

'interface'   Keyword
' '           Text
'TestSecureContextInterface' Name.Class
' '           Text
'{'           Punctuation
'\n  '        Text
'static'      Keyword
' '           Text
'void'        Keyword.Type
' '           Text
'alsoSecureContext' Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text
