const _PEST_GRAMMAR_SwipcParser: &'static str = "start = { SOI ~ def+ ~ EOI }\n\nnumber = @{\n (\"0x\" ~ ASCII_HEX_DIGIT+)\n | (ASCII_DIGIT+)\n}\n\ndef = {\n typeDef\n | interface\n}\n\nexpression = {\n ty\n | number\n}\n\nname = @{ (ASCII_ALPHA | \"_\") ~ (ASCII_ALPHANUMERIC | \"_\")* }\niname = @{ (ASCII_ALPHA | \"_\") ~ (ASCII_ALPHANUMERIC | \"_\" | \":\")* }\nsname = @{ (ASCII_ALPHA | \"_\") ~ (ASCII_ALPHANUMERIC | \"_\" | \":\" | \"-\")* }\n\nserviceNameList = { decorator* ~ sname ~ (\",\" ~ decorator* ~ sname)* ~ \",\"? }\nstructField = { comment* ~ ty ~ name ~ \";\" }\nenumField = { comment* ~ name ~ \"=\" ~ number ~ \";\" }\n\nstructTemplate = { \"<\" ~ number ~ \">\" }\nstructure = { \"struct\" ~ structTemplate? ~ \"{\" ~ structField+ ~ \"}\" }\nenumeration = { \"enum\" ~ \"<\" ~ name ~ \">\" ~ \"{\" ~ enumField+ ~ \"}\" }\n\naliasArray = { \"array\" ~ \"<\" ~ alias ~ \",\" ~ number ~ \">\" }\naliasBuffer = { \"buffer\" ~ \"<\" ~ alias ~ \",\" ~ number ~ (\",\" ~ number)? ~ \">\" }\naliasObject = { \"object\" ~ \"<\" ~ iname ~ \">\" }\naliasBytes = { \"bytes\" ~ (\"<\" ~ number ~ \">\")? }\naliasAlign = { \"align\" ~ \"<\" ~ number ~ \",\" ~ alias ~ \">\" }\naliasPid = { \"pid\" }\n\nhandleIsCopy = { \"copy\" | \"move\" }\nhandleType = { \"process\" | \"thread\" | \"debug\"\n | \"code_memory\" | \"transfer_memory\" | \"shared_memory\"\n | \"server_port\" | \"client_port\"\n | \"server_session\" | \"client_session\"\n | \"server_light_session\" | \"client_light_session\"\n | \"readable_event\" | \"writable_event\" | \"irq_event\"\n | \"device_address_space\"\n}\naliasHandle = { \"handle\" ~ \"<\" ~ handleIsCopy ~ (\",\" ~ handleType)? ~ \">\" }\n\nalias = {\n aliasArray\n | aliasBuffer\n | aliasObject\n | aliasBytes\n | aliasAlign\n | aliasPid\n | aliasHandle\n | iname\n}\nty = {\n structure\n | enumeration\n | alias\n}\n\ntypeDef = { comment* ~ \"type\" ~ iname ~ \"=\" ~ ty ~ \";\" }\n\ninterface = { comment* ~ \"interface\" ~ iname ~ (\"is\" ~ serviceNameList)? ~ \"{\" ~ funcDef* ~ \"}\" }\nnamedTuple = { \"(\" ~ (namedType ~ (\",\" ~ namedType)*)? ~ \",\"? ~ \")\" }\nnamedType = { alias ~ name? }\ncomment = @{ \"#\" ~ (!NEWLINE ~ ANY)* }\nversionNumber = { number ~ \".\" ~ number ~ \".\" ~ number }\nrange = { versionNumber? ~ \"-\" ~ versionNumber? }\ndecorator = ${ \"@\" ~ (versionDecorator | undocumentedDecorator | managedportDecorator | unknownDecorator) }\n\nversionPlus = { \"+\" }\nversionDecorator = { \"version\" ~ \"(\" ~ versionNumber ~ (versionPlus | (\"-\" ~ versionNumber))? ~ \")\" }\nundocumentedDecorator = { \"undocumented\" }\nmanagedportDecorator = { \"managedport\" }\nunknownDecorator = { name ~ (\"(\" ~ sname+ ~ \")\")? }\n\nfuncDef = { comment* ~ decorator* ~ \"[\" ~ number ~ \"]\" ~ name ~ namedTuple ~ (\"->\" ~ (namedType | namedTuple))? ~ \";\" }\n\nWHITESPACE = _{ \" \" | NEWLINE | \"\\t\" }\nCOMMENT = _{ (\"/*\" ~ (!\"*/\" ~ ANY)* ~ \"*/\") | (\"//\" ~ (!NEWLINE ~ ANY)*) }";