1 /++ 2 This module was automatically generated from the following grammar: 3 4 WebIDL: 5 Definitions < (ExtendedAttributeList Definition)+ eoi 6 7 Definition < 8 CallbackOrInterfaceOrMixin / 9 Namespace / 10 Partial / 11 Dictionary / 12 Enum / 13 Typedef / 14 IncludesStatement 15 16 CallbackOrInterfaceOrMixin < 17 ("callback" CallbackRestOrInterface) / 18 ("interface" InterfaceOrMixin) 19 20 CallbackRestOrInterface < 21 CallbackRest / ("interface" InterfaceRest) 22 23 InterfaceOrMixin < MixinRest / InterfaceRest 24 25 InterfaceRest < Identifier Inheritance '{' InterfaceMembers '}' ';' 26 27 Partial < "partial" PartialDefinition 28 29 PartialDefinition < 30 ("interface" PartialInterfaceOrPartialMixin) / 31 PartialDictionary / 32 Namespace 33 34 PartialInterfaceOrPartialMixin < MixinRest / PartialInterfaceRest 35 36 PartialInterfaceRest < Identifier '{' InterfaceMembers '}' ';' 37 38 InterfaceMembers < InterfaceMember+ / eps 39 40 InterfaceMember < ExtendedAttributeList (Const / 41 Operation / 42 Stringifier / 43 StaticMember / 44 Iterable / 45 ReadOnlyMember / 46 ReadWriteAttribute / 47 ReadWriteMaplike / 48 ReadWriteSetlike) 49 50 Inheritance < (':' Identifier) / eps 51 52 MixinRest < "mixin" Identifier '{' MixinMembers '}' ';' 53 54 MixinMembers < (ExtendedAttributeList MixinMember)+ / eps 55 56 MixinMember < 57 Const / 58 (ReadOnly AttributeRest) / 59 RegularOperation / 60 Stringifier 61 62 IncludesStatement < Identifier "includes" Identifier ';' 63 64 Const < "const" ConstType Identifier '=' ConstValue ';' 65 66 ConstValue < 67 BooleanLiteral / 68 FloatLiteral / 69 Integer / 70 "null" 71 72 BooleanLiteral < "true" / "false" 73 74 FloatLiteral < Float / "-Infinity" / "Infinity" / "NaN" 75 76 ConstType < (PrimitiveType Null) / (Identifier Null) 77 78 ReadOnlyMember < "readonly" ReadOnlyMemberRest 79 80 ReadOnlyMemberRest < AttributeRest / ReadWriteMaplike / ReadWriteSetlike 81 82 ReadWriteAttribute < ("inherit" ReadOnly AttributeRest) / AttributeRest 83 84 AttributeRest < "attribute" TypeWithExtendedAttributes AttributeName ';' 85 86 AttributeName < AttributeNameKeyword / Identifier 87 88 AttributeNameKeyword <- "required" !Identifier 89 90 ReadOnly < "readonly" / eps 91 92 DefaultValue < ConstValue / String / ('[' ']') 93 94 Operation < SpecialOperation / RegularOperation 95 96 RegularOperation < ReturnType OperationRest 97 98 SpecialOperation < Special RegularOperation 99 100 Special < "getter" / "setter" / "deleter" 101 102 OperationRest < OptionalIdentifier '(' ArgumentList ')' ';' 103 104 OptionalIdentifier < Identifier / eps 105 106 ArgumentList < (Argument (',' Argument)*) / eps 107 108 Argument < ExtendedAttributeList ArgumentRest 109 110 ArgumentRest < ("optional" TypeWithExtendedAttributes ArgumentName Default) / (Type Ellipsis ArgumentName) 111 112 ArgumentName < ArgumentNameKeyword | Identifier 113 114 Ellipsis < "..." / eps 115 116 ReturnType < Type / "void" 117 118 Stringifier < "stringifier" StringifierRest 119 120 StringifierRest < (ReadOnly AttributeRest) / (RegularOperation) / ';' 121 122 StaticMember < "static" StaticMemberRest 123 124 StaticMemberRest < (ReadOnly AttributeRest) / RegularOperation 125 126 Iterable < "iterable" '<' TypeWithExtendedAttributes OptionalType '>' ';' 127 128 OptionalType < (',' TypeWithExtendedAttributes) / eps 129 130 ReadWriteMaplike < MaplikeRest 131 132 MaplikeRest < "maplike" '<' TypeWithExtendedAttributes ',' TypeWithExtendedAttributes '>' ';' 133 134 ReadWriteSetlike < SetlikeRest 135 136 SetlikeRest < "setlike" '<' TypeWithExtendedAttributes '>' ';' 137 138 Namespace < "namespace" Identifier '{' NamespaceMembers '}' ';' 139 140 NamespaceMembers < (ExtendedAttributeList NamespaceMember)+ / eps 141 142 NamespaceMember < RegularOperation / ("readonly" AttributeRest) 143 144 Dictionary < "dictionary" Identifier Inheritance '{' DictionaryMembers '}' ';' 145 146 DictionaryMembers < DictionaryMember+ / eps 147 148 DictionaryMember < ExtendedAttributeList DictionaryMemberRest 149 150 DictionaryMemberRest < ("required" TypeWithExtendedAttributes Identifier Default ';') / (Type Identifier Default ';') 151 152 PartialDictionary < "dictionary" Identifier '{' DictionaryMembers '}' ';' 153 154 Default < ('=' DefaultValue) / eps 155 156 Enum < "enum" Identifier '{' EnumValueList '}' ';' 157 158 EnumValueList < String (',' String)* 159 160 CallbackRest < Identifier '=' ReturnType '(' ArgumentList ')' ';' 161 162 Typedef < "typedef" TypeWithExtendedAttributes Identifier ';' 163 164 Type < SingleType / (UnionType Null) 165 166 TypeWithExtendedAttributes < ExtendedAttributeList Type 167 168 SingleType <- ("any" !Identifier) / NonAnyType 169 170 UnionType < '(' UnionMemberType ("or" UnionMemberType)+ ')' 171 172 UnionMemberType < (ExtendedAttributeList NonAnyType) / (UnionType Null) 173 174 SequenceType < "sequence" '<' TypeWithExtendedAttributes '>' Null 175 176 NonAnyType <- 177 (SequenceType) / 178 ("object" (!Identifier Spacing Null)) / 179 ("symbol" (!Identifier Spacing Null)) / 180 ("Error" (!Identifier Spacing Null)) / 181 ("FrozenArray" '<' TypeWithExtendedAttributes '>' Null) / 182 (RecordType Null) / 183 PromiseType / 184 (PrimitiveType Null) / 185 (StringType Null) / 186 (Identifier Null) / 187 (BufferRelatedType Null) 188 189 PrimitiveType < 190 UnsignedIntegerType / 191 UnrestrictedFloatType / 192 "boolean" / 193 "byte" / 194 "octet" 195 196 UnrestrictedFloatType < "unrestricted"? FloatType 197 198 FloatType < "float" / "double" 199 200 UnsignedIntegerType < "unsigned"? IntegerType 201 202 IntegerType < "short" / ("long" "long") / "long" 203 204 StringType <- ("ByteString" / "DOMString" / "USVString" / "CSSOMString") !(Identifier) 205 206 PromiseType < "Promise" '<' ReturnType '>' 207 208 RecordType < "record" '<' StringType ',' TypeWithExtendedAttributes '>' 209 210 Null < "?" / eps 211 212 BufferRelatedType < 213 "ArrayBuffer" / 214 "DataView" / 215 "Int8Array" / 216 "Int16Array" / 217 "Int32Array" / 218 "Uint8Array" / 219 "Uint16Array" / 220 "Uint32Array" / 221 "Uint8ClampedArray" / 222 "Float32Array" / 223 "Float64Array" 224 225 ExtendedAttributeList < ('[' ExtendedAttribute (',' ExtendedAttribute)* ']') / eps 226 227 ExtendedAttributeOuter < 228 ('(' ExtendedAttributeInner ')') / 229 ('[' ExtendedAttributeInner ']') / 230 ('{' ExtendedAttributeInner '}') / 231 ExtendedAttribute 232 233 ExtendedAttributeInner < 234 (('(' ExtendedAttributeInner ')') / 235 ('[' ExtendedAttributeInner ']') / 236 ('{' ExtendedAttributeInner '}') / 237 OtherOrComma)+ 238 239 ExtendedAttribute < ExtendedAttributeArgList / ExtendedAttributeNamedArgList / ExtendedAttributeIdent / ExtendedAttributeIdentList / ExtendedAttributeNoArgs 240 241 Other < 242 "ByteString" / 243 "DOMString" / 244 "FrozenArray" / 245 "Infinity" / 246 "NaN" / 247 "USVString" / 248 "any" / 249 "boolean" / 250 "byte" / 251 "double" / 252 "false" / 253 "float" / 254 "long" / 255 "null" / 256 "object" / 257 "octet" / 258 "or" / 259 "optional" / 260 "sequence" / 261 "short" / 262 "true" / 263 "unsigned" / 264 "void" / 265 Integer / 266 Float / 267 Identifier / 268 String / 269 Other2 / 270 '-' / 271 "-Infinity" / 272 '.' / 273 "..." / 274 ':' / 275 ';' / 276 '<' / 277 '=' / 278 '>' / 279 '?' / 280 ArgumentNameKeyword / 281 BufferRelatedType 282 283 OtherOrComma < Other / ',' 284 285 IdentifierList < Identifier (',' Identifier)* 286 287 Integer <~ '-'? ([1-9] [0-9]*) / ('0' [Xx] [0-9A-Fa-f]+) / ('0' [0-7]*) 288 289 Float <~ '-'? ((([0-9]+ '.' [0-9]*) / ([0-9]* '.' [0-9]+))(('E' / 'e') ('+' / '-')? [0-9]+)?) / ([0-9]+ ('E' / 'e') ('+' / '-')? [0-9]+) 290 291 Identifier <~ '_'? [A-Za-z] [0-9A-Z_a-z-]* 292 293 String <~ doublequote (!doublequote .)* doublequote 294 295 Whitespace <- :(' ' / '\t' / EndOfLine)+ 296 297 EndOfLine <: ('\r' '\n') / '\n' 298 299 Comment <~ (Whitespace? (("//" (!EndOfLine .)*) / ("/*" ((!"*/" .) / EndOfLine)* "*/")) Whitespace?)+ 300 301 Spacing <- :(Whitespace / Comment)* 302 303 Other2 <~ [^\t\n\r 0-9A-Za-z] 304 305 ArgumentNameKeyword <- 306 ("attribute" / 307 "callback" / 308 "const" / 309 "deleter" / 310 "dictionary" / 311 "enum" / 312 "getter" / 313 "includes" / 314 "inherit" / 315 "interface" / 316 "iterable" / 317 "maplike" / 318 "namespace" / 319 "partial" / 320 "required" / 321 "setlike" / 322 "setter" / 323 "static" / 324 "stringifier" / 325 "typedef" / 326 "unrestricted") !Identifier 327 328 ExtendedAttributeNoArgs < Identifier 329 330 ExtendedAttributeArgList < Identifier '(' ArgumentList ')' 331 332 ExtendedAttributeIdent < Identifier '=' Identifier 333 334 ExtendedAttributeIdentList < Identifier '=' '(' IdentifierList ')' 335 336 ExtendedAttributeNamedArgList < Identifier '=' Identifier '(' ArgumentList ')' 337 338 339 +/ 340 module webidl.grammar; 341 342 public import pegged.peg; 343 import std.algorithm: startsWith; 344 import std.functional: toDelegate; 345 346 struct GenericWebIDL(TParseTree) 347 { 348 import std.functional : toDelegate; 349 import pegged.dynamic.grammar; 350 static import pegged.peg; 351 struct WebIDL 352 { 353 enum name = "WebIDL"; 354 static ParseTree delegate(ParseTree)[string] before; 355 static ParseTree delegate(ParseTree)[string] after; 356 static ParseTree delegate(ParseTree)[string] rules; 357 import std.typecons:Tuple, tuple; 358 static TParseTree[Tuple!(string, size_t)] memo; 359 static this() 360 { 361 rules["Definitions"] = toDelegate(&Definitions); 362 rules["Definition"] = toDelegate(&Definition); 363 rules["CallbackOrInterfaceOrMixin"] = toDelegate(&CallbackOrInterfaceOrMixin); 364 rules["CallbackRestOrInterface"] = toDelegate(&CallbackRestOrInterface); 365 rules["InterfaceOrMixin"] = toDelegate(&InterfaceOrMixin); 366 rules["InterfaceRest"] = toDelegate(&InterfaceRest); 367 rules["Partial"] = toDelegate(&Partial); 368 rules["PartialDefinition"] = toDelegate(&PartialDefinition); 369 rules["PartialInterfaceOrPartialMixin"] = toDelegate(&PartialInterfaceOrPartialMixin); 370 rules["PartialInterfaceRest"] = toDelegate(&PartialInterfaceRest); 371 rules["InterfaceMembers"] = toDelegate(&InterfaceMembers); 372 rules["InterfaceMember"] = toDelegate(&InterfaceMember); 373 rules["Inheritance"] = toDelegate(&Inheritance); 374 rules["MixinRest"] = toDelegate(&MixinRest); 375 rules["MixinMembers"] = toDelegate(&MixinMembers); 376 rules["MixinMember"] = toDelegate(&MixinMember); 377 rules["IncludesStatement"] = toDelegate(&IncludesStatement); 378 rules["Const"] = toDelegate(&Const); 379 rules["ConstValue"] = toDelegate(&ConstValue); 380 rules["BooleanLiteral"] = toDelegate(&BooleanLiteral); 381 rules["FloatLiteral"] = toDelegate(&FloatLiteral); 382 rules["ConstType"] = toDelegate(&ConstType); 383 rules["ReadOnlyMember"] = toDelegate(&ReadOnlyMember); 384 rules["ReadOnlyMemberRest"] = toDelegate(&ReadOnlyMemberRest); 385 rules["ReadWriteAttribute"] = toDelegate(&ReadWriteAttribute); 386 rules["AttributeRest"] = toDelegate(&AttributeRest); 387 rules["AttributeName"] = toDelegate(&AttributeName); 388 rules["AttributeNameKeyword"] = toDelegate(&AttributeNameKeyword); 389 rules["ReadOnly"] = toDelegate(&ReadOnly); 390 rules["DefaultValue"] = toDelegate(&DefaultValue); 391 rules["Operation"] = toDelegate(&Operation); 392 rules["RegularOperation"] = toDelegate(&RegularOperation); 393 rules["SpecialOperation"] = toDelegate(&SpecialOperation); 394 rules["Special"] = toDelegate(&Special); 395 rules["OperationRest"] = toDelegate(&OperationRest); 396 rules["OptionalIdentifier"] = toDelegate(&OptionalIdentifier); 397 rules["ArgumentList"] = toDelegate(&ArgumentList); 398 rules["Argument"] = toDelegate(&Argument); 399 rules["ArgumentRest"] = toDelegate(&ArgumentRest); 400 rules["ArgumentName"] = toDelegate(&ArgumentName); 401 rules["Ellipsis"] = toDelegate(&Ellipsis); 402 rules["ReturnType"] = toDelegate(&ReturnType); 403 rules["Stringifier"] = toDelegate(&Stringifier); 404 rules["StringifierRest"] = toDelegate(&StringifierRest); 405 rules["StaticMember"] = toDelegate(&StaticMember); 406 rules["StaticMemberRest"] = toDelegate(&StaticMemberRest); 407 rules["Iterable"] = toDelegate(&Iterable); 408 rules["OptionalType"] = toDelegate(&OptionalType); 409 rules["ReadWriteMaplike"] = toDelegate(&ReadWriteMaplike); 410 rules["MaplikeRest"] = toDelegate(&MaplikeRest); 411 rules["ReadWriteSetlike"] = toDelegate(&ReadWriteSetlike); 412 rules["SetlikeRest"] = toDelegate(&SetlikeRest); 413 rules["Namespace"] = toDelegate(&Namespace); 414 rules["NamespaceMembers"] = toDelegate(&NamespaceMembers); 415 rules["NamespaceMember"] = toDelegate(&NamespaceMember); 416 rules["Dictionary"] = toDelegate(&Dictionary); 417 rules["DictionaryMembers"] = toDelegate(&DictionaryMembers); 418 rules["DictionaryMember"] = toDelegate(&DictionaryMember); 419 rules["DictionaryMemberRest"] = toDelegate(&DictionaryMemberRest); 420 rules["PartialDictionary"] = toDelegate(&PartialDictionary); 421 rules["Default"] = toDelegate(&Default); 422 rules["Enum"] = toDelegate(&Enum); 423 rules["EnumValueList"] = toDelegate(&EnumValueList); 424 rules["CallbackRest"] = toDelegate(&CallbackRest); 425 rules["Typedef"] = toDelegate(&Typedef); 426 rules["Type"] = toDelegate(&Type); 427 rules["TypeWithExtendedAttributes"] = toDelegate(&TypeWithExtendedAttributes); 428 rules["SingleType"] = toDelegate(&SingleType); 429 rules["UnionType"] = toDelegate(&UnionType); 430 rules["UnionMemberType"] = toDelegate(&UnionMemberType); 431 rules["SequenceType"] = toDelegate(&SequenceType); 432 rules["NonAnyType"] = toDelegate(&NonAnyType); 433 rules["PrimitiveType"] = toDelegate(&PrimitiveType); 434 rules["UnrestrictedFloatType"] = toDelegate(&UnrestrictedFloatType); 435 rules["FloatType"] = toDelegate(&FloatType); 436 rules["UnsignedIntegerType"] = toDelegate(&UnsignedIntegerType); 437 rules["IntegerType"] = toDelegate(&IntegerType); 438 rules["StringType"] = toDelegate(&StringType); 439 rules["PromiseType"] = toDelegate(&PromiseType); 440 rules["RecordType"] = toDelegate(&RecordType); 441 rules["Null"] = toDelegate(&Null); 442 rules["BufferRelatedType"] = toDelegate(&BufferRelatedType); 443 rules["ExtendedAttributeList"] = toDelegate(&ExtendedAttributeList); 444 rules["ExtendedAttributeOuter"] = toDelegate(&ExtendedAttributeOuter); 445 rules["ExtendedAttributeInner"] = toDelegate(&ExtendedAttributeInner); 446 rules["ExtendedAttribute"] = toDelegate(&ExtendedAttribute); 447 rules["Other"] = toDelegate(&Other); 448 rules["OtherOrComma"] = toDelegate(&OtherOrComma); 449 rules["IdentifierList"] = toDelegate(&IdentifierList); 450 rules["Integer"] = toDelegate(&Integer); 451 rules["Float"] = toDelegate(&Float); 452 rules["Identifier"] = toDelegate(&Identifier); 453 rules["String"] = toDelegate(&String); 454 rules["Whitespace"] = toDelegate(&Whitespace); 455 rules["EndOfLine"] = toDelegate(&EndOfLine); 456 rules["Comment"] = toDelegate(&Comment); 457 rules["Spacing"] = toDelegate(&Spacing); 458 } 459 460 template hooked(alias r, string name) 461 { 462 static ParseTree hooked(ParseTree p) 463 { 464 ParseTree result; 465 466 if (name in before) 467 { 468 result = before[name](p); 469 if (result.successful) 470 return result; 471 } 472 473 result = r(p); 474 if (result.successful || name !in after) 475 return result; 476 477 result = after[name](p); 478 return result; 479 } 480 481 static ParseTree hooked(string input) 482 { 483 return hooked!(r, name)(ParseTree("",false,[],input)); 484 } 485 } 486 487 static void addRuleBefore(string parentRule, string ruleSyntax) 488 { 489 // enum name is the current grammar name 490 DynamicGrammar dg = pegged.dynamic.grammar.grammar(name ~ ": " ~ ruleSyntax, rules); 491 foreach(ruleName,rule; dg.rules) 492 if (ruleName != "Spacing") // Keep the local Spacing rule, do not overwrite it 493 rules[ruleName] = rule; 494 before[parentRule] = rules[dg.startingRule]; 495 } 496 497 static void addRuleAfter(string parentRule, string ruleSyntax) 498 { 499 // enum name is the current grammar named 500 DynamicGrammar dg = pegged.dynamic.grammar.grammar(name ~ ": " ~ ruleSyntax, rules); 501 foreach(name,rule; dg.rules) 502 { 503 if (name != "Spacing") 504 rules[name] = rule; 505 } 506 after[parentRule] = rules[dg.startingRule]; 507 } 508 509 static bool isRule(string s) 510 { 511 import std.algorithm : startsWith; 512 return s.startsWith("WebIDL."); 513 } 514 mixin decimateTree; 515 516 static TParseTree Definitions(TParseTree p) 517 { 518 if(__ctfe) 519 { 520 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Definition, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eoi, Spacing)), "WebIDL.Definitions")(p); 521 } 522 else 523 { 524 if (auto m = tuple(`Definitions`, p.end) in memo) 525 return *m; 526 else 527 { 528 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Definition, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eoi, Spacing)), "WebIDL.Definitions"), "Definitions")(p); 529 memo[tuple(`Definitions`, p.end)] = result; 530 return result; 531 } 532 } 533 } 534 535 static TParseTree Definitions(string s) 536 { 537 if(__ctfe) 538 { 539 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Definition, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eoi, Spacing)), "WebIDL.Definitions")(TParseTree("", false,[], s)); 540 } 541 else 542 { 543 forgetMemo(); 544 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Definition, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eoi, Spacing)), "WebIDL.Definitions"), "Definitions")(TParseTree("", false,[], s)); 545 } 546 } 547 static string Definitions(GetName g) 548 { 549 return "WebIDL.Definitions"; 550 } 551 552 static TParseTree Definition(TParseTree p) 553 { 554 if(__ctfe) 555 { 556 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackOrInterfaceOrMixin, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing), pegged.peg.wrapAround!(Spacing, Partial, Spacing), pegged.peg.wrapAround!(Spacing, Dictionary, Spacing), pegged.peg.wrapAround!(Spacing, Enum, Spacing), pegged.peg.wrapAround!(Spacing, Typedef, Spacing), pegged.peg.wrapAround!(Spacing, IncludesStatement, Spacing)), "WebIDL.Definition")(p); 557 } 558 else 559 { 560 if (auto m = tuple(`Definition`, p.end) in memo) 561 return *m; 562 else 563 { 564 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackOrInterfaceOrMixin, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing), pegged.peg.wrapAround!(Spacing, Partial, Spacing), pegged.peg.wrapAround!(Spacing, Dictionary, Spacing), pegged.peg.wrapAround!(Spacing, Enum, Spacing), pegged.peg.wrapAround!(Spacing, Typedef, Spacing), pegged.peg.wrapAround!(Spacing, IncludesStatement, Spacing)), "WebIDL.Definition"), "Definition")(p); 565 memo[tuple(`Definition`, p.end)] = result; 566 return result; 567 } 568 } 569 } 570 571 static TParseTree Definition(string s) 572 { 573 if(__ctfe) 574 { 575 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackOrInterfaceOrMixin, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing), pegged.peg.wrapAround!(Spacing, Partial, Spacing), pegged.peg.wrapAround!(Spacing, Dictionary, Spacing), pegged.peg.wrapAround!(Spacing, Enum, Spacing), pegged.peg.wrapAround!(Spacing, Typedef, Spacing), pegged.peg.wrapAround!(Spacing, IncludesStatement, Spacing)), "WebIDL.Definition")(TParseTree("", false,[], s)); 576 } 577 else 578 { 579 forgetMemo(); 580 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackOrInterfaceOrMixin, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing), pegged.peg.wrapAround!(Spacing, Partial, Spacing), pegged.peg.wrapAround!(Spacing, Dictionary, Spacing), pegged.peg.wrapAround!(Spacing, Enum, Spacing), pegged.peg.wrapAround!(Spacing, Typedef, Spacing), pegged.peg.wrapAround!(Spacing, IncludesStatement, Spacing)), "WebIDL.Definition"), "Definition")(TParseTree("", false,[], s)); 581 } 582 } 583 static string Definition(GetName g) 584 { 585 return "WebIDL.Definition"; 586 } 587 588 static TParseTree CallbackOrInterfaceOrMixin(TParseTree p) 589 { 590 if(__ctfe) 591 { 592 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("callback"), Spacing), pegged.peg.wrapAround!(Spacing, CallbackRestOrInterface, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceOrMixin, Spacing)), Spacing)), "WebIDL.CallbackOrInterfaceOrMixin")(p); 593 } 594 else 595 { 596 if (auto m = tuple(`CallbackOrInterfaceOrMixin`, p.end) in memo) 597 return *m; 598 else 599 { 600 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("callback"), Spacing), pegged.peg.wrapAround!(Spacing, CallbackRestOrInterface, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceOrMixin, Spacing)), Spacing)), "WebIDL.CallbackOrInterfaceOrMixin"), "CallbackOrInterfaceOrMixin")(p); 601 memo[tuple(`CallbackOrInterfaceOrMixin`, p.end)] = result; 602 return result; 603 } 604 } 605 } 606 607 static TParseTree CallbackOrInterfaceOrMixin(string s) 608 { 609 if(__ctfe) 610 { 611 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("callback"), Spacing), pegged.peg.wrapAround!(Spacing, CallbackRestOrInterface, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceOrMixin, Spacing)), Spacing)), "WebIDL.CallbackOrInterfaceOrMixin")(TParseTree("", false,[], s)); 612 } 613 else 614 { 615 forgetMemo(); 616 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("callback"), Spacing), pegged.peg.wrapAround!(Spacing, CallbackRestOrInterface, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceOrMixin, Spacing)), Spacing)), "WebIDL.CallbackOrInterfaceOrMixin"), "CallbackOrInterfaceOrMixin")(TParseTree("", false,[], s)); 617 } 618 } 619 static string CallbackOrInterfaceOrMixin(GetName g) 620 { 621 return "WebIDL.CallbackOrInterfaceOrMixin"; 622 } 623 624 static TParseTree CallbackRestOrInterface(TParseTree p) 625 { 626 if(__ctfe) 627 { 628 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackRest, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), Spacing)), "WebIDL.CallbackRestOrInterface")(p); 629 } 630 else 631 { 632 if (auto m = tuple(`CallbackRestOrInterface`, p.end) in memo) 633 return *m; 634 else 635 { 636 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackRest, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), Spacing)), "WebIDL.CallbackRestOrInterface"), "CallbackRestOrInterface")(p); 637 memo[tuple(`CallbackRestOrInterface`, p.end)] = result; 638 return result; 639 } 640 } 641 } 642 643 static TParseTree CallbackRestOrInterface(string s) 644 { 645 if(__ctfe) 646 { 647 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackRest, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), Spacing)), "WebIDL.CallbackRestOrInterface")(TParseTree("", false,[], s)); 648 } 649 else 650 { 651 forgetMemo(); 652 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, CallbackRest, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), Spacing)), "WebIDL.CallbackRestOrInterface"), "CallbackRestOrInterface")(TParseTree("", false,[], s)); 653 } 654 } 655 static string CallbackRestOrInterface(GetName g) 656 { 657 return "WebIDL.CallbackRestOrInterface"; 658 } 659 660 static TParseTree InterfaceOrMixin(TParseTree p) 661 { 662 if(__ctfe) 663 { 664 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), "WebIDL.InterfaceOrMixin")(p); 665 } 666 else 667 { 668 if (auto m = tuple(`InterfaceOrMixin`, p.end) in memo) 669 return *m; 670 else 671 { 672 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), "WebIDL.InterfaceOrMixin"), "InterfaceOrMixin")(p); 673 memo[tuple(`InterfaceOrMixin`, p.end)] = result; 674 return result; 675 } 676 } 677 } 678 679 static TParseTree InterfaceOrMixin(string s) 680 { 681 if(__ctfe) 682 { 683 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), "WebIDL.InterfaceOrMixin")(TParseTree("", false,[], s)); 684 } 685 else 686 { 687 forgetMemo(); 688 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, InterfaceRest, Spacing)), "WebIDL.InterfaceOrMixin"), "InterfaceOrMixin")(TParseTree("", false,[], s)); 689 } 690 } 691 static string InterfaceOrMixin(GetName g) 692 { 693 return "WebIDL.InterfaceOrMixin"; 694 } 695 696 static TParseTree InterfaceRest(TParseTree p) 697 { 698 if(__ctfe) 699 { 700 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.InterfaceRest")(p); 701 } 702 else 703 { 704 if (auto m = tuple(`InterfaceRest`, p.end) in memo) 705 return *m; 706 else 707 { 708 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.InterfaceRest"), "InterfaceRest")(p); 709 memo[tuple(`InterfaceRest`, p.end)] = result; 710 return result; 711 } 712 } 713 } 714 715 static TParseTree InterfaceRest(string s) 716 { 717 if(__ctfe) 718 { 719 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.InterfaceRest")(TParseTree("", false,[], s)); 720 } 721 else 722 { 723 forgetMemo(); 724 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.InterfaceRest"), "InterfaceRest")(TParseTree("", false,[], s)); 725 } 726 } 727 static string InterfaceRest(GetName g) 728 { 729 return "WebIDL.InterfaceRest"; 730 } 731 732 static TParseTree Partial(TParseTree p) 733 { 734 if(__ctfe) 735 { 736 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("partial"), Spacing), pegged.peg.wrapAround!(Spacing, PartialDefinition, Spacing)), "WebIDL.Partial")(p); 737 } 738 else 739 { 740 if (auto m = tuple(`Partial`, p.end) in memo) 741 return *m; 742 else 743 { 744 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("partial"), Spacing), pegged.peg.wrapAround!(Spacing, PartialDefinition, Spacing)), "WebIDL.Partial"), "Partial")(p); 745 memo[tuple(`Partial`, p.end)] = result; 746 return result; 747 } 748 } 749 } 750 751 static TParseTree Partial(string s) 752 { 753 if(__ctfe) 754 { 755 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("partial"), Spacing), pegged.peg.wrapAround!(Spacing, PartialDefinition, Spacing)), "WebIDL.Partial")(TParseTree("", false,[], s)); 756 } 757 else 758 { 759 forgetMemo(); 760 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("partial"), Spacing), pegged.peg.wrapAround!(Spacing, PartialDefinition, Spacing)), "WebIDL.Partial"), "Partial")(TParseTree("", false,[], s)); 761 } 762 } 763 static string Partial(GetName g) 764 { 765 return "WebIDL.Partial"; 766 } 767 768 static TParseTree PartialDefinition(TParseTree p) 769 { 770 if(__ctfe) 771 { 772 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceOrPartialMixin, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, PartialDictionary, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing)), "WebIDL.PartialDefinition")(p); 773 } 774 else 775 { 776 if (auto m = tuple(`PartialDefinition`, p.end) in memo) 777 return *m; 778 else 779 { 780 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceOrPartialMixin, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, PartialDictionary, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing)), "WebIDL.PartialDefinition"), "PartialDefinition")(p); 781 memo[tuple(`PartialDefinition`, p.end)] = result; 782 return result; 783 } 784 } 785 } 786 787 static TParseTree PartialDefinition(string s) 788 { 789 if(__ctfe) 790 { 791 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceOrPartialMixin, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, PartialDictionary, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing)), "WebIDL.PartialDefinition")(TParseTree("", false,[], s)); 792 } 793 else 794 { 795 forgetMemo(); 796 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("interface"), Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceOrPartialMixin, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, PartialDictionary, Spacing), pegged.peg.wrapAround!(Spacing, Namespace, Spacing)), "WebIDL.PartialDefinition"), "PartialDefinition")(TParseTree("", false,[], s)); 797 } 798 } 799 static string PartialDefinition(GetName g) 800 { 801 return "WebIDL.PartialDefinition"; 802 } 803 804 static TParseTree PartialInterfaceOrPartialMixin(TParseTree p) 805 { 806 if(__ctfe) 807 { 808 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceRest, Spacing)), "WebIDL.PartialInterfaceOrPartialMixin")(p); 809 } 810 else 811 { 812 if (auto m = tuple(`PartialInterfaceOrPartialMixin`, p.end) in memo) 813 return *m; 814 else 815 { 816 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceRest, Spacing)), "WebIDL.PartialInterfaceOrPartialMixin"), "PartialInterfaceOrPartialMixin")(p); 817 memo[tuple(`PartialInterfaceOrPartialMixin`, p.end)] = result; 818 return result; 819 } 820 } 821 } 822 823 static TParseTree PartialInterfaceOrPartialMixin(string s) 824 { 825 if(__ctfe) 826 { 827 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceRest, Spacing)), "WebIDL.PartialInterfaceOrPartialMixin")(TParseTree("", false,[], s)); 828 } 829 else 830 { 831 forgetMemo(); 832 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, MixinRest, Spacing), pegged.peg.wrapAround!(Spacing, PartialInterfaceRest, Spacing)), "WebIDL.PartialInterfaceOrPartialMixin"), "PartialInterfaceOrPartialMixin")(TParseTree("", false,[], s)); 833 } 834 } 835 static string PartialInterfaceOrPartialMixin(GetName g) 836 { 837 return "WebIDL.PartialInterfaceOrPartialMixin"; 838 } 839 840 static TParseTree PartialInterfaceRest(TParseTree p) 841 { 842 if(__ctfe) 843 { 844 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialInterfaceRest")(p); 845 } 846 else 847 { 848 if (auto m = tuple(`PartialInterfaceRest`, p.end) in memo) 849 return *m; 850 else 851 { 852 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialInterfaceRest"), "PartialInterfaceRest")(p); 853 memo[tuple(`PartialInterfaceRest`, p.end)] = result; 854 return result; 855 } 856 } 857 } 858 859 static TParseTree PartialInterfaceRest(string s) 860 { 861 if(__ctfe) 862 { 863 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialInterfaceRest")(TParseTree("", false,[], s)); 864 } 865 else 866 { 867 forgetMemo(); 868 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, InterfaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialInterfaceRest"), "PartialInterfaceRest")(TParseTree("", false,[], s)); 869 } 870 } 871 static string PartialInterfaceRest(GetName g) 872 { 873 return "WebIDL.PartialInterfaceRest"; 874 } 875 876 static TParseTree InterfaceMembers(TParseTree p) 877 { 878 if(__ctfe) 879 { 880 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, InterfaceMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.InterfaceMembers")(p); 881 } 882 else 883 { 884 if (auto m = tuple(`InterfaceMembers`, p.end) in memo) 885 return *m; 886 else 887 { 888 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, InterfaceMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.InterfaceMembers"), "InterfaceMembers")(p); 889 memo[tuple(`InterfaceMembers`, p.end)] = result; 890 return result; 891 } 892 } 893 } 894 895 static TParseTree InterfaceMembers(string s) 896 { 897 if(__ctfe) 898 { 899 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, InterfaceMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.InterfaceMembers")(TParseTree("", false,[], s)); 900 } 901 else 902 { 903 forgetMemo(); 904 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, InterfaceMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.InterfaceMembers"), "InterfaceMembers")(TParseTree("", false,[], s)); 905 } 906 } 907 static string InterfaceMembers(GetName g) 908 { 909 return "WebIDL.InterfaceMembers"; 910 } 911 912 static TParseTree InterfaceMember(TParseTree p) 913 { 914 if(__ctfe) 915 { 916 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, Operation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing), pegged.peg.wrapAround!(Spacing, StaticMember, Spacing), pegged.peg.wrapAround!(Spacing, Iterable, Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMember, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteAttribute, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), Spacing)), "WebIDL.InterfaceMember")(p); 917 } 918 else 919 { 920 if (auto m = tuple(`InterfaceMember`, p.end) in memo) 921 return *m; 922 else 923 { 924 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, Operation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing), pegged.peg.wrapAround!(Spacing, StaticMember, Spacing), pegged.peg.wrapAround!(Spacing, Iterable, Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMember, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteAttribute, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), Spacing)), "WebIDL.InterfaceMember"), "InterfaceMember")(p); 925 memo[tuple(`InterfaceMember`, p.end)] = result; 926 return result; 927 } 928 } 929 } 930 931 static TParseTree InterfaceMember(string s) 932 { 933 if(__ctfe) 934 { 935 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, Operation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing), pegged.peg.wrapAround!(Spacing, StaticMember, Spacing), pegged.peg.wrapAround!(Spacing, Iterable, Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMember, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteAttribute, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), Spacing)), "WebIDL.InterfaceMember")(TParseTree("", false,[], s)); 936 } 937 else 938 { 939 forgetMemo(); 940 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, Operation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing), pegged.peg.wrapAround!(Spacing, StaticMember, Spacing), pegged.peg.wrapAround!(Spacing, Iterable, Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMember, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteAttribute, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), Spacing)), "WebIDL.InterfaceMember"), "InterfaceMember")(TParseTree("", false,[], s)); 941 } 942 } 943 static string InterfaceMember(GetName g) 944 { 945 return "WebIDL.InterfaceMember"; 946 } 947 948 static TParseTree Inheritance(TParseTree p) 949 { 950 if(__ctfe) 951 { 952 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Inheritance")(p); 953 } 954 else 955 { 956 if (auto m = tuple(`Inheritance`, p.end) in memo) 957 return *m; 958 else 959 { 960 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Inheritance"), "Inheritance")(p); 961 memo[tuple(`Inheritance`, p.end)] = result; 962 return result; 963 } 964 } 965 } 966 967 static TParseTree Inheritance(string s) 968 { 969 if(__ctfe) 970 { 971 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Inheritance")(TParseTree("", false,[], s)); 972 } 973 else 974 { 975 forgetMemo(); 976 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Inheritance"), "Inheritance")(TParseTree("", false,[], s)); 977 } 978 } 979 static string Inheritance(GetName g) 980 { 981 return "WebIDL.Inheritance"; 982 } 983 984 static TParseTree MixinRest(TParseTree p) 985 { 986 if(__ctfe) 987 { 988 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("mixin"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, MixinMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MixinRest")(p); 989 } 990 else 991 { 992 if (auto m = tuple(`MixinRest`, p.end) in memo) 993 return *m; 994 else 995 { 996 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("mixin"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, MixinMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MixinRest"), "MixinRest")(p); 997 memo[tuple(`MixinRest`, p.end)] = result; 998 return result; 999 } 1000 } 1001 } 1002 1003 static TParseTree MixinRest(string s) 1004 { 1005 if(__ctfe) 1006 { 1007 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("mixin"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, MixinMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MixinRest")(TParseTree("", false,[], s)); 1008 } 1009 else 1010 { 1011 forgetMemo(); 1012 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("mixin"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, MixinMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MixinRest"), "MixinRest")(TParseTree("", false,[], s)); 1013 } 1014 } 1015 static string MixinRest(GetName g) 1016 { 1017 return "WebIDL.MixinRest"; 1018 } 1019 1020 static TParseTree MixinMembers(TParseTree p) 1021 { 1022 if(__ctfe) 1023 { 1024 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, MixinMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.MixinMembers")(p); 1025 } 1026 else 1027 { 1028 if (auto m = tuple(`MixinMembers`, p.end) in memo) 1029 return *m; 1030 else 1031 { 1032 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, MixinMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.MixinMembers"), "MixinMembers")(p); 1033 memo[tuple(`MixinMembers`, p.end)] = result; 1034 return result; 1035 } 1036 } 1037 } 1038 1039 static TParseTree MixinMembers(string s) 1040 { 1041 if(__ctfe) 1042 { 1043 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, MixinMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.MixinMembers")(TParseTree("", false,[], s)); 1044 } 1045 else 1046 { 1047 forgetMemo(); 1048 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, MixinMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.MixinMembers"), "MixinMembers")(TParseTree("", false,[], s)); 1049 } 1050 } 1051 static string MixinMembers(GetName g) 1052 { 1053 return "WebIDL.MixinMembers"; 1054 } 1055 1056 static TParseTree MixinMember(TParseTree p) 1057 { 1058 if(__ctfe) 1059 { 1060 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing)), "WebIDL.MixinMember")(p); 1061 } 1062 else 1063 { 1064 if (auto m = tuple(`MixinMember`, p.end) in memo) 1065 return *m; 1066 else 1067 { 1068 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing)), "WebIDL.MixinMember"), "MixinMember")(p); 1069 memo[tuple(`MixinMember`, p.end)] = result; 1070 return result; 1071 } 1072 } 1073 } 1074 1075 static TParseTree MixinMember(string s) 1076 { 1077 if(__ctfe) 1078 { 1079 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing)), "WebIDL.MixinMember")(TParseTree("", false,[], s)); 1080 } 1081 else 1082 { 1083 forgetMemo(); 1084 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Const, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, Stringifier, Spacing)), "WebIDL.MixinMember"), "MixinMember")(TParseTree("", false,[], s)); 1085 } 1086 } 1087 static string MixinMember(GetName g) 1088 { 1089 return "WebIDL.MixinMember"; 1090 } 1091 1092 static TParseTree IncludesStatement(TParseTree p) 1093 { 1094 if(__ctfe) 1095 { 1096 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("includes"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.IncludesStatement")(p); 1097 } 1098 else 1099 { 1100 if (auto m = tuple(`IncludesStatement`, p.end) in memo) 1101 return *m; 1102 else 1103 { 1104 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("includes"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.IncludesStatement"), "IncludesStatement")(p); 1105 memo[tuple(`IncludesStatement`, p.end)] = result; 1106 return result; 1107 } 1108 } 1109 } 1110 1111 static TParseTree IncludesStatement(string s) 1112 { 1113 if(__ctfe) 1114 { 1115 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("includes"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.IncludesStatement")(TParseTree("", false,[], s)); 1116 } 1117 else 1118 { 1119 forgetMemo(); 1120 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("includes"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.IncludesStatement"), "IncludesStatement")(TParseTree("", false,[], s)); 1121 } 1122 } 1123 static string IncludesStatement(GetName g) 1124 { 1125 return "WebIDL.IncludesStatement"; 1126 } 1127 1128 static TParseTree Const(TParseTree p) 1129 { 1130 if(__ctfe) 1131 { 1132 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("const"), Spacing), pegged.peg.wrapAround!(Spacing, ConstType, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Const")(p); 1133 } 1134 else 1135 { 1136 if (auto m = tuple(`Const`, p.end) in memo) 1137 return *m; 1138 else 1139 { 1140 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("const"), Spacing), pegged.peg.wrapAround!(Spacing, ConstType, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Const"), "Const")(p); 1141 memo[tuple(`Const`, p.end)] = result; 1142 return result; 1143 } 1144 } 1145 } 1146 1147 static TParseTree Const(string s) 1148 { 1149 if(__ctfe) 1150 { 1151 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("const"), Spacing), pegged.peg.wrapAround!(Spacing, ConstType, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Const")(TParseTree("", false,[], s)); 1152 } 1153 else 1154 { 1155 forgetMemo(); 1156 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("const"), Spacing), pegged.peg.wrapAround!(Spacing, ConstType, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Const"), "Const")(TParseTree("", false,[], s)); 1157 } 1158 } 1159 static string Const(GetName g) 1160 { 1161 return "WebIDL.Const"; 1162 } 1163 1164 static TParseTree ConstValue(TParseTree p) 1165 { 1166 if(__ctfe) 1167 { 1168 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, BooleanLiteral, Spacing), pegged.peg.wrapAround!(Spacing, FloatLiteral, Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing)), "WebIDL.ConstValue")(p); 1169 } 1170 else 1171 { 1172 if (auto m = tuple(`ConstValue`, p.end) in memo) 1173 return *m; 1174 else 1175 { 1176 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, BooleanLiteral, Spacing), pegged.peg.wrapAround!(Spacing, FloatLiteral, Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing)), "WebIDL.ConstValue"), "ConstValue")(p); 1177 memo[tuple(`ConstValue`, p.end)] = result; 1178 return result; 1179 } 1180 } 1181 } 1182 1183 static TParseTree ConstValue(string s) 1184 { 1185 if(__ctfe) 1186 { 1187 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, BooleanLiteral, Spacing), pegged.peg.wrapAround!(Spacing, FloatLiteral, Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing)), "WebIDL.ConstValue")(TParseTree("", false,[], s)); 1188 } 1189 else 1190 { 1191 forgetMemo(); 1192 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, BooleanLiteral, Spacing), pegged.peg.wrapAround!(Spacing, FloatLiteral, Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing)), "WebIDL.ConstValue"), "ConstValue")(TParseTree("", false,[], s)); 1193 } 1194 } 1195 static string ConstValue(GetName g) 1196 { 1197 return "WebIDL.ConstValue"; 1198 } 1199 1200 static TParseTree BooleanLiteral(TParseTree p) 1201 { 1202 if(__ctfe) 1203 { 1204 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing)), "WebIDL.BooleanLiteral")(p); 1205 } 1206 else 1207 { 1208 if (auto m = tuple(`BooleanLiteral`, p.end) in memo) 1209 return *m; 1210 else 1211 { 1212 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing)), "WebIDL.BooleanLiteral"), "BooleanLiteral")(p); 1213 memo[tuple(`BooleanLiteral`, p.end)] = result; 1214 return result; 1215 } 1216 } 1217 } 1218 1219 static TParseTree BooleanLiteral(string s) 1220 { 1221 if(__ctfe) 1222 { 1223 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing)), "WebIDL.BooleanLiteral")(TParseTree("", false,[], s)); 1224 } 1225 else 1226 { 1227 forgetMemo(); 1228 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing)), "WebIDL.BooleanLiteral"), "BooleanLiteral")(TParseTree("", false,[], s)); 1229 } 1230 } 1231 static string BooleanLiteral(GetName g) 1232 { 1233 return "WebIDL.BooleanLiteral"; 1234 } 1235 1236 static TParseTree FloatLiteral(TParseTree p) 1237 { 1238 if(__ctfe) 1239 { 1240 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing)), "WebIDL.FloatLiteral")(p); 1241 } 1242 else 1243 { 1244 if (auto m = tuple(`FloatLiteral`, p.end) in memo) 1245 return *m; 1246 else 1247 { 1248 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing)), "WebIDL.FloatLiteral"), "FloatLiteral")(p); 1249 memo[tuple(`FloatLiteral`, p.end)] = result; 1250 return result; 1251 } 1252 } 1253 } 1254 1255 static TParseTree FloatLiteral(string s) 1256 { 1257 if(__ctfe) 1258 { 1259 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing)), "WebIDL.FloatLiteral")(TParseTree("", false,[], s)); 1260 } 1261 else 1262 { 1263 forgetMemo(); 1264 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing)), "WebIDL.FloatLiteral"), "FloatLiteral")(TParseTree("", false,[], s)); 1265 } 1266 } 1267 static string FloatLiteral(GetName g) 1268 { 1269 return "WebIDL.FloatLiteral"; 1270 } 1271 1272 static TParseTree ConstType(TParseTree p) 1273 { 1274 if(__ctfe) 1275 { 1276 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, PrimitiveType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.ConstType")(p); 1277 } 1278 else 1279 { 1280 if (auto m = tuple(`ConstType`, p.end) in memo) 1281 return *m; 1282 else 1283 { 1284 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, PrimitiveType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.ConstType"), "ConstType")(p); 1285 memo[tuple(`ConstType`, p.end)] = result; 1286 return result; 1287 } 1288 } 1289 } 1290 1291 static TParseTree ConstType(string s) 1292 { 1293 if(__ctfe) 1294 { 1295 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, PrimitiveType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.ConstType")(TParseTree("", false,[], s)); 1296 } 1297 else 1298 { 1299 forgetMemo(); 1300 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, PrimitiveType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.ConstType"), "ConstType")(TParseTree("", false,[], s)); 1301 } 1302 } 1303 static string ConstType(GetName g) 1304 { 1305 return "WebIDL.ConstType"; 1306 } 1307 1308 static TParseTree ReadOnlyMember(TParseTree p) 1309 { 1310 if(__ctfe) 1311 { 1312 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMemberRest, Spacing)), "WebIDL.ReadOnlyMember")(p); 1313 } 1314 else 1315 { 1316 if (auto m = tuple(`ReadOnlyMember`, p.end) in memo) 1317 return *m; 1318 else 1319 { 1320 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMemberRest, Spacing)), "WebIDL.ReadOnlyMember"), "ReadOnlyMember")(p); 1321 memo[tuple(`ReadOnlyMember`, p.end)] = result; 1322 return result; 1323 } 1324 } 1325 } 1326 1327 static TParseTree ReadOnlyMember(string s) 1328 { 1329 if(__ctfe) 1330 { 1331 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMemberRest, Spacing)), "WebIDL.ReadOnlyMember")(TParseTree("", false,[], s)); 1332 } 1333 else 1334 { 1335 forgetMemo(); 1336 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnlyMemberRest, Spacing)), "WebIDL.ReadOnlyMember"), "ReadOnlyMember")(TParseTree("", false,[], s)); 1337 } 1338 } 1339 static string ReadOnlyMember(GetName g) 1340 { 1341 return "WebIDL.ReadOnlyMember"; 1342 } 1343 1344 static TParseTree ReadOnlyMemberRest(TParseTree p) 1345 { 1346 if(__ctfe) 1347 { 1348 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), "WebIDL.ReadOnlyMemberRest")(p); 1349 } 1350 else 1351 { 1352 if (auto m = tuple(`ReadOnlyMemberRest`, p.end) in memo) 1353 return *m; 1354 else 1355 { 1356 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), "WebIDL.ReadOnlyMemberRest"), "ReadOnlyMemberRest")(p); 1357 memo[tuple(`ReadOnlyMemberRest`, p.end)] = result; 1358 return result; 1359 } 1360 } 1361 } 1362 1363 static TParseTree ReadOnlyMemberRest(string s) 1364 { 1365 if(__ctfe) 1366 { 1367 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), "WebIDL.ReadOnlyMemberRest")(TParseTree("", false,[], s)); 1368 } 1369 else 1370 { 1371 forgetMemo(); 1372 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteMaplike, Spacing), pegged.peg.wrapAround!(Spacing, ReadWriteSetlike, Spacing)), "WebIDL.ReadOnlyMemberRest"), "ReadOnlyMemberRest")(TParseTree("", false,[], s)); 1373 } 1374 } 1375 static string ReadOnlyMemberRest(GetName g) 1376 { 1377 return "WebIDL.ReadOnlyMemberRest"; 1378 } 1379 1380 static TParseTree ReadWriteAttribute(TParseTree p) 1381 { 1382 if(__ctfe) 1383 { 1384 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("inherit"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), "WebIDL.ReadWriteAttribute")(p); 1385 } 1386 else 1387 { 1388 if (auto m = tuple(`ReadWriteAttribute`, p.end) in memo) 1389 return *m; 1390 else 1391 { 1392 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("inherit"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), "WebIDL.ReadWriteAttribute"), "ReadWriteAttribute")(p); 1393 memo[tuple(`ReadWriteAttribute`, p.end)] = result; 1394 return result; 1395 } 1396 } 1397 } 1398 1399 static TParseTree ReadWriteAttribute(string s) 1400 { 1401 if(__ctfe) 1402 { 1403 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("inherit"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), "WebIDL.ReadWriteAttribute")(TParseTree("", false,[], s)); 1404 } 1405 else 1406 { 1407 forgetMemo(); 1408 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("inherit"), Spacing), pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), "WebIDL.ReadWriteAttribute"), "ReadWriteAttribute")(TParseTree("", false,[], s)); 1409 } 1410 } 1411 static string ReadWriteAttribute(GetName g) 1412 { 1413 return "WebIDL.ReadWriteAttribute"; 1414 } 1415 1416 static TParseTree AttributeRest(TParseTree p) 1417 { 1418 if(__ctfe) 1419 { 1420 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("attribute"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, AttributeName, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.AttributeRest")(p); 1421 } 1422 else 1423 { 1424 if (auto m = tuple(`AttributeRest`, p.end) in memo) 1425 return *m; 1426 else 1427 { 1428 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("attribute"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, AttributeName, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.AttributeRest"), "AttributeRest")(p); 1429 memo[tuple(`AttributeRest`, p.end)] = result; 1430 return result; 1431 } 1432 } 1433 } 1434 1435 static TParseTree AttributeRest(string s) 1436 { 1437 if(__ctfe) 1438 { 1439 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("attribute"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, AttributeName, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.AttributeRest")(TParseTree("", false,[], s)); 1440 } 1441 else 1442 { 1443 forgetMemo(); 1444 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("attribute"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, AttributeName, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.AttributeRest"), "AttributeRest")(TParseTree("", false,[], s)); 1445 } 1446 } 1447 static string AttributeRest(GetName g) 1448 { 1449 return "WebIDL.AttributeRest"; 1450 } 1451 1452 static TParseTree AttributeName(TParseTree p) 1453 { 1454 if(__ctfe) 1455 { 1456 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.AttributeName")(p); 1457 } 1458 else 1459 { 1460 if (auto m = tuple(`AttributeName`, p.end) in memo) 1461 return *m; 1462 else 1463 { 1464 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.AttributeName"), "AttributeName")(p); 1465 memo[tuple(`AttributeName`, p.end)] = result; 1466 return result; 1467 } 1468 } 1469 } 1470 1471 static TParseTree AttributeName(string s) 1472 { 1473 if(__ctfe) 1474 { 1475 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.AttributeName")(TParseTree("", false,[], s)); 1476 } 1477 else 1478 { 1479 forgetMemo(); 1480 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, AttributeNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.AttributeName"), "AttributeName")(TParseTree("", false,[], s)); 1481 } 1482 } 1483 static string AttributeName(GetName g) 1484 { 1485 return "WebIDL.AttributeName"; 1486 } 1487 1488 static TParseTree AttributeNameKeyword(TParseTree p) 1489 { 1490 if(__ctfe) 1491 { 1492 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.literal!("required"), pegged.peg.negLookahead!(Identifier)), "WebIDL.AttributeNameKeyword")(p); 1493 } 1494 else 1495 { 1496 if (auto m = tuple(`AttributeNameKeyword`, p.end) in memo) 1497 return *m; 1498 else 1499 { 1500 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.literal!("required"), pegged.peg.negLookahead!(Identifier)), "WebIDL.AttributeNameKeyword"), "AttributeNameKeyword")(p); 1501 memo[tuple(`AttributeNameKeyword`, p.end)] = result; 1502 return result; 1503 } 1504 } 1505 } 1506 1507 static TParseTree AttributeNameKeyword(string s) 1508 { 1509 if(__ctfe) 1510 { 1511 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.literal!("required"), pegged.peg.negLookahead!(Identifier)), "WebIDL.AttributeNameKeyword")(TParseTree("", false,[], s)); 1512 } 1513 else 1514 { 1515 forgetMemo(); 1516 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.literal!("required"), pegged.peg.negLookahead!(Identifier)), "WebIDL.AttributeNameKeyword"), "AttributeNameKeyword")(TParseTree("", false,[], s)); 1517 } 1518 } 1519 static string AttributeNameKeyword(GetName g) 1520 { 1521 return "WebIDL.AttributeNameKeyword"; 1522 } 1523 1524 static TParseTree ReadOnly(TParseTree p) 1525 { 1526 if(__ctfe) 1527 { 1528 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ReadOnly")(p); 1529 } 1530 else 1531 { 1532 if (auto m = tuple(`ReadOnly`, p.end) in memo) 1533 return *m; 1534 else 1535 { 1536 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ReadOnly"), "ReadOnly")(p); 1537 memo[tuple(`ReadOnly`, p.end)] = result; 1538 return result; 1539 } 1540 } 1541 } 1542 1543 static TParseTree ReadOnly(string s) 1544 { 1545 if(__ctfe) 1546 { 1547 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ReadOnly")(TParseTree("", false,[], s)); 1548 } 1549 else 1550 { 1551 forgetMemo(); 1552 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ReadOnly"), "ReadOnly")(TParseTree("", false,[], s)); 1553 } 1554 } 1555 static string ReadOnly(GetName g) 1556 { 1557 return "WebIDL.ReadOnly"; 1558 } 1559 1560 static TParseTree DefaultValue(TParseTree p) 1561 { 1562 if(__ctfe) 1563 { 1564 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing)), "WebIDL.DefaultValue")(p); 1565 } 1566 else 1567 { 1568 if (auto m = tuple(`DefaultValue`, p.end) in memo) 1569 return *m; 1570 else 1571 { 1572 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing)), "WebIDL.DefaultValue"), "DefaultValue")(p); 1573 memo[tuple(`DefaultValue`, p.end)] = result; 1574 return result; 1575 } 1576 } 1577 } 1578 1579 static TParseTree DefaultValue(string s) 1580 { 1581 if(__ctfe) 1582 { 1583 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing)), "WebIDL.DefaultValue")(TParseTree("", false,[], s)); 1584 } 1585 else 1586 { 1587 forgetMemo(); 1588 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ConstValue, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing)), "WebIDL.DefaultValue"), "DefaultValue")(TParseTree("", false,[], s)); 1589 } 1590 } 1591 static string DefaultValue(GetName g) 1592 { 1593 return "WebIDL.DefaultValue"; 1594 } 1595 1596 static TParseTree Operation(TParseTree p) 1597 { 1598 if(__ctfe) 1599 { 1600 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SpecialOperation, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.Operation")(p); 1601 } 1602 else 1603 { 1604 if (auto m = tuple(`Operation`, p.end) in memo) 1605 return *m; 1606 else 1607 { 1608 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SpecialOperation, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.Operation"), "Operation")(p); 1609 memo[tuple(`Operation`, p.end)] = result; 1610 return result; 1611 } 1612 } 1613 } 1614 1615 static TParseTree Operation(string s) 1616 { 1617 if(__ctfe) 1618 { 1619 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SpecialOperation, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.Operation")(TParseTree("", false,[], s)); 1620 } 1621 else 1622 { 1623 forgetMemo(); 1624 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SpecialOperation, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.Operation"), "Operation")(TParseTree("", false,[], s)); 1625 } 1626 } 1627 static string Operation(GetName g) 1628 { 1629 return "WebIDL.Operation"; 1630 } 1631 1632 static TParseTree RegularOperation(TParseTree p) 1633 { 1634 if(__ctfe) 1635 { 1636 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, OperationRest, Spacing)), "WebIDL.RegularOperation")(p); 1637 } 1638 else 1639 { 1640 if (auto m = tuple(`RegularOperation`, p.end) in memo) 1641 return *m; 1642 else 1643 { 1644 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, OperationRest, Spacing)), "WebIDL.RegularOperation"), "RegularOperation")(p); 1645 memo[tuple(`RegularOperation`, p.end)] = result; 1646 return result; 1647 } 1648 } 1649 } 1650 1651 static TParseTree RegularOperation(string s) 1652 { 1653 if(__ctfe) 1654 { 1655 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, OperationRest, Spacing)), "WebIDL.RegularOperation")(TParseTree("", false,[], s)); 1656 } 1657 else 1658 { 1659 forgetMemo(); 1660 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, OperationRest, Spacing)), "WebIDL.RegularOperation"), "RegularOperation")(TParseTree("", false,[], s)); 1661 } 1662 } 1663 static string RegularOperation(GetName g) 1664 { 1665 return "WebIDL.RegularOperation"; 1666 } 1667 1668 static TParseTree SpecialOperation(TParseTree p) 1669 { 1670 if(__ctfe) 1671 { 1672 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Special, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.SpecialOperation")(p); 1673 } 1674 else 1675 { 1676 if (auto m = tuple(`SpecialOperation`, p.end) in memo) 1677 return *m; 1678 else 1679 { 1680 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Special, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.SpecialOperation"), "SpecialOperation")(p); 1681 memo[tuple(`SpecialOperation`, p.end)] = result; 1682 return result; 1683 } 1684 } 1685 } 1686 1687 static TParseTree SpecialOperation(string s) 1688 { 1689 if(__ctfe) 1690 { 1691 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Special, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.SpecialOperation")(TParseTree("", false,[], s)); 1692 } 1693 else 1694 { 1695 forgetMemo(); 1696 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Special, Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.SpecialOperation"), "SpecialOperation")(TParseTree("", false,[], s)); 1697 } 1698 } 1699 static string SpecialOperation(GetName g) 1700 { 1701 return "WebIDL.SpecialOperation"; 1702 } 1703 1704 static TParseTree Special(TParseTree p) 1705 { 1706 if(__ctfe) 1707 { 1708 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("getter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("deleter"), Spacing)), "WebIDL.Special")(p); 1709 } 1710 else 1711 { 1712 if (auto m = tuple(`Special`, p.end) in memo) 1713 return *m; 1714 else 1715 { 1716 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("getter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("deleter"), Spacing)), "WebIDL.Special"), "Special")(p); 1717 memo[tuple(`Special`, p.end)] = result; 1718 return result; 1719 } 1720 } 1721 } 1722 1723 static TParseTree Special(string s) 1724 { 1725 if(__ctfe) 1726 { 1727 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("getter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("deleter"), Spacing)), "WebIDL.Special")(TParseTree("", false,[], s)); 1728 } 1729 else 1730 { 1731 forgetMemo(); 1732 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("getter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setter"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("deleter"), Spacing)), "WebIDL.Special"), "Special")(TParseTree("", false,[], s)); 1733 } 1734 } 1735 static string Special(GetName g) 1736 { 1737 return "WebIDL.Special"; 1738 } 1739 1740 static TParseTree OperationRest(TParseTree p) 1741 { 1742 if(__ctfe) 1743 { 1744 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, OptionalIdentifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.OperationRest")(p); 1745 } 1746 else 1747 { 1748 if (auto m = tuple(`OperationRest`, p.end) in memo) 1749 return *m; 1750 else 1751 { 1752 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, OptionalIdentifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.OperationRest"), "OperationRest")(p); 1753 memo[tuple(`OperationRest`, p.end)] = result; 1754 return result; 1755 } 1756 } 1757 } 1758 1759 static TParseTree OperationRest(string s) 1760 { 1761 if(__ctfe) 1762 { 1763 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, OptionalIdentifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.OperationRest")(TParseTree("", false,[], s)); 1764 } 1765 else 1766 { 1767 forgetMemo(); 1768 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, OptionalIdentifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.OperationRest"), "OperationRest")(TParseTree("", false,[], s)); 1769 } 1770 } 1771 static string OperationRest(GetName g) 1772 { 1773 return "WebIDL.OperationRest"; 1774 } 1775 1776 static TParseTree OptionalIdentifier(TParseTree p) 1777 { 1778 if(__ctfe) 1779 { 1780 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalIdentifier")(p); 1781 } 1782 else 1783 { 1784 if (auto m = tuple(`OptionalIdentifier`, p.end) in memo) 1785 return *m; 1786 else 1787 { 1788 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalIdentifier"), "OptionalIdentifier")(p); 1789 memo[tuple(`OptionalIdentifier`, p.end)] = result; 1790 return result; 1791 } 1792 } 1793 } 1794 1795 static TParseTree OptionalIdentifier(string s) 1796 { 1797 if(__ctfe) 1798 { 1799 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalIdentifier")(TParseTree("", false,[], s)); 1800 } 1801 else 1802 { 1803 forgetMemo(); 1804 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalIdentifier"), "OptionalIdentifier")(TParseTree("", false,[], s)); 1805 } 1806 } 1807 static string OptionalIdentifier(GetName g) 1808 { 1809 return "WebIDL.OptionalIdentifier"; 1810 } 1811 1812 static TParseTree ArgumentList(TParseTree p) 1813 { 1814 if(__ctfe) 1815 { 1816 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Argument, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Argument, Spacing)), Spacing))), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ArgumentList")(p); 1817 } 1818 else 1819 { 1820 if (auto m = tuple(`ArgumentList`, p.end) in memo) 1821 return *m; 1822 else 1823 { 1824 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Argument, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Argument, Spacing)), Spacing))), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ArgumentList"), "ArgumentList")(p); 1825 memo[tuple(`ArgumentList`, p.end)] = result; 1826 return result; 1827 } 1828 } 1829 } 1830 1831 static TParseTree ArgumentList(string s) 1832 { 1833 if(__ctfe) 1834 { 1835 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Argument, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Argument, Spacing)), Spacing))), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ArgumentList")(TParseTree("", false,[], s)); 1836 } 1837 else 1838 { 1839 forgetMemo(); 1840 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Argument, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Argument, Spacing)), Spacing))), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ArgumentList"), "ArgumentList")(TParseTree("", false,[], s)); 1841 } 1842 } 1843 static string ArgumentList(GetName g) 1844 { 1845 return "WebIDL.ArgumentList"; 1846 } 1847 1848 static TParseTree Argument(TParseTree p) 1849 { 1850 if(__ctfe) 1851 { 1852 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentRest, Spacing)), "WebIDL.Argument")(p); 1853 } 1854 else 1855 { 1856 if (auto m = tuple(`Argument`, p.end) in memo) 1857 return *m; 1858 else 1859 { 1860 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentRest, Spacing)), "WebIDL.Argument"), "Argument")(p); 1861 memo[tuple(`Argument`, p.end)] = result; 1862 return result; 1863 } 1864 } 1865 } 1866 1867 static TParseTree Argument(string s) 1868 { 1869 if(__ctfe) 1870 { 1871 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentRest, Spacing)), "WebIDL.Argument")(TParseTree("", false,[], s)); 1872 } 1873 else 1874 { 1875 forgetMemo(); 1876 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentRest, Spacing)), "WebIDL.Argument"), "Argument")(TParseTree("", false,[], s)); 1877 } 1878 } 1879 static string Argument(GetName g) 1880 { 1881 return "WebIDL.Argument"; 1882 } 1883 1884 static TParseTree ArgumentRest(TParseTree p) 1885 { 1886 if(__ctfe) 1887 { 1888 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Ellipsis, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing)), Spacing)), "WebIDL.ArgumentRest")(p); 1889 } 1890 else 1891 { 1892 if (auto m = tuple(`ArgumentRest`, p.end) in memo) 1893 return *m; 1894 else 1895 { 1896 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Ellipsis, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing)), Spacing)), "WebIDL.ArgumentRest"), "ArgumentRest")(p); 1897 memo[tuple(`ArgumentRest`, p.end)] = result; 1898 return result; 1899 } 1900 } 1901 } 1902 1903 static TParseTree ArgumentRest(string s) 1904 { 1905 if(__ctfe) 1906 { 1907 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Ellipsis, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing)), Spacing)), "WebIDL.ArgumentRest")(TParseTree("", false,[], s)); 1908 } 1909 else 1910 { 1911 forgetMemo(); 1912 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Ellipsis, Spacing), pegged.peg.wrapAround!(Spacing, ArgumentName, Spacing)), Spacing)), "WebIDL.ArgumentRest"), "ArgumentRest")(TParseTree("", false,[], s)); 1913 } 1914 } 1915 static string ArgumentRest(GetName g) 1916 { 1917 return "WebIDL.ArgumentRest"; 1918 } 1919 1920 static TParseTree ArgumentName(TParseTree p) 1921 { 1922 if(__ctfe) 1923 { 1924 return pegged.peg.defined!(pegged.peg.longest_match!(pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ArgumentName")(p); 1925 } 1926 else 1927 { 1928 if (auto m = tuple(`ArgumentName`, p.end) in memo) 1929 return *m; 1930 else 1931 { 1932 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.longest_match!(pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ArgumentName"), "ArgumentName")(p); 1933 memo[tuple(`ArgumentName`, p.end)] = result; 1934 return result; 1935 } 1936 } 1937 } 1938 1939 static TParseTree ArgumentName(string s) 1940 { 1941 if(__ctfe) 1942 { 1943 return pegged.peg.defined!(pegged.peg.longest_match!(pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ArgumentName")(TParseTree("", false,[], s)); 1944 } 1945 else 1946 { 1947 forgetMemo(); 1948 return hooked!(pegged.peg.defined!(pegged.peg.longest_match!(pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ArgumentName"), "ArgumentName")(TParseTree("", false,[], s)); 1949 } 1950 } 1951 static string ArgumentName(GetName g) 1952 { 1953 return "WebIDL.ArgumentName"; 1954 } 1955 1956 static TParseTree Ellipsis(TParseTree p) 1957 { 1958 if(__ctfe) 1959 { 1960 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Ellipsis")(p); 1961 } 1962 else 1963 { 1964 if (auto m = tuple(`Ellipsis`, p.end) in memo) 1965 return *m; 1966 else 1967 { 1968 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Ellipsis"), "Ellipsis")(p); 1969 memo[tuple(`Ellipsis`, p.end)] = result; 1970 return result; 1971 } 1972 } 1973 } 1974 1975 static TParseTree Ellipsis(string s) 1976 { 1977 if(__ctfe) 1978 { 1979 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Ellipsis")(TParseTree("", false,[], s)); 1980 } 1981 else 1982 { 1983 forgetMemo(); 1984 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Ellipsis"), "Ellipsis")(TParseTree("", false,[], s)); 1985 } 1986 } 1987 static string Ellipsis(GetName g) 1988 { 1989 return "WebIDL.Ellipsis"; 1990 } 1991 1992 static TParseTree ReturnType(TParseTree p) 1993 { 1994 if(__ctfe) 1995 { 1996 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing)), "WebIDL.ReturnType")(p); 1997 } 1998 else 1999 { 2000 if (auto m = tuple(`ReturnType`, p.end) in memo) 2001 return *m; 2002 else 2003 { 2004 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing)), "WebIDL.ReturnType"), "ReturnType")(p); 2005 memo[tuple(`ReturnType`, p.end)] = result; 2006 return result; 2007 } 2008 } 2009 } 2010 2011 static TParseTree ReturnType(string s) 2012 { 2013 if(__ctfe) 2014 { 2015 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing)), "WebIDL.ReturnType")(TParseTree("", false,[], s)); 2016 } 2017 else 2018 { 2019 forgetMemo(); 2020 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing)), "WebIDL.ReturnType"), "ReturnType")(TParseTree("", false,[], s)); 2021 } 2022 } 2023 static string ReturnType(GetName g) 2024 { 2025 return "WebIDL.ReturnType"; 2026 } 2027 2028 static TParseTree Stringifier(TParseTree p) 2029 { 2030 if(__ctfe) 2031 { 2032 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("stringifier"), Spacing), pegged.peg.wrapAround!(Spacing, StringifierRest, Spacing)), "WebIDL.Stringifier")(p); 2033 } 2034 else 2035 { 2036 if (auto m = tuple(`Stringifier`, p.end) in memo) 2037 return *m; 2038 else 2039 { 2040 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("stringifier"), Spacing), pegged.peg.wrapAround!(Spacing, StringifierRest, Spacing)), "WebIDL.Stringifier"), "Stringifier")(p); 2041 memo[tuple(`Stringifier`, p.end)] = result; 2042 return result; 2043 } 2044 } 2045 } 2046 2047 static TParseTree Stringifier(string s) 2048 { 2049 if(__ctfe) 2050 { 2051 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("stringifier"), Spacing), pegged.peg.wrapAround!(Spacing, StringifierRest, Spacing)), "WebIDL.Stringifier")(TParseTree("", false,[], s)); 2052 } 2053 else 2054 { 2055 forgetMemo(); 2056 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("stringifier"), Spacing), pegged.peg.wrapAround!(Spacing, StringifierRest, Spacing)), "WebIDL.Stringifier"), "Stringifier")(TParseTree("", false,[], s)); 2057 } 2058 } 2059 static string Stringifier(GetName g) 2060 { 2061 return "WebIDL.Stringifier"; 2062 } 2063 2064 static TParseTree StringifierRest(TParseTree p) 2065 { 2066 if(__ctfe) 2067 { 2068 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.StringifierRest")(p); 2069 } 2070 else 2071 { 2072 if (auto m = tuple(`StringifierRest`, p.end) in memo) 2073 return *m; 2074 else 2075 { 2076 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.StringifierRest"), "StringifierRest")(p); 2077 memo[tuple(`StringifierRest`, p.end)] = result; 2078 return result; 2079 } 2080 } 2081 } 2082 2083 static TParseTree StringifierRest(string s) 2084 { 2085 if(__ctfe) 2086 { 2087 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.StringifierRest")(TParseTree("", false,[], s)); 2088 } 2089 else 2090 { 2091 forgetMemo(); 2092 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.StringifierRest"), "StringifierRest")(TParseTree("", false,[], s)); 2093 } 2094 } 2095 static string StringifierRest(GetName g) 2096 { 2097 return "WebIDL.StringifierRest"; 2098 } 2099 2100 static TParseTree StaticMember(TParseTree p) 2101 { 2102 if(__ctfe) 2103 { 2104 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("static"), Spacing), pegged.peg.wrapAround!(Spacing, StaticMemberRest, Spacing)), "WebIDL.StaticMember")(p); 2105 } 2106 else 2107 { 2108 if (auto m = tuple(`StaticMember`, p.end) in memo) 2109 return *m; 2110 else 2111 { 2112 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("static"), Spacing), pegged.peg.wrapAround!(Spacing, StaticMemberRest, Spacing)), "WebIDL.StaticMember"), "StaticMember")(p); 2113 memo[tuple(`StaticMember`, p.end)] = result; 2114 return result; 2115 } 2116 } 2117 } 2118 2119 static TParseTree StaticMember(string s) 2120 { 2121 if(__ctfe) 2122 { 2123 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("static"), Spacing), pegged.peg.wrapAround!(Spacing, StaticMemberRest, Spacing)), "WebIDL.StaticMember")(TParseTree("", false,[], s)); 2124 } 2125 else 2126 { 2127 forgetMemo(); 2128 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("static"), Spacing), pegged.peg.wrapAround!(Spacing, StaticMemberRest, Spacing)), "WebIDL.StaticMember"), "StaticMember")(TParseTree("", false,[], s)); 2129 } 2130 } 2131 static string StaticMember(GetName g) 2132 { 2133 return "WebIDL.StaticMember"; 2134 } 2135 2136 static TParseTree StaticMemberRest(TParseTree p) 2137 { 2138 if(__ctfe) 2139 { 2140 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.StaticMemberRest")(p); 2141 } 2142 else 2143 { 2144 if (auto m = tuple(`StaticMemberRest`, p.end) in memo) 2145 return *m; 2146 else 2147 { 2148 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.StaticMemberRest"), "StaticMemberRest")(p); 2149 memo[tuple(`StaticMemberRest`, p.end)] = result; 2150 return result; 2151 } 2152 } 2153 } 2154 2155 static TParseTree StaticMemberRest(string s) 2156 { 2157 if(__ctfe) 2158 { 2159 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.StaticMemberRest")(TParseTree("", false,[], s)); 2160 } 2161 else 2162 { 2163 forgetMemo(); 2164 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ReadOnly, Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing)), "WebIDL.StaticMemberRest"), "StaticMemberRest")(TParseTree("", false,[], s)); 2165 } 2166 } 2167 static string StaticMemberRest(GetName g) 2168 { 2169 return "WebIDL.StaticMemberRest"; 2170 } 2171 2172 static TParseTree Iterable(TParseTree p) 2173 { 2174 if(__ctfe) 2175 { 2176 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("iterable"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, OptionalType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Iterable")(p); 2177 } 2178 else 2179 { 2180 if (auto m = tuple(`Iterable`, p.end) in memo) 2181 return *m; 2182 else 2183 { 2184 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("iterable"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, OptionalType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Iterable"), "Iterable")(p); 2185 memo[tuple(`Iterable`, p.end)] = result; 2186 return result; 2187 } 2188 } 2189 } 2190 2191 static TParseTree Iterable(string s) 2192 { 2193 if(__ctfe) 2194 { 2195 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("iterable"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, OptionalType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Iterable")(TParseTree("", false,[], s)); 2196 } 2197 else 2198 { 2199 forgetMemo(); 2200 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("iterable"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, OptionalType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Iterable"), "Iterable")(TParseTree("", false,[], s)); 2201 } 2202 } 2203 static string Iterable(GetName g) 2204 { 2205 return "WebIDL.Iterable"; 2206 } 2207 2208 static TParseTree OptionalType(TParseTree p) 2209 { 2210 if(__ctfe) 2211 { 2212 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalType")(p); 2213 } 2214 else 2215 { 2216 if (auto m = tuple(`OptionalType`, p.end) in memo) 2217 return *m; 2218 else 2219 { 2220 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalType"), "OptionalType")(p); 2221 memo[tuple(`OptionalType`, p.end)] = result; 2222 return result; 2223 } 2224 } 2225 } 2226 2227 static TParseTree OptionalType(string s) 2228 { 2229 if(__ctfe) 2230 { 2231 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalType")(TParseTree("", false,[], s)); 2232 } 2233 else 2234 { 2235 forgetMemo(); 2236 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.OptionalType"), "OptionalType")(TParseTree("", false,[], s)); 2237 } 2238 } 2239 static string OptionalType(GetName g) 2240 { 2241 return "WebIDL.OptionalType"; 2242 } 2243 2244 static TParseTree ReadWriteMaplike(TParseTree p) 2245 { 2246 if(__ctfe) 2247 { 2248 return pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, MaplikeRest, Spacing), "WebIDL.ReadWriteMaplike")(p); 2249 } 2250 else 2251 { 2252 if (auto m = tuple(`ReadWriteMaplike`, p.end) in memo) 2253 return *m; 2254 else 2255 { 2256 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, MaplikeRest, Spacing), "WebIDL.ReadWriteMaplike"), "ReadWriteMaplike")(p); 2257 memo[tuple(`ReadWriteMaplike`, p.end)] = result; 2258 return result; 2259 } 2260 } 2261 } 2262 2263 static TParseTree ReadWriteMaplike(string s) 2264 { 2265 if(__ctfe) 2266 { 2267 return pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, MaplikeRest, Spacing), "WebIDL.ReadWriteMaplike")(TParseTree("", false,[], s)); 2268 } 2269 else 2270 { 2271 forgetMemo(); 2272 return hooked!(pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, MaplikeRest, Spacing), "WebIDL.ReadWriteMaplike"), "ReadWriteMaplike")(TParseTree("", false,[], s)); 2273 } 2274 } 2275 static string ReadWriteMaplike(GetName g) 2276 { 2277 return "WebIDL.ReadWriteMaplike"; 2278 } 2279 2280 static TParseTree MaplikeRest(TParseTree p) 2281 { 2282 if(__ctfe) 2283 { 2284 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("maplike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MaplikeRest")(p); 2285 } 2286 else 2287 { 2288 if (auto m = tuple(`MaplikeRest`, p.end) in memo) 2289 return *m; 2290 else 2291 { 2292 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("maplike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MaplikeRest"), "MaplikeRest")(p); 2293 memo[tuple(`MaplikeRest`, p.end)] = result; 2294 return result; 2295 } 2296 } 2297 } 2298 2299 static TParseTree MaplikeRest(string s) 2300 { 2301 if(__ctfe) 2302 { 2303 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("maplike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MaplikeRest")(TParseTree("", false,[], s)); 2304 } 2305 else 2306 { 2307 forgetMemo(); 2308 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("maplike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.MaplikeRest"), "MaplikeRest")(TParseTree("", false,[], s)); 2309 } 2310 } 2311 static string MaplikeRest(GetName g) 2312 { 2313 return "WebIDL.MaplikeRest"; 2314 } 2315 2316 static TParseTree ReadWriteSetlike(TParseTree p) 2317 { 2318 if(__ctfe) 2319 { 2320 return pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, SetlikeRest, Spacing), "WebIDL.ReadWriteSetlike")(p); 2321 } 2322 else 2323 { 2324 if (auto m = tuple(`ReadWriteSetlike`, p.end) in memo) 2325 return *m; 2326 else 2327 { 2328 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, SetlikeRest, Spacing), "WebIDL.ReadWriteSetlike"), "ReadWriteSetlike")(p); 2329 memo[tuple(`ReadWriteSetlike`, p.end)] = result; 2330 return result; 2331 } 2332 } 2333 } 2334 2335 static TParseTree ReadWriteSetlike(string s) 2336 { 2337 if(__ctfe) 2338 { 2339 return pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, SetlikeRest, Spacing), "WebIDL.ReadWriteSetlike")(TParseTree("", false,[], s)); 2340 } 2341 else 2342 { 2343 forgetMemo(); 2344 return hooked!(pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, SetlikeRest, Spacing), "WebIDL.ReadWriteSetlike"), "ReadWriteSetlike")(TParseTree("", false,[], s)); 2345 } 2346 } 2347 static string ReadWriteSetlike(GetName g) 2348 { 2349 return "WebIDL.ReadWriteSetlike"; 2350 } 2351 2352 static TParseTree SetlikeRest(TParseTree p) 2353 { 2354 if(__ctfe) 2355 { 2356 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setlike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.SetlikeRest")(p); 2357 } 2358 else 2359 { 2360 if (auto m = tuple(`SetlikeRest`, p.end) in memo) 2361 return *m; 2362 else 2363 { 2364 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setlike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.SetlikeRest"), "SetlikeRest")(p); 2365 memo[tuple(`SetlikeRest`, p.end)] = result; 2366 return result; 2367 } 2368 } 2369 } 2370 2371 static TParseTree SetlikeRest(string s) 2372 { 2373 if(__ctfe) 2374 { 2375 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setlike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.SetlikeRest")(TParseTree("", false,[], s)); 2376 } 2377 else 2378 { 2379 forgetMemo(); 2380 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("setlike"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.SetlikeRest"), "SetlikeRest")(TParseTree("", false,[], s)); 2381 } 2382 } 2383 static string SetlikeRest(GetName g) 2384 { 2385 return "WebIDL.SetlikeRest"; 2386 } 2387 2388 static TParseTree Namespace(TParseTree p) 2389 { 2390 if(__ctfe) 2391 { 2392 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("namespace"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Namespace")(p); 2393 } 2394 else 2395 { 2396 if (auto m = tuple(`Namespace`, p.end) in memo) 2397 return *m; 2398 else 2399 { 2400 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("namespace"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Namespace"), "Namespace")(p); 2401 memo[tuple(`Namespace`, p.end)] = result; 2402 return result; 2403 } 2404 } 2405 } 2406 2407 static TParseTree Namespace(string s) 2408 { 2409 if(__ctfe) 2410 { 2411 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("namespace"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Namespace")(TParseTree("", false,[], s)); 2412 } 2413 else 2414 { 2415 forgetMemo(); 2416 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("namespace"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Namespace"), "Namespace")(TParseTree("", false,[], s)); 2417 } 2418 } 2419 static string Namespace(GetName g) 2420 { 2421 return "WebIDL.Namespace"; 2422 } 2423 2424 static TParseTree NamespaceMembers(TParseTree p) 2425 { 2426 if(__ctfe) 2427 { 2428 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.NamespaceMembers")(p); 2429 } 2430 else 2431 { 2432 if (auto m = tuple(`NamespaceMembers`, p.end) in memo) 2433 return *m; 2434 else 2435 { 2436 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.NamespaceMembers"), "NamespaceMembers")(p); 2437 memo[tuple(`NamespaceMembers`, p.end)] = result; 2438 return result; 2439 } 2440 } 2441 } 2442 2443 static TParseTree NamespaceMembers(string s) 2444 { 2445 if(__ctfe) 2446 { 2447 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.NamespaceMembers")(TParseTree("", false,[], s)); 2448 } 2449 else 2450 { 2451 forgetMemo(); 2452 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NamespaceMember, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.NamespaceMembers"), "NamespaceMembers")(TParseTree("", false,[], s)); 2453 } 2454 } 2455 static string NamespaceMembers(GetName g) 2456 { 2457 return "WebIDL.NamespaceMembers"; 2458 } 2459 2460 static TParseTree NamespaceMember(TParseTree p) 2461 { 2462 if(__ctfe) 2463 { 2464 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing)), "WebIDL.NamespaceMember")(p); 2465 } 2466 else 2467 { 2468 if (auto m = tuple(`NamespaceMember`, p.end) in memo) 2469 return *m; 2470 else 2471 { 2472 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing)), "WebIDL.NamespaceMember"), "NamespaceMember")(p); 2473 memo[tuple(`NamespaceMember`, p.end)] = result; 2474 return result; 2475 } 2476 } 2477 } 2478 2479 static TParseTree NamespaceMember(string s) 2480 { 2481 if(__ctfe) 2482 { 2483 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing)), "WebIDL.NamespaceMember")(TParseTree("", false,[], s)); 2484 } 2485 else 2486 { 2487 forgetMemo(); 2488 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, RegularOperation, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("readonly"), Spacing), pegged.peg.wrapAround!(Spacing, AttributeRest, Spacing)), Spacing)), "WebIDL.NamespaceMember"), "NamespaceMember")(TParseTree("", false,[], s)); 2489 } 2490 } 2491 static string NamespaceMember(GetName g) 2492 { 2493 return "WebIDL.NamespaceMember"; 2494 } 2495 2496 static TParseTree Dictionary(TParseTree p) 2497 { 2498 if(__ctfe) 2499 { 2500 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Dictionary")(p); 2501 } 2502 else 2503 { 2504 if (auto m = tuple(`Dictionary`, p.end) in memo) 2505 return *m; 2506 else 2507 { 2508 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Dictionary"), "Dictionary")(p); 2509 memo[tuple(`Dictionary`, p.end)] = result; 2510 return result; 2511 } 2512 } 2513 } 2514 2515 static TParseTree Dictionary(string s) 2516 { 2517 if(__ctfe) 2518 { 2519 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Dictionary")(TParseTree("", false,[], s)); 2520 } 2521 else 2522 { 2523 forgetMemo(); 2524 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Inheritance, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Dictionary"), "Dictionary")(TParseTree("", false,[], s)); 2525 } 2526 } 2527 static string Dictionary(GetName g) 2528 { 2529 return "WebIDL.Dictionary"; 2530 } 2531 2532 static TParseTree DictionaryMembers(TParseTree p) 2533 { 2534 if(__ctfe) 2535 { 2536 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, DictionaryMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.DictionaryMembers")(p); 2537 } 2538 else 2539 { 2540 if (auto m = tuple(`DictionaryMembers`, p.end) in memo) 2541 return *m; 2542 else 2543 { 2544 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, DictionaryMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.DictionaryMembers"), "DictionaryMembers")(p); 2545 memo[tuple(`DictionaryMembers`, p.end)] = result; 2546 return result; 2547 } 2548 } 2549 } 2550 2551 static TParseTree DictionaryMembers(string s) 2552 { 2553 if(__ctfe) 2554 { 2555 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, DictionaryMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.DictionaryMembers")(TParseTree("", false,[], s)); 2556 } 2557 else 2558 { 2559 forgetMemo(); 2560 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, DictionaryMember, Spacing)), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.DictionaryMembers"), "DictionaryMembers")(TParseTree("", false,[], s)); 2561 } 2562 } 2563 static string DictionaryMembers(GetName g) 2564 { 2565 return "WebIDL.DictionaryMembers"; 2566 } 2567 2568 static TParseTree DictionaryMember(TParseTree p) 2569 { 2570 if(__ctfe) 2571 { 2572 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMemberRest, Spacing)), "WebIDL.DictionaryMember")(p); 2573 } 2574 else 2575 { 2576 if (auto m = tuple(`DictionaryMember`, p.end) in memo) 2577 return *m; 2578 else 2579 { 2580 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMemberRest, Spacing)), "WebIDL.DictionaryMember"), "DictionaryMember")(p); 2581 memo[tuple(`DictionaryMember`, p.end)] = result; 2582 return result; 2583 } 2584 } 2585 } 2586 2587 static TParseTree DictionaryMember(string s) 2588 { 2589 if(__ctfe) 2590 { 2591 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMemberRest, Spacing)), "WebIDL.DictionaryMember")(TParseTree("", false,[], s)); 2592 } 2593 else 2594 { 2595 forgetMemo(); 2596 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMemberRest, Spacing)), "WebIDL.DictionaryMember"), "DictionaryMember")(TParseTree("", false,[], s)); 2597 } 2598 } 2599 static string DictionaryMember(GetName g) 2600 { 2601 return "WebIDL.DictionaryMember"; 2602 } 2603 2604 static TParseTree DictionaryMemberRest(TParseTree p) 2605 { 2606 if(__ctfe) 2607 { 2608 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("required"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing)), "WebIDL.DictionaryMemberRest")(p); 2609 } 2610 else 2611 { 2612 if (auto m = tuple(`DictionaryMemberRest`, p.end) in memo) 2613 return *m; 2614 else 2615 { 2616 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("required"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing)), "WebIDL.DictionaryMemberRest"), "DictionaryMemberRest")(p); 2617 memo[tuple(`DictionaryMemberRest`, p.end)] = result; 2618 return result; 2619 } 2620 } 2621 } 2622 2623 static TParseTree DictionaryMemberRest(string s) 2624 { 2625 if(__ctfe) 2626 { 2627 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("required"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing)), "WebIDL.DictionaryMemberRest")(TParseTree("", false,[], s)); 2628 } 2629 else 2630 { 2631 forgetMemo(); 2632 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("required"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Type, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, Default, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), Spacing)), "WebIDL.DictionaryMemberRest"), "DictionaryMemberRest")(TParseTree("", false,[], s)); 2633 } 2634 } 2635 static string DictionaryMemberRest(GetName g) 2636 { 2637 return "WebIDL.DictionaryMemberRest"; 2638 } 2639 2640 static TParseTree PartialDictionary(TParseTree p) 2641 { 2642 if(__ctfe) 2643 { 2644 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialDictionary")(p); 2645 } 2646 else 2647 { 2648 if (auto m = tuple(`PartialDictionary`, p.end) in memo) 2649 return *m; 2650 else 2651 { 2652 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialDictionary"), "PartialDictionary")(p); 2653 memo[tuple(`PartialDictionary`, p.end)] = result; 2654 return result; 2655 } 2656 } 2657 } 2658 2659 static TParseTree PartialDictionary(string s) 2660 { 2661 if(__ctfe) 2662 { 2663 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialDictionary")(TParseTree("", false,[], s)); 2664 } 2665 else 2666 { 2667 forgetMemo(); 2668 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("dictionary"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, DictionaryMembers, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.PartialDictionary"), "PartialDictionary")(TParseTree("", false,[], s)); 2669 } 2670 } 2671 static string PartialDictionary(GetName g) 2672 { 2673 return "WebIDL.PartialDictionary"; 2674 } 2675 2676 static TParseTree Default(TParseTree p) 2677 { 2678 if(__ctfe) 2679 { 2680 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, DefaultValue, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Default")(p); 2681 } 2682 else 2683 { 2684 if (auto m = tuple(`Default`, p.end) in memo) 2685 return *m; 2686 else 2687 { 2688 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, DefaultValue, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Default"), "Default")(p); 2689 memo[tuple(`Default`, p.end)] = result; 2690 return result; 2691 } 2692 } 2693 } 2694 2695 static TParseTree Default(string s) 2696 { 2697 if(__ctfe) 2698 { 2699 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, DefaultValue, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Default")(TParseTree("", false,[], s)); 2700 } 2701 else 2702 { 2703 forgetMemo(); 2704 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, DefaultValue, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Default"), "Default")(TParseTree("", false,[], s)); 2705 } 2706 } 2707 static string Default(GetName g) 2708 { 2709 return "WebIDL.Default"; 2710 } 2711 2712 static TParseTree Enum(TParseTree p) 2713 { 2714 if(__ctfe) 2715 { 2716 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("enum"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, EnumValueList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Enum")(p); 2717 } 2718 else 2719 { 2720 if (auto m = tuple(`Enum`, p.end) in memo) 2721 return *m; 2722 else 2723 { 2724 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("enum"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, EnumValueList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Enum"), "Enum")(p); 2725 memo[tuple(`Enum`, p.end)] = result; 2726 return result; 2727 } 2728 } 2729 } 2730 2731 static TParseTree Enum(string s) 2732 { 2733 if(__ctfe) 2734 { 2735 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("enum"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, EnumValueList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Enum")(TParseTree("", false,[], s)); 2736 } 2737 else 2738 { 2739 forgetMemo(); 2740 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("enum"), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, EnumValueList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Enum"), "Enum")(TParseTree("", false,[], s)); 2741 } 2742 } 2743 static string Enum(GetName g) 2744 { 2745 return "WebIDL.Enum"; 2746 } 2747 2748 static TParseTree EnumValueList(TParseTree p) 2749 { 2750 if(__ctfe) 2751 { 2752 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing)), Spacing))), "WebIDL.EnumValueList")(p); 2753 } 2754 else 2755 { 2756 if (auto m = tuple(`EnumValueList`, p.end) in memo) 2757 return *m; 2758 else 2759 { 2760 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing)), Spacing))), "WebIDL.EnumValueList"), "EnumValueList")(p); 2761 memo[tuple(`EnumValueList`, p.end)] = result; 2762 return result; 2763 } 2764 } 2765 } 2766 2767 static TParseTree EnumValueList(string s) 2768 { 2769 if(__ctfe) 2770 { 2771 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing)), Spacing))), "WebIDL.EnumValueList")(TParseTree("", false,[], s)); 2772 } 2773 else 2774 { 2775 forgetMemo(); 2776 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing)), Spacing))), "WebIDL.EnumValueList"), "EnumValueList")(TParseTree("", false,[], s)); 2777 } 2778 } 2779 static string EnumValueList(GetName g) 2780 { 2781 return "WebIDL.EnumValueList"; 2782 } 2783 2784 static TParseTree CallbackRest(TParseTree p) 2785 { 2786 if(__ctfe) 2787 { 2788 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.CallbackRest")(p); 2789 } 2790 else 2791 { 2792 if (auto m = tuple(`CallbackRest`, p.end) in memo) 2793 return *m; 2794 else 2795 { 2796 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.CallbackRest"), "CallbackRest")(p); 2797 memo[tuple(`CallbackRest`, p.end)] = result; 2798 return result; 2799 } 2800 } 2801 } 2802 2803 static TParseTree CallbackRest(string s) 2804 { 2805 if(__ctfe) 2806 { 2807 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.CallbackRest")(TParseTree("", false,[], s)); 2808 } 2809 else 2810 { 2811 forgetMemo(); 2812 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.CallbackRest"), "CallbackRest")(TParseTree("", false,[], s)); 2813 } 2814 } 2815 static string CallbackRest(GetName g) 2816 { 2817 return "WebIDL.CallbackRest"; 2818 } 2819 2820 static TParseTree Typedef(TParseTree p) 2821 { 2822 if(__ctfe) 2823 { 2824 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("typedef"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Typedef")(p); 2825 } 2826 else 2827 { 2828 if (auto m = tuple(`Typedef`, p.end) in memo) 2829 return *m; 2830 else 2831 { 2832 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("typedef"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Typedef"), "Typedef")(p); 2833 memo[tuple(`Typedef`, p.end)] = result; 2834 return result; 2835 } 2836 } 2837 } 2838 2839 static TParseTree Typedef(string s) 2840 { 2841 if(__ctfe) 2842 { 2843 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("typedef"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Typedef")(TParseTree("", false,[], s)); 2844 } 2845 else 2846 { 2847 forgetMemo(); 2848 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("typedef"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing)), "WebIDL.Typedef"), "Typedef")(TParseTree("", false,[], s)); 2849 } 2850 } 2851 static string Typedef(GetName g) 2852 { 2853 return "WebIDL.Typedef"; 2854 } 2855 2856 static TParseTree Type(TParseTree p) 2857 { 2858 if(__ctfe) 2859 { 2860 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SingleType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.Type")(p); 2861 } 2862 else 2863 { 2864 if (auto m = tuple(`Type`, p.end) in memo) 2865 return *m; 2866 else 2867 { 2868 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SingleType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.Type"), "Type")(p); 2869 memo[tuple(`Type`, p.end)] = result; 2870 return result; 2871 } 2872 } 2873 } 2874 2875 static TParseTree Type(string s) 2876 { 2877 if(__ctfe) 2878 { 2879 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SingleType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.Type")(TParseTree("", false,[], s)); 2880 } 2881 else 2882 { 2883 forgetMemo(); 2884 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, SingleType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.Type"), "Type")(TParseTree("", false,[], s)); 2885 } 2886 } 2887 static string Type(GetName g) 2888 { 2889 return "WebIDL.Type"; 2890 } 2891 2892 static TParseTree TypeWithExtendedAttributes(TParseTree p) 2893 { 2894 if(__ctfe) 2895 { 2896 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Type, Spacing)), "WebIDL.TypeWithExtendedAttributes")(p); 2897 } 2898 else 2899 { 2900 if (auto m = tuple(`TypeWithExtendedAttributes`, p.end) in memo) 2901 return *m; 2902 else 2903 { 2904 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Type, Spacing)), "WebIDL.TypeWithExtendedAttributes"), "TypeWithExtendedAttributes")(p); 2905 memo[tuple(`TypeWithExtendedAttributes`, p.end)] = result; 2906 return result; 2907 } 2908 } 2909 } 2910 2911 static TParseTree TypeWithExtendedAttributes(string s) 2912 { 2913 if(__ctfe) 2914 { 2915 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Type, Spacing)), "WebIDL.TypeWithExtendedAttributes")(TParseTree("", false,[], s)); 2916 } 2917 else 2918 { 2919 forgetMemo(); 2920 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, Type, Spacing)), "WebIDL.TypeWithExtendedAttributes"), "TypeWithExtendedAttributes")(TParseTree("", false,[], s)); 2921 } 2922 } 2923 static string TypeWithExtendedAttributes(GetName g) 2924 { 2925 return "WebIDL.TypeWithExtendedAttributes"; 2926 } 2927 2928 static TParseTree SingleType(TParseTree p) 2929 { 2930 if(__ctfe) 2931 { 2932 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("any"), pegged.peg.negLookahead!(Identifier)), NonAnyType), "WebIDL.SingleType")(p); 2933 } 2934 else 2935 { 2936 if (auto m = tuple(`SingleType`, p.end) in memo) 2937 return *m; 2938 else 2939 { 2940 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("any"), pegged.peg.negLookahead!(Identifier)), NonAnyType), "WebIDL.SingleType"), "SingleType")(p); 2941 memo[tuple(`SingleType`, p.end)] = result; 2942 return result; 2943 } 2944 } 2945 } 2946 2947 static TParseTree SingleType(string s) 2948 { 2949 if(__ctfe) 2950 { 2951 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("any"), pegged.peg.negLookahead!(Identifier)), NonAnyType), "WebIDL.SingleType")(TParseTree("", false,[], s)); 2952 } 2953 else 2954 { 2955 forgetMemo(); 2956 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("any"), pegged.peg.negLookahead!(Identifier)), NonAnyType), "WebIDL.SingleType"), "SingleType")(TParseTree("", false,[], s)); 2957 } 2958 } 2959 static string SingleType(GetName g) 2960 { 2961 return "WebIDL.SingleType"; 2962 } 2963 2964 static TParseTree UnionType(TParseTree p) 2965 { 2966 if(__ctfe) 2967 { 2968 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing), pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.UnionType")(p); 2969 } 2970 else 2971 { 2972 if (auto m = tuple(`UnionType`, p.end) in memo) 2973 return *m; 2974 else 2975 { 2976 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing), pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.UnionType"), "UnionType")(p); 2977 memo[tuple(`UnionType`, p.end)] = result; 2978 return result; 2979 } 2980 } 2981 } 2982 2983 static TParseTree UnionType(string s) 2984 { 2985 if(__ctfe) 2986 { 2987 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing), pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.UnionType")(TParseTree("", false,[], s)); 2988 } 2989 else 2990 { 2991 forgetMemo(); 2992 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing), pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, UnionMemberType, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.UnionType"), "UnionType")(TParseTree("", false,[], s)); 2993 } 2994 } 2995 static string UnionType(GetName g) 2996 { 2997 return "WebIDL.UnionType"; 2998 } 2999 3000 static TParseTree UnionMemberType(TParseTree p) 3001 { 3002 if(__ctfe) 3003 { 3004 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NonAnyType, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.UnionMemberType")(p); 3005 } 3006 else 3007 { 3008 if (auto m = tuple(`UnionMemberType`, p.end) in memo) 3009 return *m; 3010 else 3011 { 3012 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NonAnyType, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.UnionMemberType"), "UnionMemberType")(p); 3013 memo[tuple(`UnionMemberType`, p.end)] = result; 3014 return result; 3015 } 3016 } 3017 } 3018 3019 static TParseTree UnionMemberType(string s) 3020 { 3021 if(__ctfe) 3022 { 3023 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NonAnyType, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.UnionMemberType")(TParseTree("", false,[], s)); 3024 } 3025 else 3026 { 3027 forgetMemo(); 3028 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeList, Spacing), pegged.peg.wrapAround!(Spacing, NonAnyType, Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, UnionType, Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), Spacing)), "WebIDL.UnionMemberType"), "UnionMemberType")(TParseTree("", false,[], s)); 3029 } 3030 } 3031 static string UnionMemberType(GetName g) 3032 { 3033 return "WebIDL.UnionMemberType"; 3034 } 3035 3036 static TParseTree SequenceType(TParseTree p) 3037 { 3038 if(__ctfe) 3039 { 3040 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), "WebIDL.SequenceType")(p); 3041 } 3042 else 3043 { 3044 if (auto m = tuple(`SequenceType`, p.end) in memo) 3045 return *m; 3046 else 3047 { 3048 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), "WebIDL.SequenceType"), "SequenceType")(p); 3049 memo[tuple(`SequenceType`, p.end)] = result; 3050 return result; 3051 } 3052 } 3053 } 3054 3055 static TParseTree SequenceType(string s) 3056 { 3057 if(__ctfe) 3058 { 3059 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), "WebIDL.SequenceType")(TParseTree("", false,[], s)); 3060 } 3061 else 3062 { 3063 forgetMemo(); 3064 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, Null, Spacing)), "WebIDL.SequenceType"), "SequenceType")(TParseTree("", false,[], s)); 3065 } 3066 } 3067 static string SequenceType(GetName g) 3068 { 3069 return "WebIDL.SequenceType"; 3070 } 3071 3072 static TParseTree NonAnyType(TParseTree p) 3073 { 3074 if(__ctfe) 3075 { 3076 return pegged.peg.defined!(pegged.peg.or!(SequenceType, pegged.peg.and!(pegged.peg.literal!("object"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("symbol"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("Error"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("FrozenArray"), pegged.peg.literal!("<"), TypeWithExtendedAttributes, pegged.peg.literal!(">"), Null), pegged.peg.and!(RecordType, Null), PromiseType, pegged.peg.and!(PrimitiveType, Null), pegged.peg.and!(StringType, Null), pegged.peg.and!(Identifier, Null), pegged.peg.and!(BufferRelatedType, Null)), "WebIDL.NonAnyType")(p); 3077 } 3078 else 3079 { 3080 if (auto m = tuple(`NonAnyType`, p.end) in memo) 3081 return *m; 3082 else 3083 { 3084 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(SequenceType, pegged.peg.and!(pegged.peg.literal!("object"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("symbol"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("Error"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("FrozenArray"), pegged.peg.literal!("<"), TypeWithExtendedAttributes, pegged.peg.literal!(">"), Null), pegged.peg.and!(RecordType, Null), PromiseType, pegged.peg.and!(PrimitiveType, Null), pegged.peg.and!(StringType, Null), pegged.peg.and!(Identifier, Null), pegged.peg.and!(BufferRelatedType, Null)), "WebIDL.NonAnyType"), "NonAnyType")(p); 3085 memo[tuple(`NonAnyType`, p.end)] = result; 3086 return result; 3087 } 3088 } 3089 } 3090 3091 static TParseTree NonAnyType(string s) 3092 { 3093 if(__ctfe) 3094 { 3095 return pegged.peg.defined!(pegged.peg.or!(SequenceType, pegged.peg.and!(pegged.peg.literal!("object"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("symbol"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("Error"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("FrozenArray"), pegged.peg.literal!("<"), TypeWithExtendedAttributes, pegged.peg.literal!(">"), Null), pegged.peg.and!(RecordType, Null), PromiseType, pegged.peg.and!(PrimitiveType, Null), pegged.peg.and!(StringType, Null), pegged.peg.and!(Identifier, Null), pegged.peg.and!(BufferRelatedType, Null)), "WebIDL.NonAnyType")(TParseTree("", false,[], s)); 3096 } 3097 else 3098 { 3099 forgetMemo(); 3100 return hooked!(pegged.peg.defined!(pegged.peg.or!(SequenceType, pegged.peg.and!(pegged.peg.literal!("object"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("symbol"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("Error"), pegged.peg.and!(pegged.peg.negLookahead!(Identifier), Spacing, Null)), pegged.peg.and!(pegged.peg.literal!("FrozenArray"), pegged.peg.literal!("<"), TypeWithExtendedAttributes, pegged.peg.literal!(">"), Null), pegged.peg.and!(RecordType, Null), PromiseType, pegged.peg.and!(PrimitiveType, Null), pegged.peg.and!(StringType, Null), pegged.peg.and!(Identifier, Null), pegged.peg.and!(BufferRelatedType, Null)), "WebIDL.NonAnyType"), "NonAnyType")(TParseTree("", false,[], s)); 3101 } 3102 } 3103 static string NonAnyType(GetName g) 3104 { 3105 return "WebIDL.NonAnyType"; 3106 } 3107 3108 static TParseTree PrimitiveType(TParseTree p) 3109 { 3110 if(__ctfe) 3111 { 3112 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, UnsignedIntegerType, Spacing), pegged.peg.wrapAround!(Spacing, UnrestrictedFloatType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing)), "WebIDL.PrimitiveType")(p); 3113 } 3114 else 3115 { 3116 if (auto m = tuple(`PrimitiveType`, p.end) in memo) 3117 return *m; 3118 else 3119 { 3120 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, UnsignedIntegerType, Spacing), pegged.peg.wrapAround!(Spacing, UnrestrictedFloatType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing)), "WebIDL.PrimitiveType"), "PrimitiveType")(p); 3121 memo[tuple(`PrimitiveType`, p.end)] = result; 3122 return result; 3123 } 3124 } 3125 } 3126 3127 static TParseTree PrimitiveType(string s) 3128 { 3129 if(__ctfe) 3130 { 3131 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, UnsignedIntegerType, Spacing), pegged.peg.wrapAround!(Spacing, UnrestrictedFloatType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing)), "WebIDL.PrimitiveType")(TParseTree("", false,[], s)); 3132 } 3133 else 3134 { 3135 forgetMemo(); 3136 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, UnsignedIntegerType, Spacing), pegged.peg.wrapAround!(Spacing, UnrestrictedFloatType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing)), "WebIDL.PrimitiveType"), "PrimitiveType")(TParseTree("", false,[], s)); 3137 } 3138 } 3139 static string PrimitiveType(GetName g) 3140 { 3141 return "WebIDL.PrimitiveType"; 3142 } 3143 3144 static TParseTree UnrestrictedFloatType(TParseTree p) 3145 { 3146 if(__ctfe) 3147 { 3148 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unrestricted"), Spacing)), pegged.peg.wrapAround!(Spacing, FloatType, Spacing)), "WebIDL.UnrestrictedFloatType")(p); 3149 } 3150 else 3151 { 3152 if (auto m = tuple(`UnrestrictedFloatType`, p.end) in memo) 3153 return *m; 3154 else 3155 { 3156 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unrestricted"), Spacing)), pegged.peg.wrapAround!(Spacing, FloatType, Spacing)), "WebIDL.UnrestrictedFloatType"), "UnrestrictedFloatType")(p); 3157 memo[tuple(`UnrestrictedFloatType`, p.end)] = result; 3158 return result; 3159 } 3160 } 3161 } 3162 3163 static TParseTree UnrestrictedFloatType(string s) 3164 { 3165 if(__ctfe) 3166 { 3167 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unrestricted"), Spacing)), pegged.peg.wrapAround!(Spacing, FloatType, Spacing)), "WebIDL.UnrestrictedFloatType")(TParseTree("", false,[], s)); 3168 } 3169 else 3170 { 3171 forgetMemo(); 3172 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unrestricted"), Spacing)), pegged.peg.wrapAround!(Spacing, FloatType, Spacing)), "WebIDL.UnrestrictedFloatType"), "UnrestrictedFloatType")(TParseTree("", false,[], s)); 3173 } 3174 } 3175 static string UnrestrictedFloatType(GetName g) 3176 { 3177 return "WebIDL.UnrestrictedFloatType"; 3178 } 3179 3180 static TParseTree FloatType(TParseTree p) 3181 { 3182 if(__ctfe) 3183 { 3184 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing)), "WebIDL.FloatType")(p); 3185 } 3186 else 3187 { 3188 if (auto m = tuple(`FloatType`, p.end) in memo) 3189 return *m; 3190 else 3191 { 3192 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing)), "WebIDL.FloatType"), "FloatType")(p); 3193 memo[tuple(`FloatType`, p.end)] = result; 3194 return result; 3195 } 3196 } 3197 } 3198 3199 static TParseTree FloatType(string s) 3200 { 3201 if(__ctfe) 3202 { 3203 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing)), "WebIDL.FloatType")(TParseTree("", false,[], s)); 3204 } 3205 else 3206 { 3207 forgetMemo(); 3208 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing)), "WebIDL.FloatType"), "FloatType")(TParseTree("", false,[], s)); 3209 } 3210 } 3211 static string FloatType(GetName g) 3212 { 3213 return "WebIDL.FloatType"; 3214 } 3215 3216 static TParseTree UnsignedIntegerType(TParseTree p) 3217 { 3218 if(__ctfe) 3219 { 3220 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing)), pegged.peg.wrapAround!(Spacing, IntegerType, Spacing)), "WebIDL.UnsignedIntegerType")(p); 3221 } 3222 else 3223 { 3224 if (auto m = tuple(`UnsignedIntegerType`, p.end) in memo) 3225 return *m; 3226 else 3227 { 3228 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing)), pegged.peg.wrapAround!(Spacing, IntegerType, Spacing)), "WebIDL.UnsignedIntegerType"), "UnsignedIntegerType")(p); 3229 memo[tuple(`UnsignedIntegerType`, p.end)] = result; 3230 return result; 3231 } 3232 } 3233 } 3234 3235 static TParseTree UnsignedIntegerType(string s) 3236 { 3237 if(__ctfe) 3238 { 3239 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing)), pegged.peg.wrapAround!(Spacing, IntegerType, Spacing)), "WebIDL.UnsignedIntegerType")(TParseTree("", false,[], s)); 3240 } 3241 else 3242 { 3243 forgetMemo(); 3244 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.option!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing)), pegged.peg.wrapAround!(Spacing, IntegerType, Spacing)), "WebIDL.UnsignedIntegerType"), "UnsignedIntegerType")(TParseTree("", false,[], s)); 3245 } 3246 } 3247 static string UnsignedIntegerType(GetName g) 3248 { 3249 return "WebIDL.UnsignedIntegerType"; 3250 } 3251 3252 static TParseTree IntegerType(TParseTree p) 3253 { 3254 if(__ctfe) 3255 { 3256 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), "WebIDL.IntegerType")(p); 3257 } 3258 else 3259 { 3260 if (auto m = tuple(`IntegerType`, p.end) in memo) 3261 return *m; 3262 else 3263 { 3264 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), "WebIDL.IntegerType"), "IntegerType")(p); 3265 memo[tuple(`IntegerType`, p.end)] = result; 3266 return result; 3267 } 3268 } 3269 } 3270 3271 static TParseTree IntegerType(string s) 3272 { 3273 if(__ctfe) 3274 { 3275 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), "WebIDL.IntegerType")(TParseTree("", false,[], s)); 3276 } 3277 else 3278 { 3279 forgetMemo(); 3280 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing)), "WebIDL.IntegerType"), "IntegerType")(TParseTree("", false,[], s)); 3281 } 3282 } 3283 static string IntegerType(GetName g) 3284 { 3285 return "WebIDL.IntegerType"; 3286 } 3287 3288 static TParseTree StringType(TParseTree p) 3289 { 3290 if(__ctfe) 3291 { 3292 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("ByteString", "DOMString", "USVString", "CSSOMString"), pegged.peg.negLookahead!(Identifier)), "WebIDL.StringType")(p); 3293 } 3294 else 3295 { 3296 if (auto m = tuple(`StringType`, p.end) in memo) 3297 return *m; 3298 else 3299 { 3300 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("ByteString", "DOMString", "USVString", "CSSOMString"), pegged.peg.negLookahead!(Identifier)), "WebIDL.StringType"), "StringType")(p); 3301 memo[tuple(`StringType`, p.end)] = result; 3302 return result; 3303 } 3304 } 3305 } 3306 3307 static TParseTree StringType(string s) 3308 { 3309 if(__ctfe) 3310 { 3311 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("ByteString", "DOMString", "USVString", "CSSOMString"), pegged.peg.negLookahead!(Identifier)), "WebIDL.StringType")(TParseTree("", false,[], s)); 3312 } 3313 else 3314 { 3315 forgetMemo(); 3316 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("ByteString", "DOMString", "USVString", "CSSOMString"), pegged.peg.negLookahead!(Identifier)), "WebIDL.StringType"), "StringType")(TParseTree("", false,[], s)); 3317 } 3318 } 3319 static string StringType(GetName g) 3320 { 3321 return "WebIDL.StringType"; 3322 } 3323 3324 static TParseTree PromiseType(TParseTree p) 3325 { 3326 if(__ctfe) 3327 { 3328 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Promise"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.PromiseType")(p); 3329 } 3330 else 3331 { 3332 if (auto m = tuple(`PromiseType`, p.end) in memo) 3333 return *m; 3334 else 3335 { 3336 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Promise"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.PromiseType"), "PromiseType")(p); 3337 memo[tuple(`PromiseType`, p.end)] = result; 3338 return result; 3339 } 3340 } 3341 } 3342 3343 static TParseTree PromiseType(string s) 3344 { 3345 if(__ctfe) 3346 { 3347 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Promise"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.PromiseType")(TParseTree("", false,[], s)); 3348 } 3349 else 3350 { 3351 forgetMemo(); 3352 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Promise"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, ReturnType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.PromiseType"), "PromiseType")(TParseTree("", false,[], s)); 3353 } 3354 } 3355 static string PromiseType(GetName g) 3356 { 3357 return "WebIDL.PromiseType"; 3358 } 3359 3360 static TParseTree RecordType(TParseTree p) 3361 { 3362 if(__ctfe) 3363 { 3364 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("record"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, StringType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.RecordType")(p); 3365 } 3366 else 3367 { 3368 if (auto m = tuple(`RecordType`, p.end) in memo) 3369 return *m; 3370 else 3371 { 3372 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("record"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, StringType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.RecordType"), "RecordType")(p); 3373 memo[tuple(`RecordType`, p.end)] = result; 3374 return result; 3375 } 3376 } 3377 } 3378 3379 static TParseTree RecordType(string s) 3380 { 3381 if(__ctfe) 3382 { 3383 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("record"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, StringType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.RecordType")(TParseTree("", false,[], s)); 3384 } 3385 else 3386 { 3387 forgetMemo(); 3388 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("record"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, StringType, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, TypeWithExtendedAttributes, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing)), "WebIDL.RecordType"), "RecordType")(TParseTree("", false,[], s)); 3389 } 3390 } 3391 static string RecordType(GetName g) 3392 { 3393 return "WebIDL.RecordType"; 3394 } 3395 3396 static TParseTree Null(TParseTree p) 3397 { 3398 if(__ctfe) 3399 { 3400 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Null")(p); 3401 } 3402 else 3403 { 3404 if (auto m = tuple(`Null`, p.end) in memo) 3405 return *m; 3406 else 3407 { 3408 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Null"), "Null")(p); 3409 memo[tuple(`Null`, p.end)] = result; 3410 return result; 3411 } 3412 } 3413 } 3414 3415 static TParseTree Null(string s) 3416 { 3417 if(__ctfe) 3418 { 3419 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Null")(TParseTree("", false,[], s)); 3420 } 3421 else 3422 { 3423 forgetMemo(); 3424 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.Null"), "Null")(TParseTree("", false,[], s)); 3425 } 3426 } 3427 static string Null(GetName g) 3428 { 3429 return "WebIDL.Null"; 3430 } 3431 3432 static TParseTree BufferRelatedType(TParseTree p) 3433 { 3434 if(__ctfe) 3435 { 3436 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ArrayBuffer"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DataView"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8ClampedArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float64Array"), Spacing)), "WebIDL.BufferRelatedType")(p); 3437 } 3438 else 3439 { 3440 if (auto m = tuple(`BufferRelatedType`, p.end) in memo) 3441 return *m; 3442 else 3443 { 3444 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ArrayBuffer"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DataView"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8ClampedArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float64Array"), Spacing)), "WebIDL.BufferRelatedType"), "BufferRelatedType")(p); 3445 memo[tuple(`BufferRelatedType`, p.end)] = result; 3446 return result; 3447 } 3448 } 3449 } 3450 3451 static TParseTree BufferRelatedType(string s) 3452 { 3453 if(__ctfe) 3454 { 3455 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ArrayBuffer"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DataView"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8ClampedArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float64Array"), Spacing)), "WebIDL.BufferRelatedType")(TParseTree("", false,[], s)); 3456 } 3457 else 3458 { 3459 forgetMemo(); 3460 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ArrayBuffer"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DataView"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Int32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint16Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Uint8ClampedArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float32Array"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Float64Array"), Spacing)), "WebIDL.BufferRelatedType"), "BufferRelatedType")(TParseTree("", false,[], s)); 3461 } 3462 } 3463 static string BufferRelatedType(GetName g) 3464 { 3465 return "WebIDL.BufferRelatedType"; 3466 } 3467 3468 static TParseTree ExtendedAttributeList(TParseTree p) 3469 { 3470 if(__ctfe) 3471 { 3472 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ExtendedAttributeList")(p); 3473 } 3474 else 3475 { 3476 if (auto m = tuple(`ExtendedAttributeList`, p.end) in memo) 3477 return *m; 3478 else 3479 { 3480 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ExtendedAttributeList"), "ExtendedAttributeList")(p); 3481 memo[tuple(`ExtendedAttributeList`, p.end)] = result; 3482 return result; 3483 } 3484 } 3485 } 3486 3487 static TParseTree ExtendedAttributeList(string s) 3488 { 3489 if(__ctfe) 3490 { 3491 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ExtendedAttributeList")(TParseTree("", false,[], s)); 3492 } 3493 else 3494 { 3495 forgetMemo(); 3496 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), Spacing)), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, eps, Spacing)), "WebIDL.ExtendedAttributeList"), "ExtendedAttributeList")(TParseTree("", false,[], s)); 3497 } 3498 } 3499 static string ExtendedAttributeList(GetName g) 3500 { 3501 return "WebIDL.ExtendedAttributeList"; 3502 } 3503 3504 static TParseTree ExtendedAttributeOuter(TParseTree p) 3505 { 3506 if(__ctfe) 3507 { 3508 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), "WebIDL.ExtendedAttributeOuter")(p); 3509 } 3510 else 3511 { 3512 if (auto m = tuple(`ExtendedAttributeOuter`, p.end) in memo) 3513 return *m; 3514 else 3515 { 3516 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), "WebIDL.ExtendedAttributeOuter"), "ExtendedAttributeOuter")(p); 3517 memo[tuple(`ExtendedAttributeOuter`, p.end)] = result; 3518 return result; 3519 } 3520 } 3521 } 3522 3523 static TParseTree ExtendedAttributeOuter(string s) 3524 { 3525 if(__ctfe) 3526 { 3527 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), "WebIDL.ExtendedAttributeOuter")(TParseTree("", false,[], s)); 3528 } 3529 else 3530 { 3531 forgetMemo(); 3532 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttribute, Spacing)), "WebIDL.ExtendedAttributeOuter"), "ExtendedAttributeOuter")(TParseTree("", false,[], s)); 3533 } 3534 } 3535 static string ExtendedAttributeOuter(GetName g) 3536 { 3537 return "WebIDL.ExtendedAttributeOuter"; 3538 } 3539 3540 static TParseTree ExtendedAttributeInner(TParseTree p) 3541 { 3542 if(__ctfe) 3543 { 3544 return pegged.peg.defined!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, OtherOrComma, Spacing)), Spacing)), "WebIDL.ExtendedAttributeInner")(p); 3545 } 3546 else 3547 { 3548 if (auto m = tuple(`ExtendedAttributeInner`, p.end) in memo) 3549 return *m; 3550 else 3551 { 3552 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, OtherOrComma, Spacing)), Spacing)), "WebIDL.ExtendedAttributeInner"), "ExtendedAttributeInner")(p); 3553 memo[tuple(`ExtendedAttributeInner`, p.end)] = result; 3554 return result; 3555 } 3556 } 3557 } 3558 3559 static TParseTree ExtendedAttributeInner(string s) 3560 { 3561 if(__ctfe) 3562 { 3563 return pegged.peg.defined!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, OtherOrComma, Spacing)), Spacing)), "WebIDL.ExtendedAttributeInner")(TParseTree("", false,[], s)); 3564 } 3565 else 3566 { 3567 forgetMemo(); 3568 return hooked!(pegged.peg.defined!(pegged.peg.oneOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("["), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("]"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("{"), Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeInner, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("}"), Spacing)), Spacing), pegged.peg.wrapAround!(Spacing, OtherOrComma, Spacing)), Spacing)), "WebIDL.ExtendedAttributeInner"), "ExtendedAttributeInner")(TParseTree("", false,[], s)); 3569 } 3570 } 3571 static string ExtendedAttributeInner(GetName g) 3572 { 3573 return "WebIDL.ExtendedAttributeInner"; 3574 } 3575 3576 static TParseTree ExtendedAttribute(TParseTree p) 3577 { 3578 if(__ctfe) 3579 { 3580 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNamedArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdent, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdentList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNoArgs, Spacing)), "WebIDL.ExtendedAttribute")(p); 3581 } 3582 else 3583 { 3584 if (auto m = tuple(`ExtendedAttribute`, p.end) in memo) 3585 return *m; 3586 else 3587 { 3588 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNamedArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdent, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdentList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNoArgs, Spacing)), "WebIDL.ExtendedAttribute"), "ExtendedAttribute")(p); 3589 memo[tuple(`ExtendedAttribute`, p.end)] = result; 3590 return result; 3591 } 3592 } 3593 } 3594 3595 static TParseTree ExtendedAttribute(string s) 3596 { 3597 if(__ctfe) 3598 { 3599 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNamedArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdent, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdentList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNoArgs, Spacing)), "WebIDL.ExtendedAttribute")(TParseTree("", false,[], s)); 3600 } 3601 else 3602 { 3603 forgetMemo(); 3604 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, ExtendedAttributeArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNamedArgList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdent, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeIdentList, Spacing), pegged.peg.wrapAround!(Spacing, ExtendedAttributeNoArgs, Spacing)), "WebIDL.ExtendedAttribute"), "ExtendedAttribute")(TParseTree("", false,[], s)); 3605 } 3606 } 3607 static string ExtendedAttribute(GetName g) 3608 { 3609 return "WebIDL.ExtendedAttribute"; 3610 } 3611 3612 static TParseTree Other(TParseTree p) 3613 { 3614 if(__ctfe) 3615 { 3616 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ByteString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DOMString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("FrozenArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("USVString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("any"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("object"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, Other2, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, BufferRelatedType, Spacing)), "WebIDL.Other")(p); 3617 } 3618 else 3619 { 3620 if (auto m = tuple(`Other`, p.end) in memo) 3621 return *m; 3622 else 3623 { 3624 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ByteString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DOMString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("FrozenArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("USVString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("any"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("object"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, Other2, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, BufferRelatedType, Spacing)), "WebIDL.Other"), "Other")(p); 3625 memo[tuple(`Other`, p.end)] = result; 3626 return result; 3627 } 3628 } 3629 } 3630 3631 static TParseTree Other(string s) 3632 { 3633 if(__ctfe) 3634 { 3635 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ByteString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DOMString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("FrozenArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("USVString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("any"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("object"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, Other2, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, BufferRelatedType, Spacing)), "WebIDL.Other")(TParseTree("", false,[], s)); 3636 } 3637 else 3638 { 3639 forgetMemo(); 3640 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("ByteString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("DOMString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("FrozenArray"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("NaN"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("USVString"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("any"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("boolean"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("byte"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("double"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("false"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("float"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("long"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("null"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("object"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("octet"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("or"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("optional"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("sequence"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("short"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("true"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("unsigned"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("void"), Spacing), pegged.peg.wrapAround!(Spacing, Integer, Spacing), pegged.peg.wrapAround!(Spacing, Float, Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, String, Spacing), pegged.peg.wrapAround!(Spacing, Other2, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("-Infinity"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("..."), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(":"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(";"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("<"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(">"), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("?"), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentNameKeyword, Spacing), pegged.peg.wrapAround!(Spacing, BufferRelatedType, Spacing)), "WebIDL.Other"), "Other")(TParseTree("", false,[], s)); 3641 } 3642 } 3643 static string Other(GetName g) 3644 { 3645 return "WebIDL.Other"; 3646 } 3647 3648 static TParseTree OtherOrComma(TParseTree p) 3649 { 3650 if(__ctfe) 3651 { 3652 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Other, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing)), "WebIDL.OtherOrComma")(p); 3653 } 3654 else 3655 { 3656 if (auto m = tuple(`OtherOrComma`, p.end) in memo) 3657 return *m; 3658 else 3659 { 3660 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Other, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing)), "WebIDL.OtherOrComma"), "OtherOrComma")(p); 3661 memo[tuple(`OtherOrComma`, p.end)] = result; 3662 return result; 3663 } 3664 } 3665 } 3666 3667 static TParseTree OtherOrComma(string s) 3668 { 3669 if(__ctfe) 3670 { 3671 return pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Other, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing)), "WebIDL.OtherOrComma")(TParseTree("", false,[], s)); 3672 } 3673 else 3674 { 3675 forgetMemo(); 3676 return hooked!(pegged.peg.defined!(pegged.peg.or!(pegged.peg.wrapAround!(Spacing, Other, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing)), "WebIDL.OtherOrComma"), "OtherOrComma")(TParseTree("", false,[], s)); 3677 } 3678 } 3679 static string OtherOrComma(GetName g) 3680 { 3681 return "WebIDL.OtherOrComma"; 3682 } 3683 3684 static TParseTree IdentifierList(TParseTree p) 3685 { 3686 if(__ctfe) 3687 { 3688 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing))), "WebIDL.IdentifierList")(p); 3689 } 3690 else 3691 { 3692 if (auto m = tuple(`IdentifierList`, p.end) in memo) 3693 return *m; 3694 else 3695 { 3696 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing))), "WebIDL.IdentifierList"), "IdentifierList")(p); 3697 memo[tuple(`IdentifierList`, p.end)] = result; 3698 return result; 3699 } 3700 } 3701 } 3702 3703 static TParseTree IdentifierList(string s) 3704 { 3705 if(__ctfe) 3706 { 3707 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing))), "WebIDL.IdentifierList")(TParseTree("", false,[], s)); 3708 } 3709 else 3710 { 3711 forgetMemo(); 3712 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.zeroOrMore!(pegged.peg.wrapAround!(Spacing, pegged.peg.and!(pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(","), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), Spacing))), "WebIDL.IdentifierList"), "IdentifierList")(TParseTree("", false,[], s)); 3713 } 3714 } 3715 static string IdentifierList(GetName g) 3716 { 3717 return "WebIDL.IdentifierList"; 3718 } 3719 3720 static TParseTree Integer(TParseTree p) 3721 { 3722 if(__ctfe) 3723 { 3724 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.charRange!('1', '9'), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.or!(pegged.peg.literal!("X"), pegged.peg.literal!("x")), pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'F'), pegged.peg.charRange!('a', 'f')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '7'))))), "WebIDL.Integer")(p); 3725 } 3726 else 3727 { 3728 if (auto m = tuple(`Integer`, p.end) in memo) 3729 return *m; 3730 else 3731 { 3732 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.charRange!('1', '9'), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.or!(pegged.peg.literal!("X"), pegged.peg.literal!("x")), pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'F'), pegged.peg.charRange!('a', 'f')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '7'))))), "WebIDL.Integer"), "Integer")(p); 3733 memo[tuple(`Integer`, p.end)] = result; 3734 return result; 3735 } 3736 } 3737 } 3738 3739 static TParseTree Integer(string s) 3740 { 3741 if(__ctfe) 3742 { 3743 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.charRange!('1', '9'), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.or!(pegged.peg.literal!("X"), pegged.peg.literal!("x")), pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'F'), pegged.peg.charRange!('a', 'f')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '7'))))), "WebIDL.Integer")(TParseTree("", false,[], s)); 3744 } 3745 else 3746 { 3747 forgetMemo(); 3748 return hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.charRange!('1', '9'), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.or!(pegged.peg.literal!("X"), pegged.peg.literal!("x")), pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'F'), pegged.peg.charRange!('a', 'f')))), pegged.peg.and!(pegged.peg.literal!("0"), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '7'))))), "WebIDL.Integer"), "Integer")(TParseTree("", false,[], s)); 3749 } 3750 } 3751 static string Integer(GetName g) 3752 { 3753 return "WebIDL.Integer"; 3754 } 3755 3756 static TParseTree Float(TParseTree p) 3757 { 3758 if(__ctfe) 3759 { 3760 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.or!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9'))), pegged.peg.and!(pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.option!(pegged.peg.and!(pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))))), pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9'))))), "WebIDL.Float")(p); 3761 } 3762 else 3763 { 3764 if (auto m = tuple(`Float`, p.end) in memo) 3765 return *m; 3766 else 3767 { 3768 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.or!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9'))), pegged.peg.and!(pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.option!(pegged.peg.and!(pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))))), pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9'))))), "WebIDL.Float"), "Float")(p); 3769 memo[tuple(`Float`, p.end)] = result; 3770 return result; 3771 } 3772 } 3773 } 3774 3775 static TParseTree Float(string s) 3776 { 3777 if(__ctfe) 3778 { 3779 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.or!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9'))), pegged.peg.and!(pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.option!(pegged.peg.and!(pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))))), pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9'))))), "WebIDL.Float")(TParseTree("", false,[], s)); 3780 } 3781 else 3782 { 3783 forgetMemo(); 3784 return hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("-")), pegged.peg.and!(pegged.peg.or!(pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9'))), pegged.peg.and!(pegged.peg.zeroOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.literal!("."), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))), pegged.peg.option!(pegged.peg.and!(pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')))))), pegged.peg.and!(pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9')), pegged.peg.keywords!("E", "e"), pegged.peg.option!(pegged.peg.keywords!("+", "-")), pegged.peg.oneOrMore!(pegged.peg.charRange!('0', '9'))))), "WebIDL.Float"), "Float")(TParseTree("", false,[], s)); 3785 } 3786 } 3787 static string Float(GetName g) 3788 { 3789 return "WebIDL.Float"; 3790 } 3791 3792 static TParseTree Identifier(TParseTree p) 3793 { 3794 if(__ctfe) 3795 { 3796 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("_")), pegged.peg.or!(pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z')), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.literal!("_"), pegged.peg.charRange!('a', 'z'), pegged.peg.literal!("-"))))), "WebIDL.Identifier")(p); 3797 } 3798 else 3799 { 3800 if (auto m = tuple(`Identifier`, p.end) in memo) 3801 return *m; 3802 else 3803 { 3804 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("_")), pegged.peg.or!(pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z')), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.literal!("_"), pegged.peg.charRange!('a', 'z'), pegged.peg.literal!("-"))))), "WebIDL.Identifier"), "Identifier")(p); 3805 memo[tuple(`Identifier`, p.end)] = result; 3806 return result; 3807 } 3808 } 3809 } 3810 3811 static TParseTree Identifier(string s) 3812 { 3813 if(__ctfe) 3814 { 3815 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("_")), pegged.peg.or!(pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z')), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.literal!("_"), pegged.peg.charRange!('a', 'z'), pegged.peg.literal!("-"))))), "WebIDL.Identifier")(TParseTree("", false,[], s)); 3816 } 3817 else 3818 { 3819 forgetMemo(); 3820 return hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(pegged.peg.option!(pegged.peg.literal!("_")), pegged.peg.or!(pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z')), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.literal!("_"), pegged.peg.charRange!('a', 'z'), pegged.peg.literal!("-"))))), "WebIDL.Identifier"), "Identifier")(TParseTree("", false,[], s)); 3821 } 3822 } 3823 static string Identifier(GetName g) 3824 { 3825 return "WebIDL.Identifier"; 3826 } 3827 3828 static TParseTree String(TParseTree p) 3829 { 3830 if(__ctfe) 3831 { 3832 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(doublequote, pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(doublequote), pegged.peg.any)), doublequote)), "WebIDL.String")(p); 3833 } 3834 else 3835 { 3836 if (auto m = tuple(`String`, p.end) in memo) 3837 return *m; 3838 else 3839 { 3840 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(doublequote, pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(doublequote), pegged.peg.any)), doublequote)), "WebIDL.String"), "String")(p); 3841 memo[tuple(`String`, p.end)] = result; 3842 return result; 3843 } 3844 } 3845 } 3846 3847 static TParseTree String(string s) 3848 { 3849 if(__ctfe) 3850 { 3851 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(doublequote, pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(doublequote), pegged.peg.any)), doublequote)), "WebIDL.String")(TParseTree("", false,[], s)); 3852 } 3853 else 3854 { 3855 forgetMemo(); 3856 return hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.and!(doublequote, pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(doublequote), pegged.peg.any)), doublequote)), "WebIDL.String"), "String")(TParseTree("", false,[], s)); 3857 } 3858 } 3859 static string String(GetName g) 3860 { 3861 return "WebIDL.String"; 3862 } 3863 3864 static TParseTree Whitespace(TParseTree p) 3865 { 3866 if(__ctfe) 3867 { 3868 return pegged.peg.defined!(pegged.peg.discard!(pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.literal!(" "), pegged.peg.literal!("\t"), EndOfLine))), "WebIDL.Whitespace")(p); 3869 } 3870 else 3871 { 3872 if (auto m = tuple(`Whitespace`, p.end) in memo) 3873 return *m; 3874 else 3875 { 3876 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.discard!(pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.literal!(" "), pegged.peg.literal!("\t"), EndOfLine))), "WebIDL.Whitespace"), "Whitespace")(p); 3877 memo[tuple(`Whitespace`, p.end)] = result; 3878 return result; 3879 } 3880 } 3881 } 3882 3883 static TParseTree Whitespace(string s) 3884 { 3885 if(__ctfe) 3886 { 3887 return pegged.peg.defined!(pegged.peg.discard!(pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.literal!(" "), pegged.peg.literal!("\t"), EndOfLine))), "WebIDL.Whitespace")(TParseTree("", false,[], s)); 3888 } 3889 else 3890 { 3891 forgetMemo(); 3892 return hooked!(pegged.peg.defined!(pegged.peg.discard!(pegged.peg.oneOrMore!(pegged.peg.or!(pegged.peg.literal!(" "), pegged.peg.literal!("\t"), EndOfLine))), "WebIDL.Whitespace"), "Whitespace")(TParseTree("", false,[], s)); 3893 } 3894 } 3895 static string Whitespace(GetName g) 3896 { 3897 return "WebIDL.Whitespace"; 3898 } 3899 3900 static TParseTree EndOfLine(TParseTree p) 3901 { 3902 if(__ctfe) 3903 { 3904 return pegged.peg.defined!(pegged.peg.discard!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("\r"), pegged.peg.literal!("\n")), pegged.peg.literal!("\n"))), "WebIDL.EndOfLine")(p); 3905 } 3906 else 3907 { 3908 if (auto m = tuple(`EndOfLine`, p.end) in memo) 3909 return *m; 3910 else 3911 { 3912 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.discard!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("\r"), pegged.peg.literal!("\n")), pegged.peg.literal!("\n"))), "WebIDL.EndOfLine"), "EndOfLine")(p); 3913 memo[tuple(`EndOfLine`, p.end)] = result; 3914 return result; 3915 } 3916 } 3917 } 3918 3919 static TParseTree EndOfLine(string s) 3920 { 3921 if(__ctfe) 3922 { 3923 return pegged.peg.defined!(pegged.peg.discard!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("\r"), pegged.peg.literal!("\n")), pegged.peg.literal!("\n"))), "WebIDL.EndOfLine")(TParseTree("", false,[], s)); 3924 } 3925 else 3926 { 3927 forgetMemo(); 3928 return hooked!(pegged.peg.defined!(pegged.peg.discard!(pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("\r"), pegged.peg.literal!("\n")), pegged.peg.literal!("\n"))), "WebIDL.EndOfLine"), "EndOfLine")(TParseTree("", false,[], s)); 3929 } 3930 } 3931 static string EndOfLine(GetName g) 3932 { 3933 return "WebIDL.EndOfLine"; 3934 } 3935 3936 static TParseTree Comment(TParseTree p) 3937 { 3938 if(__ctfe) 3939 { 3940 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.oneOrMore!(pegged.peg.and!(pegged.peg.option!(Whitespace), pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("//"), pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(EndOfLine), pegged.peg.any))), pegged.peg.and!(pegged.peg.literal!("/*"), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.and!(pegged.peg.negLookahead!(pegged.peg.literal!("*/")), pegged.peg.any), EndOfLine)), pegged.peg.literal!("*/"))), pegged.peg.option!(Whitespace)))), "WebIDL.Comment")(p); 3941 } 3942 else 3943 { 3944 if (auto m = tuple(`Comment`, p.end) in memo) 3945 return *m; 3946 else 3947 { 3948 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.oneOrMore!(pegged.peg.and!(pegged.peg.option!(Whitespace), pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("//"), pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(EndOfLine), pegged.peg.any))), pegged.peg.and!(pegged.peg.literal!("/*"), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.and!(pegged.peg.negLookahead!(pegged.peg.literal!("*/")), pegged.peg.any), EndOfLine)), pegged.peg.literal!("*/"))), pegged.peg.option!(Whitespace)))), "WebIDL.Comment"), "Comment")(p); 3949 memo[tuple(`Comment`, p.end)] = result; 3950 return result; 3951 } 3952 } 3953 } 3954 3955 static TParseTree Comment(string s) 3956 { 3957 if(__ctfe) 3958 { 3959 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.oneOrMore!(pegged.peg.and!(pegged.peg.option!(Whitespace), pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("//"), pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(EndOfLine), pegged.peg.any))), pegged.peg.and!(pegged.peg.literal!("/*"), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.and!(pegged.peg.negLookahead!(pegged.peg.literal!("*/")), pegged.peg.any), EndOfLine)), pegged.peg.literal!("*/"))), pegged.peg.option!(Whitespace)))), "WebIDL.Comment")(TParseTree("", false,[], s)); 3960 } 3961 else 3962 { 3963 forgetMemo(); 3964 return hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.oneOrMore!(pegged.peg.and!(pegged.peg.option!(Whitespace), pegged.peg.or!(pegged.peg.and!(pegged.peg.literal!("//"), pegged.peg.zeroOrMore!(pegged.peg.and!(pegged.peg.negLookahead!(EndOfLine), pegged.peg.any))), pegged.peg.and!(pegged.peg.literal!("/*"), pegged.peg.zeroOrMore!(pegged.peg.or!(pegged.peg.and!(pegged.peg.negLookahead!(pegged.peg.literal!("*/")), pegged.peg.any), EndOfLine)), pegged.peg.literal!("*/"))), pegged.peg.option!(Whitespace)))), "WebIDL.Comment"), "Comment")(TParseTree("", false,[], s)); 3965 } 3966 } 3967 static string Comment(GetName g) 3968 { 3969 return "WebIDL.Comment"; 3970 } 3971 3972 static TParseTree Spacing(TParseTree p) 3973 { 3974 if(__ctfe) 3975 { 3976 return pegged.peg.defined!(pegged.peg.discard!(pegged.peg.zeroOrMore!(pegged.peg.or!(Whitespace, Comment))), "WebIDL.Spacing")(p); 3977 } 3978 else 3979 { 3980 if (auto m = tuple(`Spacing`, p.end) in memo) 3981 return *m; 3982 else 3983 { 3984 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.discard!(pegged.peg.zeroOrMore!(pegged.peg.or!(Whitespace, Comment))), "WebIDL.Spacing"), "Spacing")(p); 3985 memo[tuple(`Spacing`, p.end)] = result; 3986 return result; 3987 } 3988 } 3989 } 3990 3991 static TParseTree Spacing(string s) 3992 { 3993 if(__ctfe) 3994 { 3995 return pegged.peg.defined!(pegged.peg.discard!(pegged.peg.zeroOrMore!(pegged.peg.or!(Whitespace, Comment))), "WebIDL.Spacing")(TParseTree("", false,[], s)); 3996 } 3997 else 3998 { 3999 forgetMemo(); 4000 return hooked!(pegged.peg.defined!(pegged.peg.discard!(pegged.peg.zeroOrMore!(pegged.peg.or!(Whitespace, Comment))), "WebIDL.Spacing"), "Spacing")(TParseTree("", false,[], s)); 4001 } 4002 } 4003 static string Spacing(GetName g) 4004 { 4005 return "WebIDL.Spacing"; 4006 } 4007 4008 static TParseTree Other2(TParseTree p) 4009 { 4010 if(__ctfe) 4011 { 4012 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.literal!("^"), pegged.peg.literal!("\t"), pegged.peg.literal!("\n"), pegged.peg.literal!("\r"), pegged.peg.literal!(" "), pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z'))), "WebIDL.Other2")(p); 4013 } 4014 else 4015 { 4016 if (auto m = tuple(`Other2`, p.end) in memo) 4017 return *m; 4018 else 4019 { 4020 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.literal!("^"), pegged.peg.literal!("\t"), pegged.peg.literal!("\n"), pegged.peg.literal!("\r"), pegged.peg.literal!(" "), pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z'))), "WebIDL.Other2"), "Other2")(p); 4021 memo[tuple(`Other2`, p.end)] = result; 4022 return result; 4023 } 4024 } 4025 } 4026 4027 static TParseTree Other2(string s) 4028 { 4029 if(__ctfe) 4030 { 4031 return pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.literal!("^"), pegged.peg.literal!("\t"), pegged.peg.literal!("\n"), pegged.peg.literal!("\r"), pegged.peg.literal!(" "), pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z'))), "WebIDL.Other2")(TParseTree("", false,[], s)); 4032 } 4033 else 4034 { 4035 forgetMemo(); 4036 return hooked!(pegged.peg.defined!(pegged.peg.fuse!(pegged.peg.or!(pegged.peg.literal!("^"), pegged.peg.literal!("\t"), pegged.peg.literal!("\n"), pegged.peg.literal!("\r"), pegged.peg.literal!(" "), pegged.peg.charRange!('0', '9'), pegged.peg.charRange!('A', 'Z'), pegged.peg.charRange!('a', 'z'))), "WebIDL.Other2"), "Other2")(TParseTree("", false,[], s)); 4037 } 4038 } 4039 static string Other2(GetName g) 4040 { 4041 return "WebIDL.Other2"; 4042 } 4043 4044 static TParseTree ArgumentNameKeyword(TParseTree p) 4045 { 4046 if(__ctfe) 4047 { 4048 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("attribute", "callback", "const", "deleter", "dictionary", "enum", "getter", "includes", "inherit", "interface", "iterable", "maplike", "namespace", "partial", "required", "setlike", "setter", "static", "stringifier", "typedef", "unrestricted"), pegged.peg.negLookahead!(Identifier)), "WebIDL.ArgumentNameKeyword")(p); 4049 } 4050 else 4051 { 4052 if (auto m = tuple(`ArgumentNameKeyword`, p.end) in memo) 4053 return *m; 4054 else 4055 { 4056 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("attribute", "callback", "const", "deleter", "dictionary", "enum", "getter", "includes", "inherit", "interface", "iterable", "maplike", "namespace", "partial", "required", "setlike", "setter", "static", "stringifier", "typedef", "unrestricted"), pegged.peg.negLookahead!(Identifier)), "WebIDL.ArgumentNameKeyword"), "ArgumentNameKeyword")(p); 4057 memo[tuple(`ArgumentNameKeyword`, p.end)] = result; 4058 return result; 4059 } 4060 } 4061 } 4062 4063 static TParseTree ArgumentNameKeyword(string s) 4064 { 4065 if(__ctfe) 4066 { 4067 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("attribute", "callback", "const", "deleter", "dictionary", "enum", "getter", "includes", "inherit", "interface", "iterable", "maplike", "namespace", "partial", "required", "setlike", "setter", "static", "stringifier", "typedef", "unrestricted"), pegged.peg.negLookahead!(Identifier)), "WebIDL.ArgumentNameKeyword")(TParseTree("", false,[], s)); 4068 } 4069 else 4070 { 4071 forgetMemo(); 4072 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.keywords!("attribute", "callback", "const", "deleter", "dictionary", "enum", "getter", "includes", "inherit", "interface", "iterable", "maplike", "namespace", "partial", "required", "setlike", "setter", "static", "stringifier", "typedef", "unrestricted"), pegged.peg.negLookahead!(Identifier)), "WebIDL.ArgumentNameKeyword"), "ArgumentNameKeyword")(TParseTree("", false,[], s)); 4073 } 4074 } 4075 static string ArgumentNameKeyword(GetName g) 4076 { 4077 return "WebIDL.ArgumentNameKeyword"; 4078 } 4079 4080 static TParseTree ExtendedAttributeNoArgs(TParseTree p) 4081 { 4082 if(__ctfe) 4083 { 4084 return pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), "WebIDL.ExtendedAttributeNoArgs")(p); 4085 } 4086 else 4087 { 4088 if (auto m = tuple(`ExtendedAttributeNoArgs`, p.end) in memo) 4089 return *m; 4090 else 4091 { 4092 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), "WebIDL.ExtendedAttributeNoArgs"), "ExtendedAttributeNoArgs")(p); 4093 memo[tuple(`ExtendedAttributeNoArgs`, p.end)] = result; 4094 return result; 4095 } 4096 } 4097 } 4098 4099 static TParseTree ExtendedAttributeNoArgs(string s) 4100 { 4101 if(__ctfe) 4102 { 4103 return pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), "WebIDL.ExtendedAttributeNoArgs")(TParseTree("", false,[], s)); 4104 } 4105 else 4106 { 4107 forgetMemo(); 4108 return hooked!(pegged.peg.defined!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), "WebIDL.ExtendedAttributeNoArgs"), "ExtendedAttributeNoArgs")(TParseTree("", false,[], s)); 4109 } 4110 } 4111 static string ExtendedAttributeNoArgs(GetName g) 4112 { 4113 return "WebIDL.ExtendedAttributeNoArgs"; 4114 } 4115 4116 static TParseTree ExtendedAttributeArgList(TParseTree p) 4117 { 4118 if(__ctfe) 4119 { 4120 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeArgList")(p); 4121 } 4122 else 4123 { 4124 if (auto m = tuple(`ExtendedAttributeArgList`, p.end) in memo) 4125 return *m; 4126 else 4127 { 4128 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeArgList"), "ExtendedAttributeArgList")(p); 4129 memo[tuple(`ExtendedAttributeArgList`, p.end)] = result; 4130 return result; 4131 } 4132 } 4133 } 4134 4135 static TParseTree ExtendedAttributeArgList(string s) 4136 { 4137 if(__ctfe) 4138 { 4139 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeArgList")(TParseTree("", false,[], s)); 4140 } 4141 else 4142 { 4143 forgetMemo(); 4144 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeArgList"), "ExtendedAttributeArgList")(TParseTree("", false,[], s)); 4145 } 4146 } 4147 static string ExtendedAttributeArgList(GetName g) 4148 { 4149 return "WebIDL.ExtendedAttributeArgList"; 4150 } 4151 4152 static TParseTree ExtendedAttributeIdent(TParseTree p) 4153 { 4154 if(__ctfe) 4155 { 4156 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ExtendedAttributeIdent")(p); 4157 } 4158 else 4159 { 4160 if (auto m = tuple(`ExtendedAttributeIdent`, p.end) in memo) 4161 return *m; 4162 else 4163 { 4164 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ExtendedAttributeIdent"), "ExtendedAttributeIdent")(p); 4165 memo[tuple(`ExtendedAttributeIdent`, p.end)] = result; 4166 return result; 4167 } 4168 } 4169 } 4170 4171 static TParseTree ExtendedAttributeIdent(string s) 4172 { 4173 if(__ctfe) 4174 { 4175 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ExtendedAttributeIdent")(TParseTree("", false,[], s)); 4176 } 4177 else 4178 { 4179 forgetMemo(); 4180 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing)), "WebIDL.ExtendedAttributeIdent"), "ExtendedAttributeIdent")(TParseTree("", false,[], s)); 4181 } 4182 } 4183 static string ExtendedAttributeIdent(GetName g) 4184 { 4185 return "WebIDL.ExtendedAttributeIdent"; 4186 } 4187 4188 static TParseTree ExtendedAttributeIdentList(TParseTree p) 4189 { 4190 if(__ctfe) 4191 { 4192 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, IdentifierList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeIdentList")(p); 4193 } 4194 else 4195 { 4196 if (auto m = tuple(`ExtendedAttributeIdentList`, p.end) in memo) 4197 return *m; 4198 else 4199 { 4200 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, IdentifierList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeIdentList"), "ExtendedAttributeIdentList")(p); 4201 memo[tuple(`ExtendedAttributeIdentList`, p.end)] = result; 4202 return result; 4203 } 4204 } 4205 } 4206 4207 static TParseTree ExtendedAttributeIdentList(string s) 4208 { 4209 if(__ctfe) 4210 { 4211 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, IdentifierList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeIdentList")(TParseTree("", false,[], s)); 4212 } 4213 else 4214 { 4215 forgetMemo(); 4216 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, IdentifierList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeIdentList"), "ExtendedAttributeIdentList")(TParseTree("", false,[], s)); 4217 } 4218 } 4219 static string ExtendedAttributeIdentList(GetName g) 4220 { 4221 return "WebIDL.ExtendedAttributeIdentList"; 4222 } 4223 4224 static TParseTree ExtendedAttributeNamedArgList(TParseTree p) 4225 { 4226 if(__ctfe) 4227 { 4228 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeNamedArgList")(p); 4229 } 4230 else 4231 { 4232 if (auto m = tuple(`ExtendedAttributeNamedArgList`, p.end) in memo) 4233 return *m; 4234 else 4235 { 4236 TParseTree result = hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeNamedArgList"), "ExtendedAttributeNamedArgList")(p); 4237 memo[tuple(`ExtendedAttributeNamedArgList`, p.end)] = result; 4238 return result; 4239 } 4240 } 4241 } 4242 4243 static TParseTree ExtendedAttributeNamedArgList(string s) 4244 { 4245 if(__ctfe) 4246 { 4247 return pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeNamedArgList")(TParseTree("", false,[], s)); 4248 } 4249 else 4250 { 4251 forgetMemo(); 4252 return hooked!(pegged.peg.defined!(pegged.peg.and!(pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("="), Spacing), pegged.peg.wrapAround!(Spacing, Identifier, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!("("), Spacing), pegged.peg.wrapAround!(Spacing, ArgumentList, Spacing), pegged.peg.wrapAround!(Spacing, pegged.peg.literal!(")"), Spacing)), "WebIDL.ExtendedAttributeNamedArgList"), "ExtendedAttributeNamedArgList")(TParseTree("", false,[], s)); 4253 } 4254 } 4255 static string ExtendedAttributeNamedArgList(GetName g) 4256 { 4257 return "WebIDL.ExtendedAttributeNamedArgList"; 4258 } 4259 4260 static TParseTree opCall(TParseTree p) 4261 { 4262 TParseTree result = decimateTree(Definitions(p)); 4263 result.children = [result]; 4264 result.name = "WebIDL"; 4265 return result; 4266 } 4267 4268 static TParseTree opCall(string input) 4269 { 4270 if(__ctfe) 4271 { 4272 return WebIDL(TParseTree(``, false, [], input, 0, 0)); 4273 } 4274 else 4275 { 4276 forgetMemo(); 4277 return WebIDL(TParseTree(``, false, [], input, 0, 0)); 4278 } 4279 } 4280 static string opCall(GetName g) 4281 { 4282 return "WebIDL"; 4283 } 4284 4285 4286 static void forgetMemo() 4287 { 4288 memo = null; 4289 } 4290 } 4291 } 4292 4293 alias GenericWebIDL!(ParseTree).WebIDL WebIDL; 4294