parser.js 257 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776
  1. /*
  2. * Generated by PEG.js 0.10.0.
  3. *
  4. * http://pegjs.org/
  5. */
  6. "use strict";
  7. function peg$subclass(child, parent) {
  8. function ctor() { this.constructor = child; }
  9. ctor.prototype = parent.prototype;
  10. child.prototype = new ctor();
  11. }
  12. function peg$SyntaxError(message, expected, found, location) {
  13. this.message = message;
  14. this.expected = expected;
  15. this.found = found;
  16. this.location = location;
  17. this.name = "SyntaxError";
  18. if (typeof Error.captureStackTrace === "function") {
  19. Error.captureStackTrace(this, peg$SyntaxError);
  20. }
  21. }
  22. peg$subclass(peg$SyntaxError, Error);
  23. peg$SyntaxError.buildMessage = function(expected, found) {
  24. var DESCRIBE_EXPECTATION_FNS = {
  25. literal: function(expectation) {
  26. return "\"" + literalEscape(expectation.text) + "\"";
  27. },
  28. "class": function(expectation) {
  29. var escapedParts = "",
  30. i;
  31. for (i = 0; i < expectation.parts.length; i++) {
  32. escapedParts += expectation.parts[i] instanceof Array
  33. ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1])
  34. : classEscape(expectation.parts[i]);
  35. }
  36. return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";
  37. },
  38. any: function(expectation) {
  39. return "any character";
  40. },
  41. end: function(expectation) {
  42. return "end of input";
  43. },
  44. other: function(expectation) {
  45. return expectation.description;
  46. }
  47. };
  48. function hex(ch) {
  49. return ch.charCodeAt(0).toString(16).toUpperCase();
  50. }
  51. function literalEscape(s) {
  52. return s
  53. .replace(/\\/g, '\\\\')
  54. .replace(/"/g, '\\"')
  55. .replace(/\0/g, '\\0')
  56. .replace(/\t/g, '\\t')
  57. .replace(/\n/g, '\\n')
  58. .replace(/\r/g, '\\r')
  59. .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
  60. .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); });
  61. }
  62. function classEscape(s) {
  63. return s
  64. .replace(/\\/g, '\\\\')
  65. .replace(/\]/g, '\\]')
  66. .replace(/\^/g, '\\^')
  67. .replace(/-/g, '\\-')
  68. .replace(/\0/g, '\\0')
  69. .replace(/\t/g, '\\t')
  70. .replace(/\n/g, '\\n')
  71. .replace(/\r/g, '\\r')
  72. .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
  73. .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); });
  74. }
  75. function describeExpectation(expectation) {
  76. return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
  77. }
  78. function describeExpected(expected) {
  79. var descriptions = new Array(expected.length),
  80. i, j;
  81. for (i = 0; i < expected.length; i++) {
  82. descriptions[i] = describeExpectation(expected[i]);
  83. }
  84. descriptions.sort();
  85. if (descriptions.length > 0) {
  86. for (i = 1, j = 1; i < descriptions.length; i++) {
  87. if (descriptions[i - 1] !== descriptions[i]) {
  88. descriptions[j] = descriptions[i];
  89. j++;
  90. }
  91. }
  92. descriptions.length = j;
  93. }
  94. switch (descriptions.length) {
  95. case 1:
  96. return descriptions[0];
  97. case 2:
  98. return descriptions[0] + " or " + descriptions[1];
  99. default:
  100. return descriptions.slice(0, -1).join(", ")
  101. + ", or "
  102. + descriptions[descriptions.length - 1];
  103. }
  104. }
  105. function describeFound(found) {
  106. return found ? "\"" + literalEscape(found) + "\"" : "end of input";
  107. }
  108. return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
  109. };
  110. function peg$parse(input, options) {
  111. options = options !== void 0 ? options : {};
  112. var peg$FAILED = {},
  113. peg$startRuleFunctions = { TypeExpression: peg$parseTypeExpression },
  114. peg$startRuleFunction = peg$parseTypeExpression,
  115. peg$c0 = function(r, unk) {
  116. let result = unk;
  117. if (r) {
  118. result = repeatable(result);
  119. }
  120. return result;
  121. },
  122. peg$c1 = "?",
  123. peg$c2 = peg$literalExpectation("?", false),
  124. peg$c3 = "!",
  125. peg$c4 = peg$literalExpectation("!", false),
  126. peg$c5 = function(r, prefix, expr) {
  127. let result = expr;
  128. if (r) {
  129. result = repeatable(result);
  130. }
  131. return nullable(result, prefix);
  132. },
  133. peg$c6 = function(expr, optionalPre, postfix, optionalPost) {
  134. let result = expr;
  135. // we only allow one optional operator
  136. if (optionalPre && optionalPost) {
  137. return null;
  138. }
  139. // "non-nullable, yet optional" makes no sense, but we allow it
  140. result = nullable(result, postfix);
  141. if (optionalPre || optionalPost) {
  142. result = optional(result);
  143. }
  144. return result;
  145. },
  146. peg$c7 = function(expr, postfix) {
  147. return nullable(expr, postfix);
  148. },
  149. peg$c8 = function(prefix, expr) {
  150. prefix = prefix || '';
  151. return nullable(expr, prefix);
  152. },
  153. peg$c9 = function(expr, postfix) {
  154. postfix = postfix || '';
  155. return nullable(expr, postfix);
  156. },
  157. peg$c10 = function(expr) {
  158. return repeatable(expr);
  159. },
  160. peg$c11 = function(lit, opt) {
  161. let result = lit;
  162. if (opt) {
  163. result = optional(result);
  164. }
  165. return result;
  166. },
  167. peg$c12 = function(lit) {
  168. return repeatable(lit);
  169. },
  170. peg$c13 = "*",
  171. peg$c14 = peg$literalExpectation("*", false),
  172. peg$c15 = function() {
  173. return {
  174. type: Types.AllLiteral
  175. };
  176. },
  177. peg$c16 = function() {
  178. return {
  179. type: Types.NullLiteral
  180. };
  181. },
  182. peg$c17 = function() {
  183. return {
  184. type: Types.UndefinedLiteral
  185. };
  186. },
  187. peg$c18 = "...",
  188. peg$c19 = peg$literalExpectation("...", false),
  189. peg$c20 = function() {
  190. return {
  191. repeatable: true
  192. };
  193. },
  194. peg$c21 = "=",
  195. peg$c22 = peg$literalExpectation("=", false),
  196. peg$c23 = function() {
  197. return {
  198. optional: true
  199. };
  200. },
  201. peg$c24 = "[]",
  202. peg$c25 = peg$literalExpectation("[]", false),
  203. peg$c26 = function(name, brackets) {
  204. let result;
  205. function nest(obj) {
  206. return {
  207. type: Types.TypeApplication,
  208. expression: {
  209. type: Types.NameExpression,
  210. name: 'Array'
  211. },
  212. applications: [obj]
  213. };
  214. }
  215. // we only allow this if JSDoc parsing is enabled
  216. if (!options.jsdoc) {
  217. return null;
  218. }
  219. result = nest(name);
  220. result.applications[0].type = Types.NameExpression;
  221. for (let i = 0, l = brackets.length - 1; i < l; i++) {
  222. result = nest(result);
  223. }
  224. return result;
  225. },
  226. peg$c27 = function(exp, appl, opt) {
  227. let result = {};
  228. const nameExp = {
  229. type: Types.NameExpression,
  230. name: exp.name
  231. };
  232. if (appl && appl.length) {
  233. result.type = Types.TypeApplication;
  234. result.expression = nameExp;
  235. result.applications = appl;
  236. } else {
  237. result = nameExp;
  238. }
  239. if (opt) {
  240. result = optional(result);
  241. }
  242. return result;
  243. },
  244. peg$c28 = function(t) {
  245. return repeatable(t);
  246. },
  247. peg$c29 = function(exp, opt) {
  248. let result = {
  249. type: Types.NameExpression,
  250. name: exp.name,
  251. reservedWord: true
  252. };
  253. if (opt) {
  254. result = optional(result);
  255. }
  256. return result;
  257. },
  258. peg$c30 = ".",
  259. peg$c31 = peg$literalExpectation(".", false),
  260. peg$c32 = "<",
  261. peg$c33 = peg$literalExpectation("<", false),
  262. peg$c34 = ">",
  263. peg$c35 = peg$literalExpectation(">", false),
  264. peg$c36 = function(sep, l) {
  265. return l;
  266. },
  267. peg$c37 = ",",
  268. peg$c38 = peg$literalExpectation(",", false),
  269. peg$c39 = function(expr, list) {
  270. let result = [expr];
  271. for (let i = 0, l = list.length; i < l; i++) {
  272. result.push(list[i][3]);
  273. }
  274. return result;
  275. },
  276. peg$c40 = function() {
  277. let result;
  278. // we only allow this if JSDoc parsing is enabled
  279. if (!options.jsdoc) {
  280. return null;
  281. }
  282. result = {
  283. type: Types.TypeApplication,
  284. expression: {
  285. type: Types.NameExpression,
  286. name: 'Array'
  287. },
  288. applications: [
  289. {
  290. type: Types.FunctionType,
  291. params: []
  292. }
  293. ]
  294. };
  295. return result;
  296. },
  297. peg$c41 = function(sig, opt) {
  298. // signature is required unless JSDoc parsing is enabled
  299. if (!sig && !options.jsdoc) {
  300. return null;
  301. } else if (sig === null) {
  302. sig = {
  303. params: []
  304. };
  305. }
  306. let result = {
  307. type: Types.FunctionType
  308. };
  309. Object.keys(sig).forEach(function(key) {
  310. result[key] = sig[key];
  311. });
  312. if (opt) {
  313. result = optional(result);
  314. }
  315. return result;
  316. },
  317. peg$c42 = "(",
  318. peg$c43 = peg$literalExpectation("(", false),
  319. peg$c44 = ")",
  320. peg$c45 = peg$literalExpectation(")", false),
  321. peg$c46 = ":",
  322. peg$c47 = peg$literalExpectation(":", false),
  323. peg$c48 = function(sig, returns) {
  324. const result = {};
  325. result.params = sig ? sig.params : [];
  326. if (sig && sig['new']) {
  327. result['new'] = sig['new'];
  328. }
  329. if (sig && sig['this']) {
  330. result['this'] = sig['this']
  331. }
  332. if (returns && returns[3]) {
  333. result.result = returns[3];
  334. }
  335. return result;
  336. },
  337. peg$c49 = function(funcNew, funcThis, params) {
  338. const result = {
  339. params: params ? params[3] : [],
  340. 'new': funcNew
  341. };
  342. if (funcThis) {
  343. result['this'] = funcThis[3];
  344. }
  345. return result;
  346. },
  347. peg$c50 = function(funcThis, funcNew, params) {
  348. const result = {
  349. params: params ? params[3] : [],
  350. 'this': funcThis
  351. };
  352. if (funcNew) {
  353. result['new'] = funcNew[3];
  354. }
  355. return result;
  356. },
  357. peg$c51 = function(params) {
  358. return { params };
  359. },
  360. peg$c52 = "new",
  361. peg$c53 = peg$literalExpectation("new", false),
  362. peg$c54 = function(expr) { return expr; },
  363. peg$c55 = "this",
  364. peg$c56 = peg$literalExpectation("this", false),
  365. peg$c57 = function(rp) {
  366. return [rp];
  367. },
  368. peg$c58 = function(nrp, rp) {
  369. let result = [];
  370. if (nrp !== '') {
  371. result = nrp;
  372. }
  373. if (rp && rp[3]) {
  374. result.push(rp[3]);
  375. }
  376. return result;
  377. },
  378. peg$c59 = function(p, list) {
  379. const result = [p];
  380. for (let i = 0, l = list.length; i < l; i++) {
  381. result.push(list[i][3]);
  382. }
  383. return result;
  384. },
  385. peg$c60 = function(op, list) {
  386. const result = [op];
  387. for (let i = 0, l = list.length; i < l; i++) {
  388. result.push(list[i][3]);
  389. }
  390. return result;
  391. },
  392. peg$c61 = function(paramType) { return paramType; },
  393. peg$c62 = function(t) {
  394. t = optional(t);
  395. return t;
  396. },
  397. peg$c63 = "[",
  398. peg$c64 = peg$literalExpectation("[", false),
  399. peg$c65 = "]",
  400. peg$c66 = peg$literalExpectation("]", false),
  401. peg$c67 = function(t) {
  402. return repeatable(t || '');
  403. },
  404. peg$c68 = function() {
  405. return repeatable({});
  406. },
  407. peg$c69 = function(t, opt) {
  408. let result = {
  409. type: Types.TypeUnion,
  410. elements: t
  411. };
  412. if (opt) {
  413. result = optional(result);
  414. }
  415. return result;
  416. },
  417. peg$c70 = function(tu) {
  418. return repeatable(tu);
  419. },
  420. peg$c71 = function(expr, list) {
  421. const result = [expr];
  422. for (let i = 0, l = list.length; i < l; i++) {
  423. result.push(list[i][1]);
  424. }
  425. return result;
  426. },
  427. peg$c72 = function(list) {
  428. return {
  429. type: Types.TypeUnion,
  430. elements: list
  431. };
  432. },
  433. peg$c73 = "|",
  434. peg$c74 = peg$literalExpectation("|", false),
  435. peg$c75 = function() {
  436. return '';
  437. },
  438. peg$c76 = "{",
  439. peg$c77 = peg$literalExpectation("{", false),
  440. peg$c78 = "}",
  441. peg$c79 = peg$literalExpectation("}", false),
  442. peg$c80 = function(list, opt) {
  443. let result = {
  444. type: Types.RecordType,
  445. fields: list || []
  446. };
  447. if (opt) {
  448. result = optional(result);
  449. }
  450. return result;
  451. },
  452. peg$c81 = function(type, list) {
  453. const result = [type];
  454. list = list || [];
  455. for (let i = 0, l = list.length; i < l; i++) {
  456. result.push(list[i][3]);
  457. }
  458. return result;
  459. },
  460. peg$c82 = function(key, expr) {
  461. const result = {
  462. type: Types.FieldType,
  463. key: key,
  464. value: undefined
  465. };
  466. if (expr && expr[3]) {
  467. result.value = expr[3];
  468. }
  469. return result;
  470. },
  471. peg$c83 = function(t) {
  472. if (!options.jsdoc) {
  473. return null;
  474. }
  475. return t;
  476. },
  477. peg$c84 = function(lit) {
  478. if (!options.jsdoc) {
  479. return null;
  480. }
  481. return {
  482. name: `"${lit.join('')}"`
  483. };
  484. },
  485. peg$c85 = function(lit) {
  486. if (!options.jsdoc) {
  487. return null;
  488. }
  489. return {
  490. name: `'${lit.join('')}'`
  491. };
  492. },
  493. peg$c86 = function(id, props) {
  494. props = props || '';
  495. return {
  496. name: id + props
  497. };
  498. },
  499. peg$c87 = function(rw) {
  500. return {
  501. name: rw
  502. };
  503. },
  504. peg$c88 = function(lit) {
  505. return `"${lit}"`;
  506. },
  507. peg$c89 = function(lit) {
  508. return `'${lit}'`;
  509. },
  510. peg$c90 = "#",
  511. peg$c91 = peg$literalExpectation("#", false),
  512. peg$c92 = "~",
  513. peg$c93 = peg$literalExpectation("~", false),
  514. peg$c94 = "/",
  515. peg$c95 = peg$literalExpectation("/", false),
  516. peg$c96 = function(sep, prop) {
  517. // we only allow '.' unless JSDoc parsing is enabled
  518. if (sep !== '.' && !options.jsdoc) {
  519. return null;
  520. }
  521. return sep + prop;
  522. },
  523. peg$c97 = function(name) { return name; },
  524. peg$c98 = "$",
  525. peg$c99 = peg$literalExpectation("$", false),
  526. peg$c100 = "_",
  527. peg$c101 = peg$literalExpectation("_", false),
  528. peg$c102 = "@",
  529. peg$c103 = peg$literalExpectation("@", false),
  530. peg$c104 = "-",
  531. peg$c105 = peg$literalExpectation("-", false),
  532. peg$c106 = "\u200C",
  533. peg$c107 = peg$literalExpectation("\u200C", false),
  534. peg$c108 = "\u200D",
  535. peg$c109 = peg$literalExpectation("\u200D", false),
  536. peg$c110 = function(parts) {
  537. if (!options.jsdoc) {
  538. return null;
  539. }
  540. parts = parts || [];
  541. return `(${parts.join(', ')})`;
  542. },
  543. peg$c111 = function(params) {
  544. if (!options.jsdoc) {
  545. return null;
  546. }
  547. params = params || [];
  548. return `(${params.join(', ')})`;
  549. },
  550. peg$c112 = "break",
  551. peg$c113 = peg$literalExpectation("break", false),
  552. peg$c114 = "case",
  553. peg$c115 = peg$literalExpectation("case", false),
  554. peg$c116 = "catch",
  555. peg$c117 = peg$literalExpectation("catch", false),
  556. peg$c118 = "continue",
  557. peg$c119 = peg$literalExpectation("continue", false),
  558. peg$c120 = "debugger",
  559. peg$c121 = peg$literalExpectation("debugger", false),
  560. peg$c122 = "default",
  561. peg$c123 = peg$literalExpectation("default", false),
  562. peg$c124 = "delete",
  563. peg$c125 = peg$literalExpectation("delete", false),
  564. peg$c126 = "do",
  565. peg$c127 = peg$literalExpectation("do", false),
  566. peg$c128 = "else",
  567. peg$c129 = peg$literalExpectation("else", false),
  568. peg$c130 = "finally",
  569. peg$c131 = peg$literalExpectation("finally", false),
  570. peg$c132 = "for",
  571. peg$c133 = peg$literalExpectation("for", false),
  572. peg$c134 = "if",
  573. peg$c135 = peg$literalExpectation("if", false),
  574. peg$c136 = "in",
  575. peg$c137 = peg$literalExpectation("in", false),
  576. peg$c138 = "instanceof",
  577. peg$c139 = peg$literalExpectation("instanceof", false),
  578. peg$c140 = "return",
  579. peg$c141 = peg$literalExpectation("return", false),
  580. peg$c142 = "switch",
  581. peg$c143 = peg$literalExpectation("switch", false),
  582. peg$c144 = "throw",
  583. peg$c145 = peg$literalExpectation("throw", false),
  584. peg$c146 = "try",
  585. peg$c147 = peg$literalExpectation("try", false),
  586. peg$c148 = "typeof",
  587. peg$c149 = peg$literalExpectation("typeof", false),
  588. peg$c150 = "var",
  589. peg$c151 = peg$literalExpectation("var", false),
  590. peg$c152 = "void",
  591. peg$c153 = peg$literalExpectation("void", false),
  592. peg$c154 = "while",
  593. peg$c155 = peg$literalExpectation("while", false),
  594. peg$c156 = "with",
  595. peg$c157 = peg$literalExpectation("with", false),
  596. peg$c158 = function(kw) {
  597. return kw;
  598. },
  599. peg$c159 = "class",
  600. peg$c160 = peg$literalExpectation("class", false),
  601. peg$c161 = "const",
  602. peg$c162 = peg$literalExpectation("const", false),
  603. peg$c163 = "enum",
  604. peg$c164 = peg$literalExpectation("enum", false),
  605. peg$c165 = "export",
  606. peg$c166 = peg$literalExpectation("export", false),
  607. peg$c167 = "extends",
  608. peg$c168 = peg$literalExpectation("extends", false),
  609. peg$c169 = "import",
  610. peg$c170 = peg$literalExpectation("import", false),
  611. peg$c171 = "super",
  612. peg$c172 = peg$literalExpectation("super", false),
  613. peg$c173 = "implements",
  614. peg$c174 = peg$literalExpectation("implements", false),
  615. peg$c175 = "interface",
  616. peg$c176 = peg$literalExpectation("interface", false),
  617. peg$c177 = "let",
  618. peg$c178 = peg$literalExpectation("let", false),
  619. peg$c179 = "package",
  620. peg$c180 = peg$literalExpectation("package", false),
  621. peg$c181 = "private",
  622. peg$c182 = peg$literalExpectation("private", false),
  623. peg$c183 = "protected",
  624. peg$c184 = peg$literalExpectation("protected", false),
  625. peg$c185 = "public",
  626. peg$c186 = peg$literalExpectation("public", false),
  627. peg$c187 = "static",
  628. peg$c188 = peg$literalExpectation("static", false),
  629. peg$c189 = "yield",
  630. peg$c190 = peg$literalExpectation("yield", false),
  631. peg$c191 = function(frw) {
  632. return frw;
  633. },
  634. peg$c192 = "\"",
  635. peg$c193 = peg$literalExpectation("\"", false),
  636. peg$c194 = function(str) {
  637. return str;
  638. },
  639. peg$c195 = "'",
  640. peg$c196 = peg$literalExpectation("'", false),
  641. peg$c197 = function(lit, digits, exp) {
  642. return parseFloat(lit + '.' + (digits || '') + (exp || ''));
  643. },
  644. peg$c198 = function(digits, exp) {
  645. return parseFloat('.' + digits + (exp || ''));
  646. },
  647. peg$c199 = function(lit, exp) {
  648. return parseFloat(lit + (exp || ''));
  649. },
  650. peg$c200 = "0",
  651. peg$c201 = peg$literalExpectation("0", false),
  652. peg$c202 = /^[eE]/,
  653. peg$c203 = peg$classExpectation(["e", "E"], false, false),
  654. peg$c204 = /^[+\-]/,
  655. peg$c205 = peg$classExpectation(["+", "-"], false, false),
  656. peg$c206 = /^[xX]/,
  657. peg$c207 = peg$classExpectation(["x", "X"], false, false),
  658. peg$c208 = function(hex) {
  659. return parseInt('0x' + hex, 16);
  660. },
  661. peg$c209 = "null",
  662. peg$c210 = peg$literalExpectation("null", false),
  663. peg$c211 = "undefined",
  664. peg$c212 = peg$literalExpectation("undefined", false),
  665. peg$c213 = function() {
  666. return {
  667. type: Types.UnknownLiteral
  668. };
  669. },
  670. peg$c214 = "true",
  671. peg$c215 = peg$literalExpectation("true", false),
  672. peg$c216 = "false",
  673. peg$c217 = peg$literalExpectation("false", false),
  674. peg$c218 = "Function",
  675. peg$c219 = peg$literalExpectation("Function", false),
  676. peg$c220 = "function",
  677. peg$c221 = peg$literalExpectation("function", false),
  678. peg$c222 = "\\",
  679. peg$c223 = peg$literalExpectation("\\", false),
  680. peg$c224 = "u",
  681. peg$c225 = peg$literalExpectation("u", false),
  682. peg$c226 = function(hex) {
  683. return String.fromCharCode(parseInt('0x' + hex), 16);
  684. },
  685. peg$c227 = /^[0-9]/,
  686. peg$c228 = peg$classExpectation([["0", "9"]], false, false),
  687. peg$c229 = /^[1-9]/,
  688. peg$c230 = peg$classExpectation([["1", "9"]], false, false),
  689. peg$c231 = /^[0-9a-fA-F]/,
  690. peg$c232 = peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false),
  691. peg$c233 = peg$otherExpectation("Unicode combining mark"),
  692. peg$c234 = /^[\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D]/,
  693. peg$c235 = peg$classExpectation(["\u0903", "\u093E", "\u093F", "\u0940", "\u0949", "\u094A", "\u094B", "\u094C", "\u0982", "\u0983", "\u09BE", "\u09BF", "\u09C0", "\u09C7", "\u09C8", "\u09CB", "\u09CC", "\u09D7", "\u0A03", "\u0A3E", "\u0A3F", "\u0A40", "\u0A83", "\u0ABE", "\u0ABF", "\u0AC0", "\u0AC9", "\u0ACB", "\u0ACC", "\u0B02", "\u0B03", "\u0B3E", "\u0B40", "\u0B47", "\u0B48", "\u0B4B", "\u0B4C", "\u0B57", "\u0BBE", "\u0BBF", "\u0BC1", "\u0BC2", "\u0BC6", "\u0BC7", "\u0BC8", "\u0BCA", "\u0BCB", "\u0BCC", "\u0BD7", "\u0C01", "\u0C02", "\u0C03", "\u0C41", "\u0C42", "\u0C43", "\u0C44", "\u0C82", "\u0C83", "\u0CBE", "\u0CC0", "\u0CC1", "\u0CC2", "\u0CC3", "\u0CC4", "\u0CC7", "\u0CC8", "\u0CCA", "\u0CCB", "\u0CD5", "\u0CD6", "\u0D02", "\u0D03", "\u0D3E", "\u0D3F", "\u0D40", "\u0D46", "\u0D47", "\u0D48", "\u0D4A", "\u0D4B", "\u0D4C", "\u0D57", "\u0D82", "\u0D83", "\u0DCF", "\u0DD0", "\u0DD1", "\u0DD8", "\u0DD9", "\u0DDA", "\u0DDB", "\u0DDC", "\u0DDD", "\u0DDE", "\u0DDF", "\u0DF2", "\u0DF3", "\u0F3E", "\u0F3F", "\u0F7F", "\u102B", "\u102C", "\u1031", "\u1038", "\u103B", "\u103C", "\u1056", "\u1057", "\u1062", "\u1063", "\u1064", "\u1067", "\u1068", "\u1069", "\u106A", "\u106B", "\u106C", "\u106D", "\u1083", "\u1084", "\u1087", "\u1088", "\u1089", "\u108A", "\u108B", "\u108C", "\u108F", "\u17B6", "\u17BE", "\u17BF", "\u17C0", "\u17C1", "\u17C2", "\u17C3", "\u17C4", "\u17C5", "\u17C7", "\u17C8", "\u1923", "\u1924", "\u1925", "\u1926", "\u1929", "\u192A", "\u192B", "\u1930", "\u1931", "\u1933", "\u1934", "\u1935", "\u1936", "\u1937", "\u1938", "\u19B0", "\u19B1", "\u19B2", "\u19B3", "\u19B4", "\u19B5", "\u19B6", "\u19B7", "\u19B8", "\u19B9", "\u19BA", "\u19BB", "\u19BC", "\u19BD", "\u19BE", "\u19BF", "\u19C0", "\u19C8", "\u19C9", "\u1A19", "\u1A1A", "\u1A1B", "\u1B04", "\u1B35", "\u1B3B", "\u1B3D", "\u1B3E", "\u1B3F", "\u1B40", "\u1B41", "\u1B43", "\u1B44", "\u1B82", "\u1BA1", "\u1BA6", "\u1BA7", "\u1BAA", "\u1C24", "\u1C25", "\u1C26", "\u1C27", "\u1C28", "\u1C29", "\u1C2A", "\u1C2B", "\u1C34", "\u1C35", "\uA823", "\uA824", "\uA827", "\uA880", "\uA881", "\uA8B4", "\uA8B5", "\uA8B6", "\uA8B7", "\uA8B8", "\uA8B9", "\uA8BA", "\uA8BB", "\uA8BC", "\uA8BD", "\uA8BE", "\uA8BF", "\uA8C0", "\uA8C1", "\uA8C2", "\uA8C3", "\uA952", "\uA953", "\uAA2F", "\uAA30", "\uAA33", "\uAA34", "\uAA4D"], false, false),
  694. peg$c236 = peg$otherExpectation("Unicode decimal number"),
  695. peg$c237 = /^[0123456789\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]/,
  696. peg$c238 = peg$classExpectation(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669", "\u06F0", "\u06F1", "\u06F2", "\u06F3", "\u06F4", "\u06F5", "\u06F6", "\u06F7", "\u06F8", "\u06F9", "\u07C0", "\u07C1", "\u07C2", "\u07C3", "\u07C4", "\u07C5", "\u07C6", "\u07C7", "\u07C8", "\u07C9", "\u0966", "\u0967", "\u0968", "\u0969", "\u096A", "\u096B", "\u096C", "\u096D", "\u096E", "\u096F", "\u09E6", "\u09E7", "\u09E8", "\u09E9", "\u09EA", "\u09EB", "\u09EC", "\u09ED", "\u09EE", "\u09EF", "\u0A66", "\u0A67", "\u0A68", "\u0A69", "\u0A6A", "\u0A6B", "\u0A6C", "\u0A6D", "\u0A6E", "\u0A6F", "\u0AE6", "\u0AE7", "\u0AE8", "\u0AE9", "\u0AEA", "\u0AEB", "\u0AEC", "\u0AED", "\u0AEE", "\u0AEF", "\u0B66", "\u0B67", "\u0B68", "\u0B69", "\u0B6A", "\u0B6B", "\u0B6C", "\u0B6D", "\u0B6E", "\u0B6F", "\u0BE6", "\u0BE7", "\u0BE8", "\u0BE9", "\u0BEA", "\u0BEB", "\u0BEC", "\u0BED", "\u0BEE", "\u0BEF", "\u0C66", "\u0C67", "\u0C68", "\u0C69", "\u0C6A", "\u0C6B", "\u0C6C", "\u0C6D", "\u0C6E", "\u0C6F", "\u0CE6", "\u0CE7", "\u0CE8", "\u0CE9", "\u0CEA", "\u0CEB", "\u0CEC", "\u0CED", "\u0CEE", "\u0CEF", "\u0D66", "\u0D67", "\u0D68", "\u0D69", "\u0D6A", "\u0D6B", "\u0D6C", "\u0D6D", "\u0D6E", "\u0D6F", "\u0E50", "\u0E51", "\u0E52", "\u0E53", "\u0E54", "\u0E55", "\u0E56", "\u0E57", "\u0E58", "\u0E59", "\u0ED0", "\u0ED1", "\u0ED2", "\u0ED3", "\u0ED4", "\u0ED5", "\u0ED6", "\u0ED7", "\u0ED8", "\u0ED9", "\u0F20", "\u0F21", "\u0F22", "\u0F23", "\u0F24", "\u0F25", "\u0F26", "\u0F27", "\u0F28", "\u0F29", "\u1040", "\u1041", "\u1042", "\u1043", "\u1044", "\u1045", "\u1046", "\u1047", "\u1048", "\u1049", "\u1090", "\u1091", "\u1092", "\u1093", "\u1094", "\u1095", "\u1096", "\u1097", "\u1098", "\u1099", "\u17E0", "\u17E1", "\u17E2", "\u17E3", "\u17E4", "\u17E5", "\u17E6", "\u17E7", "\u17E8", "\u17E9", "\u1810", "\u1811", "\u1812", "\u1813", "\u1814", "\u1815", "\u1816", "\u1817", "\u1818", "\u1819", "\u1946", "\u1947", "\u1948", "\u1949", "\u194A", "\u194B", "\u194C", "\u194D", "\u194E", "\u194F", "\u19D0", "\u19D1", "\u19D2", "\u19D3", "\u19D4", "\u19D5", "\u19D6", "\u19D7", "\u19D8", "\u19D9", "\u1B50", "\u1B51", "\u1B52", "\u1B53", "\u1B54", "\u1B55", "\u1B56", "\u1B57", "\u1B58", "\u1B59", "\u1BB0", "\u1BB1", "\u1BB2", "\u1BB3", "\u1BB4", "\u1BB5", "\u1BB6", "\u1BB7", "\u1BB8", "\u1BB9", "\u1C40", "\u1C41", "\u1C42", "\u1C43", "\u1C44", "\u1C45", "\u1C46", "\u1C47", "\u1C48", "\u1C49", "\u1C50", "\u1C51", "\u1C52", "\u1C53", "\u1C54", "\u1C55", "\u1C56", "\u1C57", "\u1C58", "\u1C59", "\uA620", "\uA621", "\uA622", "\uA623", "\uA624", "\uA625", "\uA626", "\uA627", "\uA628", "\uA629", "\uA8D0", "\uA8D1", "\uA8D2", "\uA8D3", "\uA8D4", "\uA8D5", "\uA8D6", "\uA8D7", "\uA8D8", "\uA8D9", "\uA900", "\uA901", "\uA902", "\uA903", "\uA904", "\uA905", "\uA906", "\uA907", "\uA908", "\uA909", "\uAA50", "\uAA51", "\uAA52", "\uAA53", "\uAA54", "\uAA55", "\uAA56", "\uAA57", "\uAA58", "\uAA59", "\uFF10", "\uFF11", "\uFF12", "\uFF13", "\uFF14", "\uFF15", "\uFF16", "\uFF17", "\uFF18", "\uFF19"], false, false),
  697. peg$c239 = peg$otherExpectation("Unicode punctuation connector"),
  698. peg$c240 = /^[_\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F]/,
  699. peg$c241 = peg$classExpectation(["_", "\u203F", "\u2040", "\u2054", "\uFE33", "\uFE34", "\uFE4D", "\uFE4E", "\uFE4F", "\uFF3F"], false, false),
  700. peg$c242 = peg$otherExpectation("Unicode uppercase letter"),
  701. peg$c243 = /^[ABCDEFGHIJKLMNOPQRSTUVWXYZ\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A]/,
  702. peg$c244 = peg$classExpectation(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "\xC0", "\xC1", "\xC2", "\xC3", "\xC4", "\xC5", "\xC6", "\xC7", "\xC8", "\xC9", "\xCA", "\xCB", "\xCC", "\xCD", "\xCE", "\xCF", "\xD0", "\xD1", "\xD2", "\xD3", "\xD4", "\xD5", "\xD6", "\xD8", "\xD9", "\xDA", "\xDB", "\xDC", "\xDD", "\xDE", "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", "\u0178", "\u0179", "\u017B", "\u017D", "\u0181", "\u0182", "\u0184", "\u0186", "\u0187", "\u0189", "\u018A", "\u018B", "\u018E", "\u018F", "\u0190", "\u0191", "\u0193", "\u0194", "\u0196", "\u0197", "\u0198", "\u019C", "\u019D", "\u019F", "\u01A0", "\u01A2", "\u01A4", "\u01A6", "\u01A7", "\u01A9", "\u01AC", "\u01AE", "\u01AF", "\u01B1", "\u01B2", "\u01B3", "\u01B5", "\u01B7", "\u01B8", "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", "\u01F6", "\u01F7", "\u01F8", "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", "\u023A", "\u023B", "\u023D", "\u023E", "\u0241", "\u0243", "\u0244", "\u0245", "\u0246", "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u0386", "\u0388", "\u0389", "\u038A", "\u038C", "\u038E", "\u038F", "\u0391", "\u0392", "\u0393", "\u0394", "\u0395", "\u0396", "\u0397", "\u0398", "\u0399", "\u039A", "\u039B", "\u039C", "\u039D", "\u039E", "\u039F", "\u03A0", "\u03A1", "\u03A3", "\u03A4", "\u03A5", "\u03A6", "\u03A7", "\u03A8", "\u03A9", "\u03AA", "\u03AB", "\u03CF", "\u03D2", "\u03D3", "\u03D4", "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", "\u03F9", "\u03FA", "\u03FD", "\u03FE", "\u03FF", "\u0400", "\u0401", "\u0402", "\u0403", "\u0404", "\u0405", "\u0406", "\u0407", "\u0408", "\u0409", "\u040A", "\u040B", "\u040C", "\u040D", "\u040E", "\u040F", "\u0410", "\u0411", "\u0412", "\u0413", "\u0414", "\u0415", "\u0416", "\u0417", "\u0418", "\u0419", "\u041A", "\u041B", "\u041C", "\u041D", "\u041E", "\u041F", "\u0420", "\u0421", "\u0422", "\u0423", "\u0424", "\u0425", "\u0426", "\u0427", "\u0428", "\u0429", "\u042A", "\u042B", "\u042C", "\u042D", "\u042E", "\u042F", "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", "\u04C0", "\u04C1", "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0531", "\u0532", "\u0533", "\u0534", "\u0535", "\u0536", "\u0537", "\u0538", "\u0539", "\u053A", "\u053B", "\u053C", "\u053D", "\u053E", "\u053F", "\u0540", "\u0541", "\u0542", "\u0543", "\u0544", "\u0545", "\u0546", "\u0547", "\u0548", "\u0549", "\u054A", "\u054B", "\u054C", "\u054D", "\u054E", "\u054F", "\u0550", "\u0551", "\u0552", "\u0553", "\u0554", "\u0555", "\u0556", "\u10A0", "\u10A1", "\u10A2", "\u10A3", "\u10A4", "\u10A5", "\u10A6", "\u10A7", "\u10A8", "\u10A9", "\u10AA", "\u10AB", "\u10AC", "\u10AD", "\u10AE", "\u10AF", "\u10B0", "\u10B1", "\u10B2", "\u10B3", "\u10B4", "\u10B5", "\u10B6", "\u10B7", "\u10B8", "\u10B9", "\u10BA", "\u10BB", "\u10BC", "\u10BD", "\u10BE", "\u10BF", "\u10C0", "\u10C1", "\u10C2", "\u10C3", "\u10C4", "\u10C5", "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", "\u1F08", "\u1F09", "\u1F0A", "\u1F0B", "\u1F0C", "\u1F0D", "\u1F0E", "\u1F0F", "\u1F18", "\u1F19", "\u1F1A", "\u1F1B", "\u1F1C", "\u1F1D", "\u1F28", "\u1F29", "\u1F2A", "\u1F2B", "\u1F2C", "\u1F2D", "\u1F2E", "\u1F2F", "\u1F38", "\u1F39", "\u1F3A", "\u1F3B", "\u1F3C", "\u1F3D", "\u1F3E", "\u1F3F", "\u1F48", "\u1F49", "\u1F4A", "\u1F4B", "\u1F4C", "\u1F4D", "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", "\u1F68", "\u1F69", "\u1F6A", "\u1F6B", "\u1F6C", "\u1F6D", "\u1F6E", "\u1F6F", "\u1FB8", "\u1FB9", "\u1FBA", "\u1FBB", "\u1FC8", "\u1FC9", "\u1FCA", "\u1FCB", "\u1FD8", "\u1FD9", "\u1FDA", "\u1FDB", "\u1FE8", "\u1FE9", "\u1FEA", "\u1FEB", "\u1FEC", "\u1FF8", "\u1FF9", "\u1FFA", "\u1FFB", "\u2102", "\u2107", "\u210B", "\u210C", "\u210D", "\u2110", "\u2111", "\u2112", "\u2115", "\u2119", "\u211A", "\u211B", "\u211C", "\u211D", "\u2124", "\u2126", "\u2128", "\u212A", "\u212B", "\u212C", "\u212D", "\u2130", "\u2131", "\u2132", "\u2133", "\u213E", "\u213F", "\u2145", "\u2183", "\u2C00", "\u2C01", "\u2C02", "\u2C03", "\u2C04", "\u2C05", "\u2C06", "\u2C07", "\u2C08", "\u2C09", "\u2C0A", "\u2C0B", "\u2C0C", "\u2C0D", "\u2C0E", "\u2C0F", "\u2C10", "\u2C11", "\u2C12", "\u2C13", "\u2C14", "\u2C15", "\u2C16", "\u2C17", "\u2C18", "\u2C19", "\u2C1A", "\u2C1B", "\u2C1C", "\u2C1D", "\u2C1E", "\u2C1F", "\u2C20", "\u2C21", "\u2C22", "\u2C23", "\u2C24", "\u2C25", "\u2C26", "\u2C27", "\u2C28", "\u2C29", "\u2C2A", "\u2C2B", "\u2C2C", "\u2C2D", "\u2C2E", "\u2C60", "\u2C62", "\u2C63", "\u2C64", "\u2C67", "\u2C69", "\u2C6B", "\u2C6D", "\u2C6E", "\u2C6F", "\u2C72", "\u2C75", "\u2C80", "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", "\uA77D", "\uA77E", "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uFF21", "\uFF22", "\uFF23", "\uFF24", "\uFF25", "\uFF26", "\uFF27", "\uFF28", "\uFF29", "\uFF2A", "\uFF2B", "\uFF2C", "\uFF2D", "\uFF2E", "\uFF2F", "\uFF30", "\uFF31", "\uFF32", "\uFF33", "\uFF34", "\uFF35", "\uFF36", "\uFF37", "\uFF38", "\uFF39", "\uFF3A"], false, false),
  703. peg$c245 = peg$otherExpectation("Unicode lowercase letter"),
  704. peg$c246 = /^[abcdefghijklmnopqrstuvwxyz\xAA\xB5\xBA\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A]/,
  705. peg$c247 = peg$classExpectation(["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "\xAA", "\xB5", "\xBA", "\xDF", "\xE0", "\xE1", "\xE2", "\xE3", "\xE4", "\xE5", "\xE6", "\xE7", "\xE8", "\xE9", "\xEA", "\xEB", "\xEC", "\xED", "\xEE", "\xEF", "\xF0", "\xF1", "\xF2", "\xF3", "\xF4", "\xF5", "\xF6", "\xF8", "\xF9", "\xFA", "\xFB", "\xFC", "\xFD", "\xFE", "\xFF", "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", "\u0137", "\u0138", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", "\u0148", "\u0149", "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", "\u017E", "\u017F", "\u0180", "\u0183", "\u0185", "\u0188", "\u018C", "\u018D", "\u0192", "\u0195", "\u0199", "\u019A", "\u019B", "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", "\u01AA", "\u01AB", "\u01AD", "\u01B0", "\u01B4", "\u01B6", "\u01B9", "\u01BA", "\u01BD", "\u01BE", "\u01BF", "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", "\u01DC", "\u01DD", "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", "\u01EF", "\u01F0", "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", "\u0233", "\u0234", "\u0235", "\u0236", "\u0237", "\u0238", "\u0239", "\u023C", "\u023F", "\u0240", "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", "\u024F", "\u0250", "\u0251", "\u0252", "\u0253", "\u0254", "\u0255", "\u0256", "\u0257", "\u0258", "\u0259", "\u025A", "\u025B", "\u025C", "\u025D", "\u025E", "\u025F", "\u0260", "\u0261", "\u0262", "\u0263", "\u0264", "\u0265", "\u0266", "\u0267", "\u0268", "\u0269", "\u026A", "\u026B", "\u026C", "\u026D", "\u026E", "\u026F", "\u0270", "\u0271", "\u0272", "\u0273", "\u0274", "\u0275", "\u0276", "\u0277", "\u0278", "\u0279", "\u027A", "\u027B", "\u027C", "\u027D", "\u027E", "\u027F", "\u0280", "\u0281", "\u0282", "\u0283", "\u0284", "\u0285", "\u0286", "\u0287", "\u0288", "\u0289", "\u028A", "\u028B", "\u028C", "\u028D", "\u028E", "\u028F", "\u0290", "\u0291", "\u0292", "\u0293", "\u0295", "\u0296", "\u0297", "\u0298", "\u0299", "\u029A", "\u029B", "\u029C", "\u029D", "\u029E", "\u029F", "\u02A0", "\u02A1", "\u02A2", "\u02A3", "\u02A4", "\u02A5", "\u02A6", "\u02A7", "\u02A8", "\u02A9", "\u02AA", "\u02AB", "\u02AC", "\u02AD", "\u02AE", "\u02AF", "\u0371", "\u0373", "\u0377", "\u037B", "\u037C", "\u037D", "\u0390", "\u03AC", "\u03AD", "\u03AE", "\u03AF", "\u03B0", "\u03B1", "\u03B2", "\u03B3", "\u03B4", "\u03B5", "\u03B6", "\u03B7", "\u03B8", "\u03B9", "\u03BA", "\u03BB", "\u03BC", "\u03BD", "\u03BE", "\u03BF", "\u03C0", "\u03C1", "\u03C2", "\u03C3", "\u03C4", "\u03C5", "\u03C6", "\u03C7", "\u03C8", "\u03C9", "\u03CA", "\u03CB", "\u03CC", "\u03CD", "\u03CE", "\u03D0", "\u03D1", "\u03D5", "\u03D6", "\u03D7", "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", "\u03EF", "\u03F0", "\u03F1", "\u03F2", "\u03F3", "\u03F5", "\u03F8", "\u03FB", "\u03FC", "\u0430", "\u0431", "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439", "\u043A", "\u043B", "\u043C", "\u043D", "\u043E", "\u043F", "\u0440", "\u0441", "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449", "\u044A", "\u044B", "\u044C", "\u044D", "\u044E", "\u044F", "\u0450", "\u0451", "\u0452", "\u0453", "\u0454", "\u0455", "\u0456", "\u0457", "\u0458", "\u0459", "\u045A", "\u045B", "\u045C", "\u045D", "\u045E", "\u045F", "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", "\u04CE", "\u04CF", "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0561", "\u0562", "\u0563", "\u0564", "\u0565", "\u0566", "\u0567", "\u0568", "\u0569", "\u056A", "\u056B", "\u056C", "\u056D", "\u056E", "\u056F", "\u0570", "\u0571", "\u0572", "\u0573", "\u0574", "\u0575", "\u0576", "\u0577", "\u0578", "\u0579", "\u057A", "\u057B", "\u057C", "\u057D", "\u057E", "\u057F", "\u0580", "\u0581", "\u0582", "\u0583", "\u0584", "\u0585", "\u0586", "\u0587", "\u1D00", "\u1D01", "\u1D02", "\u1D03", "\u1D04", "\u1D05", "\u1D06", "\u1D07", "\u1D08", "\u1D09", "\u1D0A", "\u1D0B", "\u1D0C", "\u1D0D", "\u1D0E", "\u1D0F", "\u1D10", "\u1D11", "\u1D12", "\u1D13", "\u1D14", "\u1D15", "\u1D16", "\u1D17", "\u1D18", "\u1D19", "\u1D1A", "\u1D1B", "\u1D1C", "\u1D1D", "\u1D1E", "\u1D1F", "\u1D20", "\u1D21", "\u1D22", "\u1D23", "\u1D24", "\u1D25", "\u1D26", "\u1D27", "\u1D28", "\u1D29", "\u1D2A", "\u1D2B", "\u1D62", "\u1D63", "\u1D64", "\u1D65", "\u1D66", "\u1D67", "\u1D68", "\u1D69", "\u1D6A", "\u1D6B", "\u1D6C", "\u1D6D", "\u1D6E", "\u1D6F", "\u1D70", "\u1D71", "\u1D72", "\u1D73", "\u1D74", "\u1D75", "\u1D76", "\u1D77", "\u1D79", "\u1D7A", "\u1D7B", "\u1D7C", "\u1D7D", "\u1D7E", "\u1D7F", "\u1D80", "\u1D81", "\u1D82", "\u1D83", "\u1D84", "\u1D85", "\u1D86", "\u1D87", "\u1D88", "\u1D89", "\u1D8A", "\u1D8B", "\u1D8C", "\u1D8D", "\u1D8E", "\u1D8F", "\u1D90", "\u1D91", "\u1D92", "\u1D93", "\u1D94", "\u1D95", "\u1D96", "\u1D97", "\u1D98", "\u1D99", "\u1D9A", "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", "\u1E95", "\u1E96", "\u1E97", "\u1E98", "\u1E99", "\u1E9A", "\u1E9B", "\u1E9C", "\u1E9D", "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", "\u1EFF", "\u1F00", "\u1F01", "\u1F02", "\u1F03", "\u1F04", "\u1F05", "\u1F06", "\u1F07", "\u1F10", "\u1F11", "\u1F12", "\u1F13", "\u1F14", "\u1F15", "\u1F20", "\u1F21", "\u1F22", "\u1F23", "\u1F24", "\u1F25", "\u1F26", "\u1F27", "\u1F30", "\u1F31", "\u1F32", "\u1F33", "\u1F34", "\u1F35", "\u1F36", "\u1F37", "\u1F40", "\u1F41", "\u1F42", "\u1F43", "\u1F44", "\u1F45", "\u1F50", "\u1F51", "\u1F52", "\u1F53", "\u1F54", "\u1F55", "\u1F56", "\u1F57", "\u1F60", "\u1F61", "\u1F62", "\u1F63", "\u1F64", "\u1F65", "\u1F66", "\u1F67", "\u1F70", "\u1F71", "\u1F72", "\u1F73", "\u1F74", "\u1F75", "\u1F76", "\u1F77", "\u1F78", "\u1F79", "\u1F7A", "\u1F7B", "\u1F7C", "\u1F7D", "\u1F80", "\u1F81", "\u1F82", "\u1F83", "\u1F84", "\u1F85", "\u1F86", "\u1F87", "\u1F90", "\u1F91", "\u1F92", "\u1F93", "\u1F94", "\u1F95", "\u1F96", "\u1F97", "\u1FA0", "\u1FA1", "\u1FA2", "\u1FA3", "\u1FA4", "\u1FA5", "\u1FA6", "\u1FA7", "\u1FB0", "\u1FB1", "\u1FB2", "\u1FB3", "\u1FB4", "\u1FB6", "\u1FB7", "\u1FBE", "\u1FC2", "\u1FC3", "\u1FC4", "\u1FC6", "\u1FC7", "\u1FD0", "\u1FD1", "\u1FD2", "\u1FD3", "\u1FD6", "\u1FD7", "\u1FE0", "\u1FE1", "\u1FE2", "\u1FE3", "\u1FE4", "\u1FE5", "\u1FE6", "\u1FE7", "\u1FF2", "\u1FF3", "\u1FF4", "\u1FF6", "\u1FF7", "\u2071", "\u207F", "\u210A", "\u210E", "\u210F", "\u2113", "\u212F", "\u2134", "\u2139", "\u213C", "\u213D", "\u2146", "\u2147", "\u2148", "\u2149", "\u214E", "\u2184", "\u2C30", "\u2C31", "\u2C32", "\u2C33", "\u2C34", "\u2C35", "\u2C36", "\u2C37", "\u2C38", "\u2C39", "\u2C3A", "\u2C3B", "\u2C3C", "\u2C3D", "\u2C3E", "\u2C3F", "\u2C40", "\u2C41", "\u2C42", "\u2C43", "\u2C44", "\u2C45", "\u2C46", "\u2C47", "\u2C48", "\u2C49", "\u2C4A", "\u2C4B", "\u2C4C", "\u2C4D", "\u2C4E", "\u2C4F", "\u2C50", "\u2C51", "\u2C52", "\u2C53", "\u2C54", "\u2C55", "\u2C56", "\u2C57", "\u2C58", "\u2C59", "\u2C5A", "\u2C5B", "\u2C5C", "\u2C5D", "\u2C5E", "\u2C61", "\u2C65", "\u2C66", "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", "\u2C73", "\u2C74", "\u2C76", "\u2C77", "\u2C78", "\u2C79", "\u2C7A", "\u2C7B", "\u2C7C", "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", "\u2CE3", "\u2CE4", "\u2D00", "\u2D01", "\u2D02", "\u2D03", "\u2D04", "\u2D05", "\u2D06", "\u2D07", "\u2D08", "\u2D09", "\u2D0A", "\u2D0B", "\u2D0C", "\u2D0D", "\u2D0E", "\u2D0F", "\u2D10", "\u2D11", "\u2D12", "\u2D13", "\u2D14", "\u2D15", "\u2D16", "\u2D17", "\u2D18", "\u2D19", "\u2D1A", "\u2D1B", "\u2D1C", "\u2D1D", "\u2D1E", "\u2D1F", "\u2D20", "\u2D21", "\u2D22", "\u2D23", "\u2D24", "\u2D25", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", "\uA72F", "\uA730", "\uA731", "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", "\uA771", "\uA772", "\uA773", "\uA774", "\uA775", "\uA776", "\uA777", "\uA778", "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uFB00", "\uFB01", "\uFB02", "\uFB03", "\uFB04", "\uFB05", "\uFB06", "\uFB13", "\uFB14", "\uFB15", "\uFB16", "\uFB17", "\uFF41", "\uFF42", "\uFF43", "\uFF44", "\uFF45", "\uFF46", "\uFF47", "\uFF48", "\uFF49", "\uFF4A", "\uFF4B", "\uFF4C", "\uFF4D", "\uFF4E", "\uFF4F", "\uFF50", "\uFF51", "\uFF52", "\uFF53", "\uFF54", "\uFF55", "\uFF56", "\uFF57", "\uFF58", "\uFF59", "\uFF5A"], false, false),
  706. peg$c248 = peg$otherExpectation("Unicode titlecase letter"),
  707. peg$c249 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC]/,
  708. peg$c250 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", "\u1F88", "\u1F89", "\u1F8A", "\u1F8B", "\u1F8C", "\u1F8D", "\u1F8E", "\u1F8F", "\u1F98", "\u1F99", "\u1F9A", "\u1F9B", "\u1F9C", "\u1F9D", "\u1F9E", "\u1F9F", "\u1FA8", "\u1FA9", "\u1FAA", "\u1FAB", "\u1FAC", "\u1FAD", "\u1FAE", "\u1FAF", "\u1FBC", "\u1FCC"], false, false),
  709. peg$c251 = peg$otherExpectation("Unicode modifier letter"),
  710. peg$c252 = /^[\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F]/,
  711. peg$c253 = peg$classExpectation(["\u02B0", "\u02B1", "\u02B2", "\u02B3", "\u02B4", "\u02B5", "\u02B6", "\u02B7", "\u02B8", "\u02B9", "\u02BA", "\u02BB", "\u02BC", "\u02BD", "\u02BE", "\u02BF", "\u02C0", "\u02C1", "\u02C6", "\u02C7", "\u02C8", "\u02C9", "\u02CA", "\u02CB", "\u02CC", "\u02CD", "\u02CE", "\u02CF", "\u02D0", "\u02D1", "\u02E0", "\u02E1", "\u02E2", "\u02E3", "\u02E4", "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", "\u06E5", "\u06E6", "\u07F4", "\u07F5", "\u07FA", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1C78", "\u1C79", "\u1C7A", "\u1C7B", "\u1C7C", "\u1C7D", "\u1D2C", "\u1D2D", "\u1D2E", "\u1D2F", "\u1D30", "\u1D31", "\u1D32", "\u1D33", "\u1D34", "\u1D35", "\u1D36", "\u1D37", "\u1D38", "\u1D39", "\u1D3A", "\u1D3B", "\u1D3C", "\u1D3D", "\u1D3E", "\u1D3F", "\u1D40", "\u1D41", "\u1D42", "\u1D43", "\u1D44", "\u1D45", "\u1D46", "\u1D47", "\u1D48", "\u1D49", "\u1D4A", "\u1D4B", "\u1D4C", "\u1D4D", "\u1D4E", "\u1D4F", "\u1D50", "\u1D51", "\u1D52", "\u1D53", "\u1D54", "\u1D55", "\u1D56", "\u1D57", "\u1D58", "\u1D59", "\u1D5A", "\u1D5B", "\u1D5C", "\u1D5D", "\u1D5E", "\u1D5F", "\u1D60", "\u1D61", "\u1D78", "\u1D9B", "\u1D9C", "\u1D9D", "\u1D9E", "\u1D9F", "\u1DA0", "\u1DA1", "\u1DA2", "\u1DA3", "\u1DA4", "\u1DA5", "\u1DA6", "\u1DA7", "\u1DA8", "\u1DA9", "\u1DAA", "\u1DAB", "\u1DAC", "\u1DAD", "\u1DAE", "\u1DAF", "\u1DB0", "\u1DB1", "\u1DB2", "\u1DB3", "\u1DB4", "\u1DB5", "\u1DB6", "\u1DB7", "\u1DB8", "\u1DB9", "\u1DBA", "\u1DBB", "\u1DBC", "\u1DBD", "\u1DBE", "\u1DBF", "\u2090", "\u2091", "\u2092", "\u2093", "\u2094", "\u2C7D", "\u2D6F", "\u2E2F", "\u3005", "\u3031", "\u3032", "\u3033", "\u3034", "\u3035", "\u303B", "\u309D", "\u309E", "\u30FC", "\u30FD", "\u30FE", "\uA015", "\uA60C", "\uA67F", "\uA717", "\uA718", "\uA719", "\uA71A", "\uA71B", "\uA71C", "\uA71D", "\uA71E", "\uA71F", "\uA770", "\uA788", "\uFF70", "\uFF9E", "\uFF9F"], false, false),
  712. peg$c254 = peg$otherExpectation("Unicode other letter"),
  713. peg$c255 = /^[\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF]/,
  714. peg$c256 = peg$classExpectation(["\u01BB", "\u01C0", "\u01C1", "\u01C2", "\u01C3", "\u0294", "\u05D0", "\u05D1", "\u05D2", "\u05D3", "\u05D4", "\u05D5", "\u05D6", "\u05D7", "\u05D8", "\u05D9", "\u05DA", "\u05DB", "\u05DC", "\u05DD", "\u05DE", "\u05DF", "\u05E0", "\u05E1", "\u05E2", "\u05E3", "\u05E4", "\u05E5", "\u05E6", "\u05E7", "\u05E8", "\u05E9", "\u05EA", "\u05F0", "\u05F1", "\u05F2", "\u0621", "\u0622", "\u0623", "\u0624", "\u0625", "\u0626", "\u0627", "\u0628", "\u0629", "\u062A", "\u062B", "\u062C", "\u062D", "\u062E", "\u062F", "\u0630", "\u0631", "\u0632", "\u0633", "\u0634", "\u0635", "\u0636", "\u0637", "\u0638", "\u0639", "\u063A", "\u063B", "\u063C", "\u063D", "\u063E", "\u063F", "\u0641", "\u0642", "\u0643", "\u0644", "\u0645", "\u0646", "\u0647", "\u0648", "\u0649", "\u064A", "\u066E", "\u066F", "\u0671", "\u0672", "\u0673", "\u0674", "\u0675", "\u0676", "\u0677", "\u0678", "\u0679", "\u067A", "\u067B", "\u067C", "\u067D", "\u067E", "\u067F", "\u0680", "\u0681", "\u0682", "\u0683", "\u0684", "\u0685", "\u0686", "\u0687", "\u0688", "\u0689", "\u068A", "\u068B", "\u068C", "\u068D", "\u068E", "\u068F", "\u0690", "\u0691", "\u0692", "\u0693", "\u0694", "\u0695", "\u0696", "\u0697", "\u0698", "\u0699", "\u069A", "\u069B", "\u069C", "\u069D", "\u069E", "\u069F", "\u06A0", "\u06A1", "\u06A2", "\u06A3", "\u06A4", "\u06A5", "\u06A6", "\u06A7", "\u06A8", "\u06A9", "\u06AA", "\u06AB", "\u06AC", "\u06AD", "\u06AE", "\u06AF", "\u06B0", "\u06B1", "\u06B2", "\u06B3", "\u06B4", "\u06B5", "\u06B6", "\u06B7", "\u06B8", "\u06B9", "\u06BA", "\u06BB", "\u06BC", "\u06BD", "\u06BE", "\u06BF", "\u06C0", "\u06C1", "\u06C2", "\u06C3", "\u06C4", "\u06C5", "\u06C6", "\u06C7", "\u06C8", "\u06C9", "\u06CA", "\u06CB", "\u06CC", "\u06CD", "\u06CE", "\u06CF", "\u06D0", "\u06D1", "\u06D2", "\u06D3", "\u06D5", "\u06EE", "\u06EF", "\u06FA", "\u06FB", "\u06FC", "\u06FF", "\u0710", "\u0712", "\u0713", "\u0714", "\u0715", "\u0716", "\u0717", "\u0718", "\u0719", "\u071A", "\u071B", "\u071C", "\u071D", "\u071E", "\u071F", "\u0720", "\u0721", "\u0722", "\u0723", "\u0724", "\u0725", "\u0726", "\u0727", "\u0728", "\u0729", "\u072A", "\u072B", "\u072C", "\u072D", "\u072E", "\u072F", "\u074D", "\u074E", "\u074F", "\u0750", "\u0751", "\u0752", "\u0753", "\u0754", "\u0755", "\u0756", "\u0757", "\u0758", "\u0759", "\u075A", "\u075B", "\u075C", "\u075D", "\u075E", "\u075F", "\u0760", "\u0761", "\u0762", "\u0763", "\u0764", "\u0765", "\u0766", "\u0767", "\u0768", "\u0769", "\u076A", "\u076B", "\u076C", "\u076D", "\u076E", "\u076F", "\u0770", "\u0771", "\u0772", "\u0773", "\u0774", "\u0775", "\u0776", "\u0777", "\u0778", "\u0779", "\u077A", "\u077B", "\u077C", "\u077D", "\u077E", "\u077F", "\u0780", "\u0781", "\u0782", "\u0783", "\u0784", "\u0785", "\u0786", "\u0787", "\u0788", "\u0789", "\u078A", "\u078B", "\u078C", "\u078D", "\u078E", "\u078F", "\u0790", "\u0791", "\u0792", "\u0793", "\u0794", "\u0795", "\u0796", "\u0797", "\u0798", "\u0799", "\u079A", "\u079B", "\u079C", "\u079D", "\u079E", "\u079F", "\u07A0", "\u07A1", "\u07A2", "\u07A3", "\u07A4", "\u07A5", "\u07B1", "\u07CA", "\u07CB", "\u07CC", "\u07CD", "\u07CE", "\u07CF", "\u07D0", "\u07D1", "\u07D2", "\u07D3", "\u07D4", "\u07D5", "\u07D6", "\u07D7", "\u07D8", "\u07D9", "\u07DA", "\u07DB", "\u07DC", "\u07DD", "\u07DE", "\u07DF", "\u07E0", "\u07E1", "\u07E2", "\u07E3", "\u07E4", "\u07E5", "\u07E6", "\u07E7", "\u07E8", "\u07E9", "\u07EA", "\u0904", "\u0905", "\u0906", "\u0907", "\u0908", "\u0909", "\u090A", "\u090B", "\u090C", "\u090D", "\u090E", "\u090F", "\u0910", "\u0911", "\u0912", "\u0913", "\u0914", "\u0915", "\u0916", "\u0917", "\u0918", "\u0919", "\u091A", "\u091B", "\u091C", "\u091D", "\u091E", "\u091F", "\u0920", "\u0921", "\u0922", "\u0923", "\u0924", "\u0925", "\u0926", "\u0927", "\u0928", "\u0929", "\u092A", "\u092B", "\u092C", "\u092D", "\u092E", "\u092F", "\u0930", "\u0931", "\u0932", "\u0933", "\u0934", "\u0935", "\u0936", "\u0937", "\u0938", "\u0939", "\u093D", "\u0950", "\u0958", "\u0959", "\u095A", "\u095B", "\u095C", "\u095D", "\u095E", "\u095F", "\u0960", "\u0961", "\u0972", "\u097B", "\u097C", "\u097D", "\u097E", "\u097F", "\u0985", "\u0986", "\u0987", "\u0988", "\u0989", "\u098A", "\u098B", "\u098C", "\u098F", "\u0990", "\u0993", "\u0994", "\u0995", "\u0996", "\u0997", "\u0998", "\u0999", "\u099A", "\u099B", "\u099C", "\u099D", "\u099E", "\u099F", "\u09A0", "\u09A1", "\u09A2", "\u09A3", "\u09A4", "\u09A5", "\u09A6", "\u09A7", "\u09A8", "\u09AA", "\u09AB", "\u09AC", "\u09AD", "\u09AE", "\u09AF", "\u09B0", "\u09B2", "\u09B6", "\u09B7", "\u09B8", "\u09B9", "\u09BD", "\u09CE", "\u09DC", "\u09DD", "\u09DF", "\u09E0", "\u09E1", "\u09F0", "\u09F1", "\u0A05", "\u0A06", "\u0A07", "\u0A08", "\u0A09", "\u0A0A", "\u0A0F", "\u0A10", "\u0A13", "\u0A14", "\u0A15", "\u0A16", "\u0A17", "\u0A18", "\u0A19", "\u0A1A", "\u0A1B", "\u0A1C", "\u0A1D", "\u0A1E", "\u0A1F", "\u0A20", "\u0A21", "\u0A22", "\u0A23", "\u0A24", "\u0A25", "\u0A26", "\u0A27", "\u0A28", "\u0A2A", "\u0A2B", "\u0A2C", "\u0A2D", "\u0A2E", "\u0A2F", "\u0A30", "\u0A32", "\u0A33", "\u0A35", "\u0A36", "\u0A38", "\u0A39", "\u0A59", "\u0A5A", "\u0A5B", "\u0A5C", "\u0A5E", "\u0A72", "\u0A73", "\u0A74", "\u0A85", "\u0A86", "\u0A87", "\u0A88", "\u0A89", "\u0A8A", "\u0A8B", "\u0A8C", "\u0A8D", "\u0A8F", "\u0A90", "\u0A91", "\u0A93", "\u0A94", "\u0A95", "\u0A96", "\u0A97", "\u0A98", "\u0A99", "\u0A9A", "\u0A9B", "\u0A9C", "\u0A9D", "\u0A9E", "\u0A9F", "\u0AA0", "\u0AA1", "\u0AA2", "\u0AA3", "\u0AA4", "\u0AA5", "\u0AA6", "\u0AA7", "\u0AA8", "\u0AAA", "\u0AAB", "\u0AAC", "\u0AAD", "\u0AAE", "\u0AAF", "\u0AB0", "\u0AB2", "\u0AB3", "\u0AB5", "\u0AB6", "\u0AB7", "\u0AB8", "\u0AB9", "\u0ABD", "\u0AD0", "\u0AE0", "\u0AE1", "\u0B05", "\u0B06", "\u0B07", "\u0B08", "\u0B09", "\u0B0A", "\u0B0B", "\u0B0C", "\u0B0F", "\u0B10", "\u0B13", "\u0B14", "\u0B15", "\u0B16", "\u0B17", "\u0B18", "\u0B19", "\u0B1A", "\u0B1B", "\u0B1C", "\u0B1D", "\u0B1E", "\u0B1F", "\u0B20", "\u0B21", "\u0B22", "\u0B23", "\u0B24", "\u0B25", "\u0B26", "\u0B27", "\u0B28", "\u0B2A", "\u0B2B", "\u0B2C", "\u0B2D", "\u0B2E", "\u0B2F", "\u0B30", "\u0B32", "\u0B33", "\u0B35", "\u0B36", "\u0B37", "\u0B38", "\u0B39", "\u0B3D", "\u0B5C", "\u0B5D", "\u0B5F", "\u0B60", "\u0B61", "\u0B71", "\u0B83", "\u0B85", "\u0B86", "\u0B87", "\u0B88", "\u0B89", "\u0B8A", "\u0B8E", "\u0B8F", "\u0B90", "\u0B92", "\u0B93", "\u0B94", "\u0B95", "\u0B99", "\u0B9A", "\u0B9C", "\u0B9E", "\u0B9F", "\u0BA3", "\u0BA4", "\u0BA8", "\u0BA9", "\u0BAA", "\u0BAE", "\u0BAF", "\u0BB0", "\u0BB1", "\u0BB2", "\u0BB3", "\u0BB4", "\u0BB5", "\u0BB6", "\u0BB7", "\u0BB8", "\u0BB9", "\u0BD0", "\u0C05", "\u0C06", "\u0C07", "\u0C08", "\u0C09", "\u0C0A", "\u0C0B", "\u0C0C", "\u0C0E", "\u0C0F", "\u0C10", "\u0C12", "\u0C13", "\u0C14", "\u0C15", "\u0C16", "\u0C17", "\u0C18", "\u0C19", "\u0C1A", "\u0C1B", "\u0C1C", "\u0C1D", "\u0C1E", "\u0C1F", "\u0C20", "\u0C21", "\u0C22", "\u0C23", "\u0C24", "\u0C25", "\u0C26", "\u0C27", "\u0C28", "\u0C2A", "\u0C2B", "\u0C2C", "\u0C2D", "\u0C2E", "\u0C2F", "\u0C30", "\u0C31", "\u0C32", "\u0C33", "\u0C35", "\u0C36", "\u0C37", "\u0C38", "\u0C39", "\u0C3D", "\u0C58", "\u0C59", "\u0C60", "\u0C61", "\u0C85", "\u0C86", "\u0C87", "\u0C88", "\u0C89", "\u0C8A", "\u0C8B", "\u0C8C", "\u0C8E", "\u0C8F", "\u0C90", "\u0C92", "\u0C93", "\u0C94", "\u0C95", "\u0C96", "\u0C97", "\u0C98", "\u0C99", "\u0C9A", "\u0C9B", "\u0C9C", "\u0C9D", "\u0C9E", "\u0C9F", "\u0CA0", "\u0CA1", "\u0CA2", "\u0CA3", "\u0CA4", "\u0CA5", "\u0CA6", "\u0CA7", "\u0CA8", "\u0CAA", "\u0CAB", "\u0CAC", "\u0CAD", "\u0CAE", "\u0CAF", "\u0CB0", "\u0CB1", "\u0CB2", "\u0CB3", "\u0CB5", "\u0CB6", "\u0CB7", "\u0CB8", "\u0CB9", "\u0CBD", "\u0CDE", "\u0CE0", "\u0CE1", "\u0D05", "\u0D06", "\u0D07", "\u0D08", "\u0D09", "\u0D0A", "\u0D0B", "\u0D0C", "\u0D0E", "\u0D0F", "\u0D10", "\u0D12", "\u0D13", "\u0D14", "\u0D15", "\u0D16", "\u0D17", "\u0D18", "\u0D19", "\u0D1A", "\u0D1B", "\u0D1C", "\u0D1D", "\u0D1E", "\u0D1F", "\u0D20", "\u0D21", "\u0D22", "\u0D23", "\u0D24", "\u0D25", "\u0D26", "\u0D27", "\u0D28", "\u0D2A", "\u0D2B", "\u0D2C", "\u0D2D", "\u0D2E", "\u0D2F", "\u0D30", "\u0D31", "\u0D32", "\u0D33", "\u0D34", "\u0D35", "\u0D36", "\u0D37", "\u0D38", "\u0D39", "\u0D3D", "\u0D60", "\u0D61", "\u0D7A", "\u0D7B", "\u0D7C", "\u0D7D", "\u0D7E", "\u0D7F", "\u0D85", "\u0D86", "\u0D87", "\u0D88", "\u0D89", "\u0D8A", "\u0D8B", "\u0D8C", "\u0D8D", "\u0D8E", "\u0D8F", "\u0D90", "\u0D91", "\u0D92", "\u0D93", "\u0D94", "\u0D95", "\u0D96", "\u0D9A", "\u0D9B", "\u0D9C", "\u0D9D", "\u0D9E", "\u0D9F", "\u0DA0", "\u0DA1", "\u0DA2", "\u0DA3", "\u0DA4", "\u0DA5", "\u0DA6", "\u0DA7", "\u0DA8", "\u0DA9", "\u0DAA", "\u0DAB", "\u0DAC", "\u0DAD", "\u0DAE", "\u0DAF", "\u0DB0", "\u0DB1", "\u0DB3", "\u0DB4", "\u0DB5", "\u0DB6", "\u0DB7", "\u0DB8", "\u0DB9", "\u0DBA", "\u0DBB", "\u0DBD", "\u0DC0", "\u0DC1", "\u0DC2", "\u0DC3", "\u0DC4", "\u0DC5", "\u0DC6", "\u0E01", "\u0E02", "\u0E03", "\u0E04", "\u0E05", "\u0E06", "\u0E07", "\u0E08", "\u0E09", "\u0E0A", "\u0E0B", "\u0E0C", "\u0E0D", "\u0E0E", "\u0E0F", "\u0E10", "\u0E11", "\u0E12", "\u0E13", "\u0E14", "\u0E15", "\u0E16", "\u0E17", "\u0E18", "\u0E19", "\u0E1A", "\u0E1B", "\u0E1C", "\u0E1D", "\u0E1E", "\u0E1F", "\u0E20", "\u0E21", "\u0E22", "\u0E23", "\u0E24", "\u0E25", "\u0E26", "\u0E27", "\u0E28", "\u0E29", "\u0E2A", "\u0E2B", "\u0E2C", "\u0E2D", "\u0E2E", "\u0E2F", "\u0E30", "\u0E32", "\u0E33", "\u0E40", "\u0E41", "\u0E42", "\u0E43", "\u0E44", "\u0E45", "\u0E81", "\u0E82", "\u0E84", "\u0E87", "\u0E88", "\u0E8A", "\u0E8D", "\u0E94", "\u0E95", "\u0E96", "\u0E97", "\u0E99", "\u0E9A", "\u0E9B", "\u0E9C", "\u0E9D", "\u0E9E", "\u0E9F", "\u0EA1", "\u0EA2", "\u0EA3", "\u0EA5", "\u0EA7", "\u0EAA", "\u0EAB", "\u0EAD", "\u0EAE", "\u0EAF", "\u0EB0", "\u0EB2", "\u0EB3", "\u0EBD", "\u0EC0", "\u0EC1", "\u0EC2", "\u0EC3", "\u0EC4", "\u0EDC", "\u0EDD", "\u0F00", "\u0F40", "\u0F41", "\u0F42", "\u0F43", "\u0F44", "\u0F45", "\u0F46", "\u0F47", "\u0F49", "\u0F4A", "\u0F4B", "\u0F4C", "\u0F4D", "\u0F4E", "\u0F4F", "\u0F50", "\u0F51", "\u0F52", "\u0F53", "\u0F54", "\u0F55", "\u0F56", "\u0F57", "\u0F58", "\u0F59", "\u0F5A", "\u0F5B", "\u0F5C", "\u0F5D", "\u0F5E", "\u0F5F", "\u0F60", "\u0F61", "\u0F62", "\u0F63", "\u0F64", "\u0F65", "\u0F66", "\u0F67", "\u0F68", "\u0F69", "\u0F6A", "\u0F6B", "\u0F6C", "\u0F88", "\u0F89", "\u0F8A", "\u0F8B", "\u1000", "\u1001", "\u1002", "\u1003", "\u1004", "\u1005", "\u1006", "\u1007", "\u1008", "\u1009", "\u100A", "\u100B", "\u100C", "\u100D", "\u100E", "\u100F", "\u1010", "\u1011", "\u1012", "\u1013", "\u1014", "\u1015", "\u1016", "\u1017", "\u1018", "\u1019", "\u101A", "\u101B", "\u101C", "\u101D", "\u101E", "\u101F", "\u1020", "\u1021", "\u1022", "\u1023", "\u1024", "\u1025", "\u1026", "\u1027", "\u1028", "\u1029", "\u102A", "\u103F", "\u1050", "\u1051", "\u1052", "\u1053", "\u1054", "\u1055", "\u105A", "\u105B", "\u105C", "\u105D", "\u1061", "\u1065", "\u1066", "\u106E", "\u106F", "\u1070", "\u1075", "\u1076", "\u1077", "\u1078", "\u1079", "\u107A", "\u107B", "\u107C", "\u107D", "\u107E", "\u107F", "\u1080", "\u1081", "\u108E", "\u10D0", "\u10D1", "\u10D2", "\u10D3", "\u10D4", "\u10D5", "\u10D6", "\u10D7", "\u10D8", "\u10D9", "\u10DA", "\u10DB", "\u10DC", "\u10DD", "\u10DE", "\u10DF", "\u10E0", "\u10E1", "\u10E2", "\u10E3", "\u10E4", "\u10E5", "\u10E6", "\u10E7", "\u10E8", "\u10E9", "\u10EA", "\u10EB", "\u10EC", "\u10ED", "\u10EE", "\u10EF", "\u10F0", "\u10F1", "\u10F2", "\u10F3", "\u10F4", "\u10F5", "\u10F6", "\u10F7", "\u10F8", "\u10F9", "\u10FA", "\u1100", "\u1101", "\u1102", "\u1103", "\u1104", "\u1105", "\u1106", "\u1107", "\u1108", "\u1109", "\u110A", "\u110B", "\u110C", "\u110D", "\u110E", "\u110F", "\u1110", "\u1111", "\u1112", "\u1113", "\u1114", "\u1115", "\u1116", "\u1117", "\u1118", "\u1119", "\u111A", "\u111B", "\u111C", "\u111D", "\u111E", "\u111F", "\u1120", "\u1121", "\u1122", "\u1123", "\u1124", "\u1125", "\u1126", "\u1127", "\u1128", "\u1129", "\u112A", "\u112B", "\u112C", "\u112D", "\u112E", "\u112F", "\u1130", "\u1131", "\u1132", "\u1133", "\u1134", "\u1135", "\u1136", "\u1137", "\u1138", "\u1139", "\u113A", "\u113B", "\u113C", "\u113D", "\u113E", "\u113F", "\u1140", "\u1141", "\u1142", "\u1143", "\u1144", "\u1145", "\u1146", "\u1147", "\u1148", "\u1149", "\u114A", "\u114B", "\u114C", "\u114D", "\u114E", "\u114F", "\u1150", "\u1151", "\u1152", "\u1153", "\u1154", "\u1155", "\u1156", "\u1157", "\u1158", "\u1159", "\u115F", "\u1160", "\u1161", "\u1162", "\u1163", "\u1164", "\u1165", "\u1166", "\u1167", "\u1168", "\u1169", "\u116A", "\u116B", "\u116C", "\u116D", "\u116E", "\u116F", "\u1170", "\u1171", "\u1172", "\u1173", "\u1174", "\u1175", "\u1176", "\u1177", "\u1178", "\u1179", "\u117A", "\u117B", "\u117C", "\u117D", "\u117E", "\u117F", "\u1180", "\u1181", "\u1182", "\u1183", "\u1184", "\u1185", "\u1186", "\u1187", "\u1188", "\u1189", "\u118A", "\u118B", "\u118C", "\u118D", "\u118E", "\u118F", "\u1190", "\u1191", "\u1192", "\u1193", "\u1194", "\u1195", "\u1196", "\u1197", "\u1198", "\u1199", "\u119A", "\u119B", "\u119C", "\u119D", "\u119E", "\u119F", "\u11A0", "\u11A1", "\u11A2", "\u11A8", "\u11A9", "\u11AA", "\u11AB", "\u11AC", "\u11AD", "\u11AE", "\u11AF", "\u11B0", "\u11B1", "\u11B2", "\u11B3", "\u11B4", "\u11B5", "\u11B6", "\u11B7", "\u11B8", "\u11B9", "\u11BA", "\u11BB", "\u11BC", "\u11BD", "\u11BE", "\u11BF", "\u11C0", "\u11C1", "\u11C2", "\u11C3", "\u11C4", "\u11C5", "\u11C6", "\u11C7", "\u11C8", "\u11C9", "\u11CA", "\u11CB", "\u11CC", "\u11CD", "\u11CE", "\u11CF", "\u11D0", "\u11D1", "\u11D2", "\u11D3", "\u11D4", "\u11D5", "\u11D6", "\u11D7", "\u11D8", "\u11D9", "\u11DA", "\u11DB", "\u11DC", "\u11DD", "\u11DE", "\u11DF", "\u11E0", "\u11E1", "\u11E2", "\u11E3", "\u11E4", "\u11E5", "\u11E6", "\u11E7", "\u11E8", "\u11E9", "\u11EA", "\u11EB", "\u11EC", "\u11ED", "\u11EE", "\u11EF", "\u11F0", "\u11F1", "\u11F2", "\u11F3", "\u11F4", "\u11F5", "\u11F6", "\u11F7", "\u11F8", "\u11F9", "\u1200", "\u1201", "\u1202", "\u1203", "\u1204", "\u1205", "\u1206", "\u1207", "\u1208", "\u1209", "\u120A", "\u120B", "\u120C", "\u120D", "\u120E", "\u120F", "\u1210", "\u1211", "\u1212", "\u1213", "\u1214", "\u1215", "\u1216", "\u1217", "\u1218", "\u1219", "\u121A", "\u121B", "\u121C", "\u121D", "\u121E", "\u121F", "\u1220", "\u1221", "\u1222", "\u1223", "\u1224", "\u1225", "\u1226", "\u1227", "\u1228", "\u1229", "\u122A", "\u122B", "\u122C", "\u122D", "\u122E", "\u122F", "\u1230", "\u1231", "\u1232", "\u1233", "\u1234", "\u1235", "\u1236", "\u1237", "\u1238", "\u1239", "\u123A", "\u123B", "\u123C", "\u123D", "\u123E", "\u123F", "\u1240", "\u1241", "\u1242", "\u1243", "\u1244", "\u1245", "\u1246", "\u1247", "\u1248", "\u124A", "\u124B", "\u124C", "\u124D", "\u1250", "\u1251", "\u1252", "\u1253", "\u1254", "\u1255", "\u1256", "\u1258", "\u125A", "\u125B", "\u125C", "\u125D", "\u1260", "\u1261", "\u1262", "\u1263", "\u1264", "\u1265", "\u1266", "\u1267", "\u1268", "\u1269", "\u126A", "\u126B", "\u126C", "\u126D", "\u126E", "\u126F", "\u1270", "\u1271", "\u1272", "\u1273", "\u1274", "\u1275", "\u1276", "\u1277", "\u1278", "\u1279", "\u127A", "\u127B", "\u127C", "\u127D", "\u127E", "\u127F", "\u1280", "\u1281", "\u1282", "\u1283", "\u1284", "\u1285", "\u1286", "\u1287", "\u1288", "\u128A", "\u128B", "\u128C", "\u128D", "\u1290", "\u1291", "\u1292", "\u1293", "\u1294", "\u1295", "\u1296", "\u1297", "\u1298", "\u1299", "\u129A", "\u129B", "\u129C", "\u129D", "\u129E", "\u129F", "\u12A0", "\u12A1", "\u12A2", "\u12A3", "\u12A4", "\u12A5", "\u12A6", "\u12A7", "\u12A8", "\u12A9", "\u12AA", "\u12AB", "\u12AC", "\u12AD", "\u12AE", "\u12AF", "\u12B0", "\u12B2", "\u12B3", "\u12B4", "\u12B5", "\u12B8", "\u12B9", "\u12BA", "\u12BB", "\u12BC", "\u12BD", "\u12BE", "\u12C0", "\u12C2", "\u12C3", "\u12C4", "\u12C5", "\u12C8", "\u12C9", "\u12CA", "\u12CB", "\u12CC", "\u12CD", "\u12CE", "\u12CF", "\u12D0", "\u12D1", "\u12D2", "\u12D3", "\u12D4", "\u12D5", "\u12D6", "\u12D8", "\u12D9", "\u12DA", "\u12DB", "\u12DC", "\u12DD", "\u12DE", "\u12DF", "\u12E0", "\u12E1", "\u12E2", "\u12E3", "\u12E4", "\u12E5", "\u12E6", "\u12E7", "\u12E8", "\u12E9", "\u12EA", "\u12EB", "\u12EC", "\u12ED", "\u12EE", "\u12EF", "\u12F0", "\u12F1", "\u12F2", "\u12F3", "\u12F4", "\u12F5", "\u12F6", "\u12F7", "\u12F8", "\u12F9", "\u12FA", "\u12FB", "\u12FC", "\u12FD", "\u12FE", "\u12FF", "\u1300", "\u1301", "\u1302", "\u1303", "\u1304", "\u1305", "\u1306", "\u1307", "\u1308", "\u1309", "\u130A", "\u130B", "\u130C", "\u130D", "\u130E", "\u130F", "\u1310", "\u1312", "\u1313", "\u1314", "\u1315", "\u1318", "\u1319", "\u131A", "\u131B", "\u131C", "\u131D", "\u131E", "\u131F", "\u1320", "\u1321", "\u1322", "\u1323", "\u1324", "\u1325", "\u1326", "\u1327", "\u1328", "\u1329", "\u132A", "\u132B", "\u132C", "\u132D", "\u132E", "\u132F", "\u1330", "\u1331", "\u1332", "\u1333", "\u1334", "\u1335", "\u1336", "\u1337", "\u1338", "\u1339", "\u133A", "\u133B", "\u133C", "\u133D", "\u133E", "\u133F", "\u1340", "\u1341", "\u1342", "\u1343", "\u1344", "\u1345", "\u1346", "\u1347", "\u1348", "\u1349", "\u134A", "\u134B", "\u134C", "\u134D", "\u134E", "\u134F", "\u1350", "\u1351", "\u1352", "\u1353", "\u1354", "\u1355", "\u1356", "\u1357", "\u1358", "\u1359", "\u135A", "\u1380", "\u1381", "\u1382", "\u1383", "\u1384", "\u1385", "\u1386", "\u1387", "\u1388", "\u1389", "\u138A", "\u138B", "\u138C", "\u138D", "\u138E", "\u138F", "\u13A0", "\u13A1", "\u13A2", "\u13A3", "\u13A4", "\u13A5", "\u13A6", "\u13A7", "\u13A8", "\u13A9", "\u13AA", "\u13AB", "\u13AC", "\u13AD", "\u13AE", "\u13AF", "\u13B0", "\u13B1", "\u13B2", "\u13B3", "\u13B4", "\u13B5", "\u13B6", "\u13B7", "\u13B8", "\u13B9", "\u13BA", "\u13BB", "\u13BC", "\u13BD", "\u13BE", "\u13BF", "\u13C0", "\u13C1", "\u13C2", "\u13C3", "\u13C4", "\u13C5", "\u13C6", "\u13C7", "\u13C8", "\u13C9", "\u13CA", "\u13CB", "\u13CC", "\u13CD", "\u13CE", "\u13CF", "\u13D0", "\u13D1", "\u13D2", "\u13D3", "\u13D4", "\u13D5", "\u13D6", "\u13D7", "\u13D8", "\u13D9", "\u13DA", "\u13DB", "\u13DC", "\u13DD", "\u13DE", "\u13DF", "\u13E0", "\u13E1", "\u13E2", "\u13E3", "\u13E4", "\u13E5", "\u13E6", "\u13E7", "\u13E8", "\u13E9", "\u13EA", "\u13EB", "\u13EC", "\u13ED", "\u13EE", "\u13EF", "\u13F0", "\u13F1", "\u13F2", "\u13F3", "\u13F4", "\u1401", "\u1402", "\u1403", "\u1404", "\u1405", "\u1406", "\u1407", "\u1408", "\u1409", "\u140A", "\u140B", "\u140C", "\u140D", "\u140E", "\u140F", "\u1410", "\u1411", "\u1412", "\u1413", "\u1414", "\u1415", "\u1416", "\u1417", "\u1418", "\u1419", "\u141A", "\u141B", "\u141C", "\u141D", "\u141E", "\u141F", "\u1420", "\u1421", "\u1422", "\u1423", "\u1424", "\u1425", "\u1426", "\u1427", "\u1428", "\u1429", "\u142A", "\u142B", "\u142C", "\u142D", "\u142E", "\u142F", "\u1430", "\u1431", "\u1432", "\u1433", "\u1434", "\u1435", "\u1436", "\u1437", "\u1438", "\u1439", "\u143A", "\u143B", "\u143C", "\u143D", "\u143E", "\u143F", "\u1440", "\u1441", "\u1442", "\u1443", "\u1444", "\u1445", "\u1446", "\u1447", "\u1448", "\u1449", "\u144A", "\u144B", "\u144C", "\u144D", "\u144E", "\u144F", "\u1450", "\u1451", "\u1452", "\u1453", "\u1454", "\u1455", "\u1456", "\u1457", "\u1458", "\u1459", "\u145A", "\u145B", "\u145C", "\u145D", "\u145E", "\u145F", "\u1460", "\u1461", "\u1462", "\u1463", "\u1464", "\u1465", "\u1466", "\u1467", "\u1468", "\u1469", "\u146A", "\u146B", "\u146C", "\u146D", "\u146E", "\u146F", "\u1470", "\u1471", "\u1472", "\u1473", "\u1474", "\u1475", "\u1476", "\u1477", "\u1478", "\u1479", "\u147A", "\u147B", "\u147C", "\u147D", "\u147E", "\u147F", "\u1480", "\u1481", "\u1482", "\u1483", "\u1484", "\u1485", "\u1486", "\u1487", "\u1488", "\u1489", "\u148A", "\u148B", "\u148C", "\u148D", "\u148E", "\u148F", "\u1490", "\u1491", "\u1492", "\u1493", "\u1494", "\u1495", "\u1496", "\u1497", "\u1498", "\u1499", "\u149A", "\u149B", "\u149C", "\u149D", "\u149E", "\u149F", "\u14A0", "\u14A1", "\u14A2", "\u14A3", "\u14A4", "\u14A5", "\u14A6", "\u14A7", "\u14A8", "\u14A9", "\u14AA", "\u14AB", "\u14AC", "\u14AD", "\u14AE", "\u14AF", "\u14B0", "\u14B1", "\u14B2", "\u14B3", "\u14B4", "\u14B5", "\u14B6", "\u14B7", "\u14B8", "\u14B9", "\u14BA", "\u14BB", "\u14BC", "\u14BD", "\u14BE", "\u14BF", "\u14C0", "\u14C1", "\u14C2", "\u14C3", "\u14C4", "\u14C5", "\u14C6", "\u14C7", "\u14C8", "\u14C9", "\u14CA", "\u14CB", "\u14CC", "\u14CD", "\u14CE", "\u14CF", "\u14D0", "\u14D1", "\u14D2", "\u14D3", "\u14D4", "\u14D5", "\u14D6", "\u14D7", "\u14D8", "\u14D9", "\u14DA", "\u14DB", "\u14DC", "\u14DD", "\u14DE", "\u14DF", "\u14E0", "\u14E1", "\u14E2", "\u14E3", "\u14E4", "\u14E5", "\u14E6", "\u14E7", "\u14E8", "\u14E9", "\u14EA", "\u14EB", "\u14EC", "\u14ED", "\u14EE", "\u14EF", "\u14F0", "\u14F1", "\u14F2", "\u14F3", "\u14F4", "\u14F5", "\u14F6", "\u14F7", "\u14F8", "\u14F9", "\u14FA", "\u14FB", "\u14FC", "\u14FD", "\u14FE", "\u14FF", "\u1500", "\u1501", "\u1502", "\u1503", "\u1504", "\u1505", "\u1506", "\u1507", "\u1508", "\u1509", "\u150A", "\u150B", "\u150C", "\u150D", "\u150E", "\u150F", "\u1510", "\u1511", "\u1512", "\u1513", "\u1514", "\u1515", "\u1516", "\u1517", "\u1518", "\u1519", "\u151A", "\u151B", "\u151C", "\u151D", "\u151E", "\u151F", "\u1520", "\u1521", "\u1522", "\u1523", "\u1524", "\u1525", "\u1526", "\u1527", "\u1528", "\u1529", "\u152A", "\u152B", "\u152C", "\u152D", "\u152E", "\u152F", "\u1530", "\u1531", "\u1532", "\u1533", "\u1534", "\u1535", "\u1536", "\u1537", "\u1538", "\u1539", "\u153A", "\u153B", "\u153C", "\u153D", "\u153E", "\u153F", "\u1540", "\u1541", "\u1542", "\u1543", "\u1544", "\u1545", "\u1546", "\u1547", "\u1548", "\u1549", "\u154A", "\u154B", "\u154C", "\u154D", "\u154E", "\u154F", "\u1550", "\u1551", "\u1552", "\u1553", "\u1554", "\u1555", "\u1556", "\u1557", "\u1558", "\u1559", "\u155A", "\u155B", "\u155C", "\u155D", "\u155E", "\u155F", "\u1560", "\u1561", "\u1562", "\u1563", "\u1564", "\u1565", "\u1566", "\u1567", "\u1568", "\u1569", "\u156A", "\u156B", "\u156C", "\u156D", "\u156E", "\u156F", "\u1570", "\u1571", "\u1572", "\u1573", "\u1574", "\u1575", "\u1576", "\u1577", "\u1578", "\u1579", "\u157A", "\u157B", "\u157C", "\u157D", "\u157E", "\u157F", "\u1580", "\u1581", "\u1582", "\u1583", "\u1584", "\u1585", "\u1586", "\u1587", "\u1588", "\u1589", "\u158A", "\u158B", "\u158C", "\u158D", "\u158E", "\u158F", "\u1590", "\u1591", "\u1592", "\u1593", "\u1594", "\u1595", "\u1596", "\u1597", "\u1598", "\u1599", "\u159A", "\u159B", "\u159C", "\u159D", "\u159E", "\u159F", "\u15A0", "\u15A1", "\u15A2", "\u15A3", "\u15A4", "\u15A5", "\u15A6", "\u15A7", "\u15A8", "\u15A9", "\u15AA", "\u15AB", "\u15AC", "\u15AD", "\u15AE", "\u15AF", "\u15B0", "\u15B1", "\u15B2", "\u15B3", "\u15B4", "\u15B5", "\u15B6", "\u15B7", "\u15B8", "\u15B9", "\u15BA", "\u15BB", "\u15BC", "\u15BD", "\u15BE", "\u15BF", "\u15C0", "\u15C1", "\u15C2", "\u15C3", "\u15C4", "\u15C5", "\u15C6", "\u15C7", "\u15C8", "\u15C9", "\u15CA", "\u15CB", "\u15CC", "\u15CD", "\u15CE", "\u15CF", "\u15D0", "\u15D1", "\u15D2", "\u15D3", "\u15D4", "\u15D5", "\u15D6", "\u15D7", "\u15D8", "\u15D9", "\u15DA", "\u15DB", "\u15DC", "\u15DD", "\u15DE", "\u15DF", "\u15E0", "\u15E1", "\u15E2", "\u15E3", "\u15E4", "\u15E5", "\u15E6", "\u15E7", "\u15E8", "\u15E9", "\u15EA", "\u15EB", "\u15EC", "\u15ED", "\u15EE", "\u15EF", "\u15F0", "\u15F1", "\u15F2", "\u15F3", "\u15F4", "\u15F5", "\u15F6", "\u15F7", "\u15F8", "\u15F9", "\u15FA", "\u15FB", "\u15FC", "\u15FD", "\u15FE", "\u15FF", "\u1600", "\u1601", "\u1602", "\u1603", "\u1604", "\u1605", "\u1606", "\u1607", "\u1608", "\u1609", "\u160A", "\u160B", "\u160C", "\u160D", "\u160E", "\u160F", "\u1610", "\u1611", "\u1612", "\u1613", "\u1614", "\u1615", "\u1616", "\u1617", "\u1618", "\u1619", "\u161A", "\u161B", "\u161C", "\u161D", "\u161E", "\u161F", "\u1620", "\u1621", "\u1622", "\u1623", "\u1624", "\u1625", "\u1626", "\u1627", "\u1628", "\u1629", "\u162A", "\u162B", "\u162C", "\u162D", "\u162E", "\u162F", "\u1630", "\u1631", "\u1632", "\u1633", "\u1634", "\u1635", "\u1636", "\u1637", "\u1638", "\u1639", "\u163A", "\u163B", "\u163C", "\u163D", "\u163E", "\u163F", "\u1640", "\u1641", "\u1642", "\u1643", "\u1644", "\u1645", "\u1646", "\u1647", "\u1648", "\u1649", "\u164A", "\u164B", "\u164C", "\u164D", "\u164E", "\u164F", "\u1650", "\u1651", "\u1652", "\u1653", "\u1654", "\u1655", "\u1656", "\u1657", "\u1658", "\u1659", "\u165A", "\u165B", "\u165C", "\u165D", "\u165E", "\u165F", "\u1660", "\u1661", "\u1662", "\u1663", "\u1664", "\u1665", "\u1666", "\u1667", "\u1668", "\u1669", "\u166A", "\u166B", "\u166C", "\u166F", "\u1670", "\u1671", "\u1672", "\u1673", "\u1674", "\u1675", "\u1676", "\u1681", "\u1682", "\u1683", "\u1684", "\u1685", "\u1686", "\u1687", "\u1688", "\u1689", "\u168A", "\u168B", "\u168C", "\u168D", "\u168E", "\u168F", "\u1690", "\u1691", "\u1692", "\u1693", "\u1694", "\u1695", "\u1696", "\u1697", "\u1698", "\u1699", "\u169A", "\u16A0", "\u16A1", "\u16A2", "\u16A3", "\u16A4", "\u16A5", "\u16A6", "\u16A7", "\u16A8", "\u16A9", "\u16AA", "\u16AB", "\u16AC", "\u16AD", "\u16AE", "\u16AF", "\u16B0", "\u16B1", "\u16B2", "\u16B3", "\u16B4", "\u16B5", "\u16B6", "\u16B7", "\u16B8", "\u16B9", "\u16BA", "\u16BB", "\u16BC", "\u16BD", "\u16BE", "\u16BF", "\u16C0", "\u16C1", "\u16C2", "\u16C3", "\u16C4", "\u16C5", "\u16C6", "\u16C7", "\u16C8", "\u16C9", "\u16CA", "\u16CB", "\u16CC", "\u16CD", "\u16CE", "\u16CF", "\u16D0", "\u16D1", "\u16D2", "\u16D3", "\u16D4", "\u16D5", "\u16D6", "\u16D7", "\u16D8", "\u16D9", "\u16DA", "\u16DB", "\u16DC", "\u16DD", "\u16DE", "\u16DF", "\u16E0", "\u16E1", "\u16E2", "\u16E3", "\u16E4", "\u16E5", "\u16E6", "\u16E7", "\u16E8", "\u16E9", "\u16EA", "\u1700", "\u1701", "\u1702", "\u1703", "\u1704", "\u1705", "\u1706", "\u1707", "\u1708", "\u1709", "\u170A", "\u170B", "\u170C", "\u170E", "\u170F", "\u1710", "\u1711", "\u1720", "\u1721", "\u1722", "\u1723", "\u1724", "\u1725", "\u1726", "\u1727", "\u1728", "\u1729", "\u172A", "\u172B", "\u172C", "\u172D", "\u172E", "\u172F", "\u1730", "\u1731", "\u1740", "\u1741", "\u1742", "\u1743", "\u1744", "\u1745", "\u1746", "\u1747", "\u1748", "\u1749", "\u174A", "\u174B", "\u174C", "\u174D", "\u174E", "\u174F", "\u1750", "\u1751", "\u1760", "\u1761", "\u1762", "\u1763", "\u1764", "\u1765", "\u1766", "\u1767", "\u1768", "\u1769", "\u176A", "\u176B", "\u176C", "\u176E", "\u176F", "\u1770", "\u1780", "\u1781", "\u1782", "\u1783", "\u1784", "\u1785", "\u1786", "\u1787", "\u1788", "\u1789", "\u178A", "\u178B", "\u178C", "\u178D", "\u178E", "\u178F", "\u1790", "\u1791", "\u1792", "\u1793", "\u1794", "\u1795", "\u1796", "\u1797", "\u1798", "\u1799", "\u179A", "\u179B", "\u179C", "\u179D", "\u179E", "\u179F", "\u17A0", "\u17A1", "\u17A2", "\u17A3", "\u17A4", "\u17A5", "\u17A6", "\u17A7", "\u17A8", "\u17A9", "\u17AA", "\u17AB", "\u17AC", "\u17AD", "\u17AE", "\u17AF", "\u17B0", "\u17B1", "\u17B2", "\u17B3", "\u17DC", "\u1820", "\u1821", "\u1822", "\u1823", "\u1824", "\u1825", "\u1826", "\u1827", "\u1828", "\u1829", "\u182A", "\u182B", "\u182C", "\u182D", "\u182E", "\u182F", "\u1830", "\u1831", "\u1832", "\u1833", "\u1834", "\u1835", "\u1836", "\u1837", "\u1838", "\u1839", "\u183A", "\u183B", "\u183C", "\u183D", "\u183E", "\u183F", "\u1840", "\u1841", "\u1842", "\u1844", "\u1845", "\u1846", "\u1847", "\u1848", "\u1849", "\u184A", "\u184B", "\u184C", "\u184D", "\u184E", "\u184F", "\u1850", "\u1851", "\u1852", "\u1853", "\u1854", "\u1855", "\u1856", "\u1857", "\u1858", "\u1859", "\u185A", "\u185B", "\u185C", "\u185D", "\u185E", "\u185F", "\u1860", "\u1861", "\u1862", "\u1863", "\u1864", "\u1865", "\u1866", "\u1867", "\u1868", "\u1869", "\u186A", "\u186B", "\u186C", "\u186D", "\u186E", "\u186F", "\u1870", "\u1871", "\u1872", "\u1873", "\u1874", "\u1875", "\u1876", "\u1877", "\u1880", "\u1881", "\u1882", "\u1883", "\u1884", "\u1885", "\u1886", "\u1887", "\u1888", "\u1889", "\u188A", "\u188B", "\u188C", "\u188D", "\u188E", "\u188F", "\u1890", "\u1891", "\u1892", "\u1893", "\u1894", "\u1895", "\u1896", "\u1897", "\u1898", "\u1899", "\u189A", "\u189B", "\u189C", "\u189D", "\u189E", "\u189F", "\u18A0", "\u18A1", "\u18A2", "\u18A3", "\u18A4", "\u18A5", "\u18A6", "\u18A7", "\u18A8", "\u18AA", "\u1900", "\u1901", "\u1902", "\u1903", "\u1904", "\u1905", "\u1906", "\u1907", "\u1908", "\u1909", "\u190A", "\u190B", "\u190C", "\u190D", "\u190E", "\u190F", "\u1910", "\u1911", "\u1912", "\u1913", "\u1914", "\u1915", "\u1916", "\u1917", "\u1918", "\u1919", "\u191A", "\u191B", "\u191C", "\u1950", "\u1951", "\u1952", "\u1953", "\u1954", "\u1955", "\u1956", "\u1957", "\u1958", "\u1959", "\u195A", "\u195B", "\u195C", "\u195D", "\u195E", "\u195F", "\u1960", "\u1961", "\u1962", "\u1963", "\u1964", "\u1965", "\u1966", "\u1967", "\u1968", "\u1969", "\u196A", "\u196B", "\u196C", "\u196D", "\u1970", "\u1971", "\u1972", "\u1973", "\u1974", "\u1980", "\u1981", "\u1982", "\u1983", "\u1984", "\u1985", "\u1986", "\u1987", "\u1988", "\u1989", "\u198A", "\u198B", "\u198C", "\u198D", "\u198E", "\u198F", "\u1990", "\u1991", "\u1992", "\u1993", "\u1994", "\u1995", "\u1996", "\u1997", "\u1998", "\u1999", "\u199A", "\u199B", "\u199C", "\u199D", "\u199E", "\u199F", "\u19A0", "\u19A1", "\u19A2", "\u19A3", "\u19A4", "\u19A5", "\u19A6", "\u19A7", "\u19A8", "\u19A9", "\u19C1", "\u19C2", "\u19C3", "\u19C4", "\u19C5", "\u19C6", "\u19C7", "\u1A00", "\u1A01", "\u1A02", "\u1A03", "\u1A04", "\u1A05", "\u1A06", "\u1A07", "\u1A08", "\u1A09", "\u1A0A", "\u1A0B", "\u1A0C", "\u1A0D", "\u1A0E", "\u1A0F", "\u1A10", "\u1A11", "\u1A12", "\u1A13", "\u1A14", "\u1A15", "\u1A16", "\u1B05", "\u1B06", "\u1B07", "\u1B08", "\u1B09", "\u1B0A", "\u1B0B", "\u1B0C", "\u1B0D", "\u1B0E", "\u1B0F", "\u1B10", "\u1B11", "\u1B12", "\u1B13", "\u1B14", "\u1B15", "\u1B16", "\u1B17", "\u1B18", "\u1B19", "\u1B1A", "\u1B1B", "\u1B1C", "\u1B1D", "\u1B1E", "\u1B1F", "\u1B20", "\u1B21", "\u1B22", "\u1B23", "\u1B24", "\u1B25", "\u1B26", "\u1B27", "\u1B28", "\u1B29", "\u1B2A", "\u1B2B", "\u1B2C", "\u1B2D", "\u1B2E", "\u1B2F", "\u1B30", "\u1B31", "\u1B32", "\u1B33", "\u1B45", "\u1B46", "\u1B47", "\u1B48", "\u1B49", "\u1B4A", "\u1B4B", "\u1B83", "\u1B84", "\u1B85", "\u1B86", "\u1B87", "\u1B88", "\u1B89", "\u1B8A", "\u1B8B", "\u1B8C", "\u1B8D", "\u1B8E", "\u1B8F", "\u1B90", "\u1B91", "\u1B92", "\u1B93", "\u1B94", "\u1B95", "\u1B96", "\u1B97", "\u1B98", "\u1B99", "\u1B9A", "\u1B9B", "\u1B9C", "\u1B9D", "\u1B9E", "\u1B9F", "\u1BA0", "\u1BAE", "\u1BAF", "\u1C00", "\u1C01", "\u1C02", "\u1C03", "\u1C04", "\u1C05", "\u1C06", "\u1C07", "\u1C08", "\u1C09", "\u1C0A", "\u1C0B", "\u1C0C", "\u1C0D", "\u1C0E", "\u1C0F", "\u1C10", "\u1C11", "\u1C12", "\u1C13", "\u1C14", "\u1C15", "\u1C16", "\u1C17", "\u1C18", "\u1C19", "\u1C1A", "\u1C1B", "\u1C1C", "\u1C1D", "\u1C1E", "\u1C1F", "\u1C20", "\u1C21", "\u1C22", "\u1C23", "\u1C4D", "\u1C4E", "\u1C4F", "\u1C5A", "\u1C5B", "\u1C5C", "\u1C5D", "\u1C5E", "\u1C5F", "\u1C60", "\u1C61", "\u1C62", "\u1C63", "\u1C64", "\u1C65", "\u1C66", "\u1C67", "\u1C68", "\u1C69", "\u1C6A", "\u1C6B", "\u1C6C", "\u1C6D", "\u1C6E", "\u1C6F", "\u1C70", "\u1C71", "\u1C72", "\u1C73", "\u1C74", "\u1C75", "\u1C76", "\u1C77", "\u2135", "\u2136", "\u2137", "\u2138", "\u2D30", "\u2D31", "\u2D32", "\u2D33", "\u2D34", "\u2D35", "\u2D36", "\u2D37", "\u2D38", "\u2D39", "\u2D3A", "\u2D3B", "\u2D3C", "\u2D3D", "\u2D3E", "\u2D3F", "\u2D40", "\u2D41", "\u2D42", "\u2D43", "\u2D44", "\u2D45", "\u2D46", "\u2D47", "\u2D48", "\u2D49", "\u2D4A", "\u2D4B", "\u2D4C", "\u2D4D", "\u2D4E", "\u2D4F", "\u2D50", "\u2D51", "\u2D52", "\u2D53", "\u2D54", "\u2D55", "\u2D56", "\u2D57", "\u2D58", "\u2D59", "\u2D5A", "\u2D5B", "\u2D5C", "\u2D5D", "\u2D5E", "\u2D5F", "\u2D60", "\u2D61", "\u2D62", "\u2D63", "\u2D64", "\u2D65", "\u2D80", "\u2D81", "\u2D82", "\u2D83", "\u2D84", "\u2D85", "\u2D86", "\u2D87", "\u2D88", "\u2D89", "\u2D8A", "\u2D8B", "\u2D8C", "\u2D8D", "\u2D8E", "\u2D8F", "\u2D90", "\u2D91", "\u2D92", "\u2D93", "\u2D94", "\u2D95", "\u2D96", "\u2DA0", "\u2DA1", "\u2DA2", "\u2DA3", "\u2DA4", "\u2DA5", "\u2DA6", "\u2DA8", "\u2DA9", "\u2DAA", "\u2DAB", "\u2DAC", "\u2DAD", "\u2DAE", "\u2DB0", "\u2DB1", "\u2DB2", "\u2DB3", "\u2DB4", "\u2DB5", "\u2DB6", "\u2DB8", "\u2DB9", "\u2DBA", "\u2DBB", "\u2DBC", "\u2DBD", "\u2DBE", "\u2DC0", "\u2DC1", "\u2DC2", "\u2DC3", "\u2DC4", "\u2DC5", "\u2DC6", "\u2DC8", "\u2DC9", "\u2DCA", "\u2DCB", "\u2DCC", "\u2DCD", "\u2DCE", "\u2DD0", "\u2DD1", "\u2DD2", "\u2DD3", "\u2DD4", "\u2DD5", "\u2DD6", "\u2DD8", "\u2DD9", "\u2DDA", "\u2DDB", "\u2DDC", "\u2DDD", "\u2DDE", "\u3006", "\u303C", "\u3041", "\u3042", "\u3043", "\u3044", "\u3045", "\u3046", "\u3047", "\u3048", "\u3049", "\u304A", "\u304B", "\u304C", "\u304D", "\u304E", "\u304F", "\u3050", "\u3051", "\u3052", "\u3053", "\u3054", "\u3055", "\u3056", "\u3057", "\u3058", "\u3059", "\u305A", "\u305B", "\u305C", "\u305D", "\u305E", "\u305F", "\u3060", "\u3061", "\u3062", "\u3063", "\u3064", "\u3065", "\u3066", "\u3067", "\u3068", "\u3069", "\u306A", "\u306B", "\u306C", "\u306D", "\u306E", "\u306F", "\u3070", "\u3071", "\u3072", "\u3073", "\u3074", "\u3075", "\u3076", "\u3077", "\u3078", "\u3079", "\u307A", "\u307B", "\u307C", "\u307D", "\u307E", "\u307F", "\u3080", "\u3081", "\u3082", "\u3083", "\u3084", "\u3085", "\u3086", "\u3087", "\u3088", "\u3089", "\u308A", "\u308B", "\u308C", "\u308D", "\u308E", "\u308F", "\u3090", "\u3091", "\u3092", "\u3093", "\u3094", "\u3095", "\u3096", "\u309F", "\u30A1", "\u30A2", "\u30A3", "\u30A4", "\u30A5", "\u30A6", "\u30A7", "\u30A8", "\u30A9", "\u30AA", "\u30AB", "\u30AC", "\u30AD", "\u30AE", "\u30AF", "\u30B0", "\u30B1", "\u30B2", "\u30B3", "\u30B4", "\u30B5", "\u30B6", "\u30B7", "\u30B8", "\u30B9", "\u30BA", "\u30BB", "\u30BC", "\u30BD", "\u30BE", "\u30BF", "\u30C0", "\u30C1", "\u30C2", "\u30C3", "\u30C4", "\u30C5", "\u30C6", "\u30C7", "\u30C8", "\u30C9", "\u30CA", "\u30CB", "\u30CC", "\u30CD", "\u30CE", "\u30CF", "\u30D0", "\u30D1", "\u30D2", "\u30D3", "\u30D4", "\u30D5", "\u30D6", "\u30D7", "\u30D8", "\u30D9", "\u30DA", "\u30DB", "\u30DC", "\u30DD", "\u30DE", "\u30DF", "\u30E0", "\u30E1", "\u30E2", "\u30E3", "\u30E4", "\u30E5", "\u30E6", "\u30E7", "\u30E8", "\u30E9", "\u30EA", "\u30EB", "\u30EC", "\u30ED", "\u30EE", "\u30EF", "\u30F0", "\u30F1", "\u30F2", "\u30F3", "\u30F4", "\u30F5", "\u30F6", "\u30F7", "\u30F8", "\u30F9", "\u30FA", "\u30FF", "\u3105", "\u3106", "\u3107", "\u3108", "\u3109", "\u310A", "\u310B", "\u310C", "\u310D", "\u310E", "\u310F", "\u3110", "\u3111", "\u3112", "\u3113", "\u3114", "\u3115", "\u3116", "\u3117", "\u3118", "\u3119", "\u311A", "\u311B", "\u311C", "\u311D", "\u311E", "\u311F", "\u3120", "\u3121", "\u3122", "\u3123", "\u3124", "\u3125", "\u3126", "\u3127", "\u3128", "\u3129", "\u312A", "\u312B", "\u312C", "\u312D", "\u3131", "\u3132", "\u3133", "\u3134", "\u3135", "\u3136", "\u3137", "\u3138", "\u3139", "\u313A", "\u313B", "\u313C", "\u313D", "\u313E", "\u313F", "\u3140", "\u3141", "\u3142", "\u3143", "\u3144", "\u3145", "\u3146", "\u3147", "\u3148", "\u3149", "\u314A", "\u314B", "\u314C", "\u314D", "\u314E", "\u314F", "\u3150", "\u3151", "\u3152", "\u3153", "\u3154", "\u3155", "\u3156", "\u3157", "\u3158", "\u3159", "\u315A", "\u315B", "\u315C", "\u315D", "\u315E", "\u315F", "\u3160", "\u3161", "\u3162", "\u3163", "\u3164", "\u3165", "\u3166", "\u3167", "\u3168", "\u3169", "\u316A", "\u316B", "\u316C", "\u316D", "\u316E", "\u316F", "\u3170", "\u3171", "\u3172", "\u3173", "\u3174", "\u3175", "\u3176", "\u3177", "\u3178", "\u3179", "\u317A", "\u317B", "\u317C", "\u317D", "\u317E", "\u317F", "\u3180", "\u3181", "\u3182", "\u3183", "\u3184", "\u3185", "\u3186", "\u3187", "\u3188", "\u3189", "\u318A", "\u318B", "\u318C", "\u318D", "\u318E", "\u31A0", "\u31A1", "\u31A2", "\u31A3", "\u31A4", "\u31A5", "\u31A6", "\u31A7", "\u31A8", "\u31A9", "\u31AA", "\u31AB", "\u31AC", "\u31AD", "\u31AE", "\u31AF", "\u31B0", "\u31B1", "\u31B2", "\u31B3", "\u31B4", "\u31B5", "\u31B6", "\u31B7", "\u31F0", "\u31F1", "\u31F2", "\u31F3", "\u31F4", "\u31F5", "\u31F6", "\u31F7", "\u31F8", "\u31F9", "\u31FA", "\u31FB", "\u31FC", "\u31FD", "\u31FE", "\u31FF", "\u3400", "\u4DB5", "\u4E00", "\u9FC3", "\uA000", "\uA001", "\uA002", "\uA003", "\uA004", "\uA005", "\uA006", "\uA007", "\uA008", "\uA009", "\uA00A", "\uA00B", "\uA00C", "\uA00D", "\uA00E", "\uA00F", "\uA010", "\uA011", "\uA012", "\uA013", "\uA014", "\uA016", "\uA017", "\uA018", "\uA019", "\uA01A", "\uA01B", "\uA01C", "\uA01D", "\uA01E", "\uA01F", "\uA020", "\uA021", "\uA022", "\uA023", "\uA024", "\uA025", "\uA026", "\uA027", "\uA028", "\uA029", "\uA02A", "\uA02B", "\uA02C", "\uA02D", "\uA02E", "\uA02F", "\uA030", "\uA031", "\uA032", "\uA033", "\uA034", "\uA035", "\uA036", "\uA037", "\uA038", "\uA039", "\uA03A", "\uA03B", "\uA03C", "\uA03D", "\uA03E", "\uA03F", "\uA040", "\uA041", "\uA042", "\uA043", "\uA044", "\uA045", "\uA046", "\uA047", "\uA048", "\uA049", "\uA04A", "\uA04B", "\uA04C", "\uA04D", "\uA04E", "\uA04F", "\uA050", "\uA051", "\uA052", "\uA053", "\uA054", "\uA055", "\uA056", "\uA057", "\uA058", "\uA059", "\uA05A", "\uA05B", "\uA05C", "\uA05D", "\uA05E", "\uA05F", "\uA060", "\uA061", "\uA062", "\uA063", "\uA064", "\uA065", "\uA066", "\uA067", "\uA068", "\uA069", "\uA06A", "\uA06B", "\uA06C", "\uA06D", "\uA06E", "\uA06F", "\uA070", "\uA071", "\uA072", "\uA073", "\uA074", "\uA075", "\uA076", "\uA077", "\uA078", "\uA079", "\uA07A", "\uA07B", "\uA07C", "\uA07D", "\uA07E", "\uA07F", "\uA080", "\uA081", "\uA082", "\uA083", "\uA084", "\uA085", "\uA086", "\uA087", "\uA088", "\uA089", "\uA08A", "\uA08B", "\uA08C", "\uA08D", "\uA08E", "\uA08F", "\uA090", "\uA091", "\uA092", "\uA093", "\uA094", "\uA095", "\uA096", "\uA097", "\uA098", "\uA099", "\uA09A", "\uA09B", "\uA09C", "\uA09D", "\uA09E", "\uA09F", "\uA0A0", "\uA0A1", "\uA0A2", "\uA0A3", "\uA0A4", "\uA0A5", "\uA0A6", "\uA0A7", "\uA0A8", "\uA0A9", "\uA0AA", "\uA0AB", "\uA0AC", "\uA0AD", "\uA0AE", "\uA0AF", "\uA0B0", "\uA0B1", "\uA0B2", "\uA0B3", "\uA0B4", "\uA0B5", "\uA0B6", "\uA0B7", "\uA0B8", "\uA0B9", "\uA0BA", "\uA0BB", "\uA0BC", "\uA0BD", "\uA0BE", "\uA0BF", "\uA0C0", "\uA0C1", "\uA0C2", "\uA0C3", "\uA0C4", "\uA0C5", "\uA0C6", "\uA0C7", "\uA0C8", "\uA0C9", "\uA0CA", "\uA0CB", "\uA0CC", "\uA0CD", "\uA0CE", "\uA0CF", "\uA0D0", "\uA0D1", "\uA0D2", "\uA0D3", "\uA0D4", "\uA0D5", "\uA0D6", "\uA0D7", "\uA0D8", "\uA0D9", "\uA0DA", "\uA0DB", "\uA0DC", "\uA0DD", "\uA0DE", "\uA0DF", "\uA0E0", "\uA0E1", "\uA0E2", "\uA0E3", "\uA0E4", "\uA0E5", "\uA0E6", "\uA0E7", "\uA0E8", "\uA0E9", "\uA0EA", "\uA0EB", "\uA0EC", "\uA0ED", "\uA0EE", "\uA0EF", "\uA0F0", "\uA0F1", "\uA0F2", "\uA0F3", "\uA0F4", "\uA0F5", "\uA0F6", "\uA0F7", "\uA0F8", "\uA0F9", "\uA0FA", "\uA0FB", "\uA0FC", "\uA0FD", "\uA0FE", "\uA0FF", "\uA100", "\uA101", "\uA102", "\uA103", "\uA104", "\uA105", "\uA106", "\uA107", "\uA108", "\uA109", "\uA10A", "\uA10B", "\uA10C", "\uA10D", "\uA10E", "\uA10F", "\uA110", "\uA111", "\uA112", "\uA113", "\uA114", "\uA115", "\uA116", "\uA117", "\uA118", "\uA119", "\uA11A", "\uA11B", "\uA11C", "\uA11D", "\uA11E", "\uA11F", "\uA120", "\uA121", "\uA122", "\uA123", "\uA124", "\uA125", "\uA126", "\uA127", "\uA128", "\uA129", "\uA12A", "\uA12B", "\uA12C", "\uA12D", "\uA12E", "\uA12F", "\uA130", "\uA131", "\uA132", "\uA133", "\uA134", "\uA135", "\uA136", "\uA137", "\uA138", "\uA139", "\uA13A", "\uA13B", "\uA13C", "\uA13D", "\uA13E", "\uA13F", "\uA140", "\uA141", "\uA142", "\uA143", "\uA144", "\uA145", "\uA146", "\uA147", "\uA148", "\uA149", "\uA14A", "\uA14B", "\uA14C", "\uA14D", "\uA14E", "\uA14F", "\uA150", "\uA151", "\uA152", "\uA153", "\uA154", "\uA155", "\uA156", "\uA157", "\uA158", "\uA159", "\uA15A", "\uA15B", "\uA15C", "\uA15D", "\uA15E", "\uA15F", "\uA160", "\uA161", "\uA162", "\uA163", "\uA164", "\uA165", "\uA166", "\uA167", "\uA168", "\uA169", "\uA16A", "\uA16B", "\uA16C", "\uA16D", "\uA16E", "\uA16F", "\uA170", "\uA171", "\uA172", "\uA173", "\uA174", "\uA175", "\uA176", "\uA177", "\uA178", "\uA179", "\uA17A", "\uA17B", "\uA17C", "\uA17D", "\uA17E", "\uA17F", "\uA180", "\uA181", "\uA182", "\uA183", "\uA184", "\uA185", "\uA186", "\uA187", "\uA188", "\uA189", "\uA18A", "\uA18B", "\uA18C", "\uA18D", "\uA18E", "\uA18F", "\uA190", "\uA191", "\uA192", "\uA193", "\uA194", "\uA195", "\uA196", "\uA197", "\uA198", "\uA199", "\uA19A", "\uA19B", "\uA19C", "\uA19D", "\uA19E", "\uA19F", "\uA1A0", "\uA1A1", "\uA1A2", "\uA1A3", "\uA1A4", "\uA1A5", "\uA1A6", "\uA1A7", "\uA1A8", "\uA1A9", "\uA1AA", "\uA1AB", "\uA1AC", "\uA1AD", "\uA1AE", "\uA1AF"], false, false),
  715. peg$c257 = peg$otherExpectation("Unicode letter number"),
  716. peg$c258 = /^[\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A]/,
  717. peg$c259 = peg$classExpectation(["\u16EE", "\u16EF", "\u16F0", "\u2160", "\u2161", "\u2162", "\u2163", "\u2164", "\u2165", "\u2166", "\u2167", "\u2168", "\u2169", "\u216A", "\u216B", "\u216C", "\u216D", "\u216E", "\u216F", "\u2170", "\u2171", "\u2172", "\u2173", "\u2174", "\u2175", "\u2176", "\u2177", "\u2178", "\u2179", "\u217A", "\u217B", "\u217C", "\u217D", "\u217E", "\u217F", "\u2180", "\u2181", "\u2182", "\u2185", "\u2186", "\u2187", "\u2188", "\u3007", "\u3021", "\u3022", "\u3023", "\u3024", "\u3025", "\u3026", "\u3027", "\u3028", "\u3029", "\u3038", "\u3039", "\u303A"], false, false),
  718. peg$c260 = peg$otherExpectation("Unicode separator, space"),
  719. peg$c261 = /^[ \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/,
  720. peg$c262 = peg$classExpectation([" ", "\xA0", "\u1680", "\u180E", "\u2000", "\u2001", "\u2002", "\u2003", "\u2004", "\u2005", "\u2006", "\u2007", "\u2008", "\u2009", "\u200A", "\u202F", "\u205F", "\u3000"], false, false),
  721. peg$c263 = function(c) {
  722. return c;
  723. },
  724. peg$c264 = function(seq) {
  725. return seq;
  726. },
  727. peg$c265 = "\n",
  728. peg$c266 = peg$literalExpectation("\n", false),
  729. peg$c267 = "\r",
  730. peg$c268 = peg$literalExpectation("\r", false),
  731. peg$c269 = "\u2028",
  732. peg$c270 = peg$literalExpectation("\u2028", false),
  733. peg$c271 = "\u2029",
  734. peg$c272 = peg$literalExpectation("\u2029", false),
  735. peg$c273 = "\r\n",
  736. peg$c274 = peg$literalExpectation("\r\n", false),
  737. peg$c275 = function() {
  738. return '0';
  739. },
  740. peg$c276 = /^['"\\bfnrtv]/,
  741. peg$c277 = peg$classExpectation(["'", "\"", "\\", "b", "f", "n", "r", "t", "v"], false, false),
  742. peg$c278 = "x",
  743. peg$c279 = peg$literalExpectation("x", false),
  744. peg$c280 = peg$anyExpectation(),
  745. peg$c281 = peg$otherExpectation("whitespace"),
  746. peg$c282 = peg$otherExpectation("empty"),
  747. peg$c283 = "",
  748. peg$c284 = /^[\t\x0B\f \xA0\uFEFF]/,
  749. peg$c285 = peg$classExpectation(["\t", "\x0B", "\f", " ", "\xA0", "\uFEFF"], false, false),
  750. peg$currPos = 0,
  751. peg$savedPos = 0,
  752. peg$posDetailsCache = [{ line: 1, column: 1 }],
  753. peg$maxFailPos = 0,
  754. peg$maxFailExpected = [],
  755. peg$silentFails = 0,
  756. peg$result;
  757. if ("startRule" in options) {
  758. if (!(options.startRule in peg$startRuleFunctions)) {
  759. throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
  760. }
  761. peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
  762. }
  763. function text() {
  764. return input.substring(peg$savedPos, peg$currPos);
  765. }
  766. function location() {
  767. return peg$computeLocation(peg$savedPos, peg$currPos);
  768. }
  769. function expected(description, location) {
  770. location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
  771. throw peg$buildStructuredError(
  772. [peg$otherExpectation(description)],
  773. input.substring(peg$savedPos, peg$currPos),
  774. location
  775. );
  776. }
  777. function error(message, location) {
  778. location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
  779. throw peg$buildSimpleError(message, location);
  780. }
  781. function peg$literalExpectation(text, ignoreCase) {
  782. return { type: "literal", text: text, ignoreCase: ignoreCase };
  783. }
  784. function peg$classExpectation(parts, inverted, ignoreCase) {
  785. return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
  786. }
  787. function peg$anyExpectation() {
  788. return { type: "any" };
  789. }
  790. function peg$endExpectation() {
  791. return { type: "end" };
  792. }
  793. function peg$otherExpectation(description) {
  794. return { type: "other", description: description };
  795. }
  796. function peg$computePosDetails(pos) {
  797. var details = peg$posDetailsCache[pos], p;
  798. if (details) {
  799. return details;
  800. } else {
  801. p = pos - 1;
  802. while (!peg$posDetailsCache[p]) {
  803. p--;
  804. }
  805. details = peg$posDetailsCache[p];
  806. details = {
  807. line: details.line,
  808. column: details.column
  809. };
  810. while (p < pos) {
  811. if (input.charCodeAt(p) === 10) {
  812. details.line++;
  813. details.column = 1;
  814. } else {
  815. details.column++;
  816. }
  817. p++;
  818. }
  819. peg$posDetailsCache[pos] = details;
  820. return details;
  821. }
  822. }
  823. function peg$computeLocation(startPos, endPos) {
  824. var startPosDetails = peg$computePosDetails(startPos),
  825. endPosDetails = peg$computePosDetails(endPos);
  826. return {
  827. start: {
  828. offset: startPos,
  829. line: startPosDetails.line,
  830. column: startPosDetails.column
  831. },
  832. end: {
  833. offset: endPos,
  834. line: endPosDetails.line,
  835. column: endPosDetails.column
  836. }
  837. };
  838. }
  839. function peg$fail(expected) {
  840. if (peg$currPos < peg$maxFailPos) { return; }
  841. if (peg$currPos > peg$maxFailPos) {
  842. peg$maxFailPos = peg$currPos;
  843. peg$maxFailExpected = [];
  844. }
  845. peg$maxFailExpected.push(expected);
  846. }
  847. function peg$buildSimpleError(message, location) {
  848. return new peg$SyntaxError(message, null, null, location);
  849. }
  850. function peg$buildStructuredError(expected, found, location) {
  851. return new peg$SyntaxError(
  852. peg$SyntaxError.buildMessage(expected, found),
  853. expected,
  854. found,
  855. location
  856. );
  857. }
  858. function peg$parseTypeExpression() {
  859. var s0, s1, s2, s3, s4;
  860. s0 = peg$parseTypeUnionLegacySyntax();
  861. if (s0 === peg$FAILED) {
  862. s0 = peg$currPos;
  863. s1 = peg$parseRepeatable();
  864. if (s1 === peg$FAILED) {
  865. s1 = null;
  866. }
  867. if (s1 !== peg$FAILED) {
  868. s2 = peg$parseUnknownLiteral();
  869. if (s2 !== peg$FAILED) {
  870. s3 = peg$currPos;
  871. peg$silentFails++;
  872. s4 = peg$parseBasicTypeExpression();
  873. peg$silentFails--;
  874. if (s4 === peg$FAILED) {
  875. s3 = void 0;
  876. } else {
  877. peg$currPos = s3;
  878. s3 = peg$FAILED;
  879. }
  880. if (s3 !== peg$FAILED) {
  881. peg$savedPos = s0;
  882. s1 = peg$c0(s1, s2);
  883. s0 = s1;
  884. } else {
  885. peg$currPos = s0;
  886. s0 = peg$FAILED;
  887. }
  888. } else {
  889. peg$currPos = s0;
  890. s0 = peg$FAILED;
  891. }
  892. } else {
  893. peg$currPos = s0;
  894. s0 = peg$FAILED;
  895. }
  896. if (s0 === peg$FAILED) {
  897. s0 = peg$currPos;
  898. s1 = peg$parseRepeatable();
  899. if (s1 === peg$FAILED) {
  900. s1 = null;
  901. }
  902. if (s1 !== peg$FAILED) {
  903. if (input.charCodeAt(peg$currPos) === 63) {
  904. s2 = peg$c1;
  905. peg$currPos++;
  906. } else {
  907. s2 = peg$FAILED;
  908. if (peg$silentFails === 0) { peg$fail(peg$c2); }
  909. }
  910. if (s2 === peg$FAILED) {
  911. if (input.charCodeAt(peg$currPos) === 33) {
  912. s2 = peg$c3;
  913. peg$currPos++;
  914. } else {
  915. s2 = peg$FAILED;
  916. if (peg$silentFails === 0) { peg$fail(peg$c4); }
  917. }
  918. }
  919. if (s2 !== peg$FAILED) {
  920. s3 = peg$parseBasicTypeExpressionNonRepeatable();
  921. if (s3 !== peg$FAILED) {
  922. peg$savedPos = s0;
  923. s1 = peg$c5(s1, s2, s3);
  924. s0 = s1;
  925. } else {
  926. peg$currPos = s0;
  927. s0 = peg$FAILED;
  928. }
  929. } else {
  930. peg$currPos = s0;
  931. s0 = peg$FAILED;
  932. }
  933. } else {
  934. peg$currPos = s0;
  935. s0 = peg$FAILED;
  936. }
  937. if (s0 === peg$FAILED) {
  938. s0 = peg$currPos;
  939. s1 = peg$parseBasicTypeExpression();
  940. if (s1 !== peg$FAILED) {
  941. s2 = peg$parseOptional();
  942. if (s2 === peg$FAILED) {
  943. s2 = null;
  944. }
  945. if (s2 !== peg$FAILED) {
  946. if (input.charCodeAt(peg$currPos) === 63) {
  947. s3 = peg$c1;
  948. peg$currPos++;
  949. } else {
  950. s3 = peg$FAILED;
  951. if (peg$silentFails === 0) { peg$fail(peg$c2); }
  952. }
  953. if (s3 === peg$FAILED) {
  954. if (input.charCodeAt(peg$currPos) === 33) {
  955. s3 = peg$c3;
  956. peg$currPos++;
  957. } else {
  958. s3 = peg$FAILED;
  959. if (peg$silentFails === 0) { peg$fail(peg$c4); }
  960. }
  961. }
  962. if (s3 !== peg$FAILED) {
  963. s4 = peg$parseOptional();
  964. if (s4 === peg$FAILED) {
  965. s4 = null;
  966. }
  967. if (s4 !== peg$FAILED) {
  968. peg$savedPos = s0;
  969. s1 = peg$c6(s1, s2, s3, s4);
  970. s0 = s1;
  971. } else {
  972. peg$currPos = s0;
  973. s0 = peg$FAILED;
  974. }
  975. } else {
  976. peg$currPos = s0;
  977. s0 = peg$FAILED;
  978. }
  979. } else {
  980. peg$currPos = s0;
  981. s0 = peg$FAILED;
  982. }
  983. } else {
  984. peg$currPos = s0;
  985. s0 = peg$FAILED;
  986. }
  987. if (s0 === peg$FAILED) {
  988. s0 = peg$currPos;
  989. s1 = peg$parseBasicTypeExpression();
  990. if (s1 !== peg$FAILED) {
  991. if (input.charCodeAt(peg$currPos) === 63) {
  992. s2 = peg$c1;
  993. peg$currPos++;
  994. } else {
  995. s2 = peg$FAILED;
  996. if (peg$silentFails === 0) { peg$fail(peg$c2); }
  997. }
  998. if (s2 === peg$FAILED) {
  999. if (input.charCodeAt(peg$currPos) === 33) {
  1000. s2 = peg$c3;
  1001. peg$currPos++;
  1002. } else {
  1003. s2 = peg$FAILED;
  1004. if (peg$silentFails === 0) { peg$fail(peg$c4); }
  1005. }
  1006. }
  1007. if (s2 === peg$FAILED) {
  1008. s2 = null;
  1009. }
  1010. if (s2 !== peg$FAILED) {
  1011. peg$savedPos = s0;
  1012. s1 = peg$c7(s1, s2);
  1013. s0 = s1;
  1014. } else {
  1015. peg$currPos = s0;
  1016. s0 = peg$FAILED;
  1017. }
  1018. } else {
  1019. peg$currPos = s0;
  1020. s0 = peg$FAILED;
  1021. }
  1022. }
  1023. }
  1024. }
  1025. }
  1026. return s0;
  1027. }
  1028. function peg$parseBasicTypeExpression() {
  1029. var s0;
  1030. s0 = peg$parseTypeUnion();
  1031. if (s0 === peg$FAILED) {
  1032. s0 = peg$parseRestrictedTypeExpression();
  1033. }
  1034. return s0;
  1035. }
  1036. function peg$parseRestrictedTypeExpression() {
  1037. var s0;
  1038. s0 = peg$parseFunctionType();
  1039. if (s0 === peg$FAILED) {
  1040. s0 = peg$parseRecordType();
  1041. if (s0 === peg$FAILED) {
  1042. s0 = peg$parseLiteralType();
  1043. if (s0 === peg$FAILED) {
  1044. s0 = peg$parseNameExpressionType();
  1045. }
  1046. }
  1047. }
  1048. return s0;
  1049. }
  1050. function peg$parseBasicTypeExpressionNonRepeatable() {
  1051. var s0;
  1052. s0 = peg$parseTypeUnionNonRepeatable();
  1053. if (s0 === peg$FAILED) {
  1054. s0 = peg$parseRestrictedTypeExpressionNonRepeatable();
  1055. }
  1056. return s0;
  1057. }
  1058. function peg$parseRestrictedTypeExpressionNonRepeatable() {
  1059. var s0;
  1060. s0 = peg$parseFunctionTypeNonRepeatable();
  1061. if (s0 === peg$FAILED) {
  1062. s0 = peg$parseRecordTypeNonRepeatable();
  1063. if (s0 === peg$FAILED) {
  1064. s0 = peg$parseLiteralTypeNonRepeatable();
  1065. if (s0 === peg$FAILED) {
  1066. s0 = peg$parseNameExpressionTypeNonRepeatable();
  1067. }
  1068. }
  1069. }
  1070. return s0;
  1071. }
  1072. function peg$parseModifiedRestrictedTypeExpression() {
  1073. var s0;
  1074. s0 = peg$parseModifiedRestrictedTypeExpressionRepeatable();
  1075. if (s0 === peg$FAILED) {
  1076. s0 = peg$parseModifiedRestrictedTypeExpressionNonRepeatable();
  1077. }
  1078. return s0;
  1079. }
  1080. function peg$parseModifiedRestrictedTypeExpressionNonRepeatable() {
  1081. var s0, s1, s2;
  1082. s0 = peg$currPos;
  1083. if (input.charCodeAt(peg$currPos) === 63) {
  1084. s1 = peg$c1;
  1085. peg$currPos++;
  1086. } else {
  1087. s1 = peg$FAILED;
  1088. if (peg$silentFails === 0) { peg$fail(peg$c2); }
  1089. }
  1090. if (s1 === peg$FAILED) {
  1091. if (input.charCodeAt(peg$currPos) === 33) {
  1092. s1 = peg$c3;
  1093. peg$currPos++;
  1094. } else {
  1095. s1 = peg$FAILED;
  1096. if (peg$silentFails === 0) { peg$fail(peg$c4); }
  1097. }
  1098. }
  1099. if (s1 === peg$FAILED) {
  1100. s1 = null;
  1101. }
  1102. if (s1 !== peg$FAILED) {
  1103. s2 = peg$parseRestrictedTypeExpressionNonRepeatable();
  1104. if (s2 !== peg$FAILED) {
  1105. peg$savedPos = s0;
  1106. s1 = peg$c8(s1, s2);
  1107. s0 = s1;
  1108. } else {
  1109. peg$currPos = s0;
  1110. s0 = peg$FAILED;
  1111. }
  1112. } else {
  1113. peg$currPos = s0;
  1114. s0 = peg$FAILED;
  1115. }
  1116. if (s0 === peg$FAILED) {
  1117. s0 = peg$currPos;
  1118. s1 = peg$parseRestrictedTypeExpressionNonRepeatable();
  1119. if (s1 !== peg$FAILED) {
  1120. if (input.charCodeAt(peg$currPos) === 63) {
  1121. s2 = peg$c1;
  1122. peg$currPos++;
  1123. } else {
  1124. s2 = peg$FAILED;
  1125. if (peg$silentFails === 0) { peg$fail(peg$c2); }
  1126. }
  1127. if (s2 === peg$FAILED) {
  1128. if (input.charCodeAt(peg$currPos) === 33) {
  1129. s2 = peg$c3;
  1130. peg$currPos++;
  1131. } else {
  1132. s2 = peg$FAILED;
  1133. if (peg$silentFails === 0) { peg$fail(peg$c4); }
  1134. }
  1135. }
  1136. if (s2 === peg$FAILED) {
  1137. s2 = null;
  1138. }
  1139. if (s2 !== peg$FAILED) {
  1140. peg$savedPos = s0;
  1141. s1 = peg$c9(s1, s2);
  1142. s0 = s1;
  1143. } else {
  1144. peg$currPos = s0;
  1145. s0 = peg$FAILED;
  1146. }
  1147. } else {
  1148. peg$currPos = s0;
  1149. s0 = peg$FAILED;
  1150. }
  1151. }
  1152. return s0;
  1153. }
  1154. function peg$parseModifiedRestrictedTypeExpressionRepeatable() {
  1155. var s0, s1, s2;
  1156. s0 = peg$currPos;
  1157. s1 = peg$parseRepeatable();
  1158. if (s1 !== peg$FAILED) {
  1159. s2 = peg$parseModifiedRestrictedTypeExpressionNonRepeatable();
  1160. if (s2 !== peg$FAILED) {
  1161. peg$savedPos = s0;
  1162. s1 = peg$c10(s2);
  1163. s0 = s1;
  1164. } else {
  1165. peg$currPos = s0;
  1166. s0 = peg$FAILED;
  1167. }
  1168. } else {
  1169. peg$currPos = s0;
  1170. s0 = peg$FAILED;
  1171. }
  1172. return s0;
  1173. }
  1174. function peg$parseLiteralType() {
  1175. var s0;
  1176. s0 = peg$parseLiteralTypeRepeatable();
  1177. if (s0 === peg$FAILED) {
  1178. s0 = peg$parseLiteralTypeNonRepeatable();
  1179. }
  1180. return s0;
  1181. }
  1182. function peg$parseLiteralTypeNonRepeatable() {
  1183. var s0, s1, s2;
  1184. s0 = peg$currPos;
  1185. s1 = peg$parseLiteral();
  1186. if (s1 !== peg$FAILED) {
  1187. s2 = peg$parseOptional();
  1188. if (s2 === peg$FAILED) {
  1189. s2 = null;
  1190. }
  1191. if (s2 !== peg$FAILED) {
  1192. peg$savedPos = s0;
  1193. s1 = peg$c11(s1, s2);
  1194. s0 = s1;
  1195. } else {
  1196. peg$currPos = s0;
  1197. s0 = peg$FAILED;
  1198. }
  1199. } else {
  1200. peg$currPos = s0;
  1201. s0 = peg$FAILED;
  1202. }
  1203. return s0;
  1204. }
  1205. function peg$parseLiteralTypeRepeatable() {
  1206. var s0, s1, s2;
  1207. s0 = peg$currPos;
  1208. s1 = peg$parseRepeatable();
  1209. if (s1 !== peg$FAILED) {
  1210. s2 = peg$parseLiteralTypeNonRepeatable();
  1211. if (s2 !== peg$FAILED) {
  1212. peg$savedPos = s0;
  1213. s1 = peg$c12(s2);
  1214. s0 = s1;
  1215. } else {
  1216. peg$currPos = s0;
  1217. s0 = peg$FAILED;
  1218. }
  1219. } else {
  1220. peg$currPos = s0;
  1221. s0 = peg$FAILED;
  1222. }
  1223. return s0;
  1224. }
  1225. function peg$parseLiteral() {
  1226. var s0, s1;
  1227. s0 = peg$currPos;
  1228. if (input.charCodeAt(peg$currPos) === 42) {
  1229. s1 = peg$c13;
  1230. peg$currPos++;
  1231. } else {
  1232. s1 = peg$FAILED;
  1233. if (peg$silentFails === 0) { peg$fail(peg$c14); }
  1234. }
  1235. if (s1 !== peg$FAILED) {
  1236. peg$savedPos = s0;
  1237. s1 = peg$c15();
  1238. }
  1239. s0 = s1;
  1240. if (s0 === peg$FAILED) {
  1241. s0 = peg$parseUnknownLiteral();
  1242. if (s0 === peg$FAILED) {
  1243. s0 = peg$currPos;
  1244. s1 = peg$parseNullLiteral();
  1245. if (s1 !== peg$FAILED) {
  1246. peg$savedPos = s0;
  1247. s1 = peg$c16();
  1248. }
  1249. s0 = s1;
  1250. if (s0 === peg$FAILED) {
  1251. s0 = peg$currPos;
  1252. s1 = peg$parseUndefinedLiteral();
  1253. if (s1 !== peg$FAILED) {
  1254. peg$savedPos = s0;
  1255. s1 = peg$c17();
  1256. }
  1257. s0 = s1;
  1258. }
  1259. }
  1260. }
  1261. return s0;
  1262. }
  1263. function peg$parseRepeatable() {
  1264. var s0, s1;
  1265. s0 = peg$currPos;
  1266. if (input.substr(peg$currPos, 3) === peg$c18) {
  1267. s1 = peg$c18;
  1268. peg$currPos += 3;
  1269. } else {
  1270. s1 = peg$FAILED;
  1271. if (peg$silentFails === 0) { peg$fail(peg$c19); }
  1272. }
  1273. if (s1 !== peg$FAILED) {
  1274. peg$savedPos = s0;
  1275. s1 = peg$c20();
  1276. }
  1277. s0 = s1;
  1278. return s0;
  1279. }
  1280. function peg$parseOptional() {
  1281. var s0, s1;
  1282. s0 = peg$currPos;
  1283. if (input.charCodeAt(peg$currPos) === 61) {
  1284. s1 = peg$c21;
  1285. peg$currPos++;
  1286. } else {
  1287. s1 = peg$FAILED;
  1288. if (peg$silentFails === 0) { peg$fail(peg$c22); }
  1289. }
  1290. if (s1 !== peg$FAILED) {
  1291. peg$savedPos = s0;
  1292. s1 = peg$c23();
  1293. }
  1294. s0 = s1;
  1295. return s0;
  1296. }
  1297. function peg$parseNameExpressionType() {
  1298. var s0;
  1299. s0 = peg$parseNameExpressionTypeRepeatable();
  1300. if (s0 === peg$FAILED) {
  1301. s0 = peg$parseNameExpressionTypeNonRepeatable();
  1302. }
  1303. return s0;
  1304. }
  1305. function peg$parseNameExpressionTypeNonRepeatable() {
  1306. var s0, s1, s2, s3;
  1307. s0 = peg$currPos;
  1308. s1 = peg$parseNameExpression();
  1309. if (s1 === peg$FAILED) {
  1310. s1 = peg$parseReservedWordNameExpressionTypeNonRepeatable();
  1311. }
  1312. if (s1 !== peg$FAILED) {
  1313. s2 = [];
  1314. if (input.substr(peg$currPos, 2) === peg$c24) {
  1315. s3 = peg$c24;
  1316. peg$currPos += 2;
  1317. } else {
  1318. s3 = peg$FAILED;
  1319. if (peg$silentFails === 0) { peg$fail(peg$c25); }
  1320. }
  1321. if (s3 !== peg$FAILED) {
  1322. while (s3 !== peg$FAILED) {
  1323. s2.push(s3);
  1324. if (input.substr(peg$currPos, 2) === peg$c24) {
  1325. s3 = peg$c24;
  1326. peg$currPos += 2;
  1327. } else {
  1328. s3 = peg$FAILED;
  1329. if (peg$silentFails === 0) { peg$fail(peg$c25); }
  1330. }
  1331. }
  1332. } else {
  1333. s2 = peg$FAILED;
  1334. }
  1335. if (s2 !== peg$FAILED) {
  1336. peg$savedPos = s0;
  1337. s1 = peg$c26(s1, s2);
  1338. s0 = s1;
  1339. } else {
  1340. peg$currPos = s0;
  1341. s0 = peg$FAILED;
  1342. }
  1343. } else {
  1344. peg$currPos = s0;
  1345. s0 = peg$FAILED;
  1346. }
  1347. if (s0 === peg$FAILED) {
  1348. s0 = peg$currPos;
  1349. s1 = peg$parseNameExpression();
  1350. if (s1 !== peg$FAILED) {
  1351. s2 = peg$parseTypeApplication();
  1352. if (s2 === peg$FAILED) {
  1353. s2 = null;
  1354. }
  1355. if (s2 !== peg$FAILED) {
  1356. s3 = peg$parseOptional();
  1357. if (s3 === peg$FAILED) {
  1358. s3 = null;
  1359. }
  1360. if (s3 !== peg$FAILED) {
  1361. peg$savedPos = s0;
  1362. s1 = peg$c27(s1, s2, s3);
  1363. s0 = s1;
  1364. } else {
  1365. peg$currPos = s0;
  1366. s0 = peg$FAILED;
  1367. }
  1368. } else {
  1369. peg$currPos = s0;
  1370. s0 = peg$FAILED;
  1371. }
  1372. } else {
  1373. peg$currPos = s0;
  1374. s0 = peg$FAILED;
  1375. }
  1376. if (s0 === peg$FAILED) {
  1377. s0 = peg$parseReservedWordNameExpressionTypeNonRepeatable();
  1378. }
  1379. }
  1380. return s0;
  1381. }
  1382. function peg$parseNameExpressionTypeRepeatable() {
  1383. var s0, s1, s2;
  1384. s0 = peg$currPos;
  1385. s1 = peg$parseRepeatable();
  1386. if (s1 !== peg$FAILED) {
  1387. s2 = peg$parseNameExpressionTypeNonRepeatable();
  1388. if (s2 !== peg$FAILED) {
  1389. peg$savedPos = s0;
  1390. s1 = peg$c28(s2);
  1391. s0 = s1;
  1392. } else {
  1393. peg$currPos = s0;
  1394. s0 = peg$FAILED;
  1395. }
  1396. } else {
  1397. peg$currPos = s0;
  1398. s0 = peg$FAILED;
  1399. }
  1400. return s0;
  1401. }
  1402. function peg$parseReservedWordNameExpressionType() {
  1403. var s0;
  1404. s0 = peg$parseReservedWordNameExpressionTypeRepeatable();
  1405. if (s0 === peg$FAILED) {
  1406. s0 = peg$parseReservedWordNameExpressionTypeNonRepeatable();
  1407. }
  1408. return s0;
  1409. }
  1410. function peg$parseReservedWordNameExpressionTypeNonRepeatable() {
  1411. var s0, s1, s2;
  1412. s0 = peg$currPos;
  1413. s1 = peg$parseReservedWordNameExpression();
  1414. if (s1 !== peg$FAILED) {
  1415. s2 = peg$parseOptional();
  1416. if (s2 === peg$FAILED) {
  1417. s2 = null;
  1418. }
  1419. if (s2 !== peg$FAILED) {
  1420. peg$savedPos = s0;
  1421. s1 = peg$c29(s1, s2);
  1422. s0 = s1;
  1423. } else {
  1424. peg$currPos = s0;
  1425. s0 = peg$FAILED;
  1426. }
  1427. } else {
  1428. peg$currPos = s0;
  1429. s0 = peg$FAILED;
  1430. }
  1431. return s0;
  1432. }
  1433. function peg$parseReservedWordNameExpressionTypeRepeatable() {
  1434. var s0, s1, s2;
  1435. s0 = peg$currPos;
  1436. s1 = peg$parseRepeatable();
  1437. if (s1 !== peg$FAILED) {
  1438. s2 = peg$parseReservedWordNameExpressionTypeNonRepeatable();
  1439. if (s2 !== peg$FAILED) {
  1440. peg$savedPos = s0;
  1441. s1 = peg$c28(s2);
  1442. s0 = s1;
  1443. } else {
  1444. peg$currPos = s0;
  1445. s0 = peg$FAILED;
  1446. }
  1447. } else {
  1448. peg$currPos = s0;
  1449. s0 = peg$FAILED;
  1450. }
  1451. return s0;
  1452. }
  1453. function peg$parseTypeApplication() {
  1454. var s0, s1, s2, s3, s4, s5, s6;
  1455. s0 = peg$currPos;
  1456. if (input.charCodeAt(peg$currPos) === 46) {
  1457. s1 = peg$c30;
  1458. peg$currPos++;
  1459. } else {
  1460. s1 = peg$FAILED;
  1461. if (peg$silentFails === 0) { peg$fail(peg$c31); }
  1462. }
  1463. if (s1 === peg$FAILED) {
  1464. s1 = null;
  1465. }
  1466. if (s1 !== peg$FAILED) {
  1467. if (input.charCodeAt(peg$currPos) === 60) {
  1468. s2 = peg$c32;
  1469. peg$currPos++;
  1470. } else {
  1471. s2 = peg$FAILED;
  1472. if (peg$silentFails === 0) { peg$fail(peg$c33); }
  1473. }
  1474. if (s2 !== peg$FAILED) {
  1475. s3 = peg$parse_();
  1476. if (s3 !== peg$FAILED) {
  1477. s4 = peg$parseTypeExpressionList();
  1478. if (s4 !== peg$FAILED) {
  1479. s5 = peg$parse_();
  1480. if (s5 !== peg$FAILED) {
  1481. if (input.charCodeAt(peg$currPos) === 62) {
  1482. s6 = peg$c34;
  1483. peg$currPos++;
  1484. } else {
  1485. s6 = peg$FAILED;
  1486. if (peg$silentFails === 0) { peg$fail(peg$c35); }
  1487. }
  1488. if (s6 !== peg$FAILED) {
  1489. peg$savedPos = s0;
  1490. s1 = peg$c36(s1, s4);
  1491. s0 = s1;
  1492. } else {
  1493. peg$currPos = s0;
  1494. s0 = peg$FAILED;
  1495. }
  1496. } else {
  1497. peg$currPos = s0;
  1498. s0 = peg$FAILED;
  1499. }
  1500. } else {
  1501. peg$currPos = s0;
  1502. s0 = peg$FAILED;
  1503. }
  1504. } else {
  1505. peg$currPos = s0;
  1506. s0 = peg$FAILED;
  1507. }
  1508. } else {
  1509. peg$currPos = s0;
  1510. s0 = peg$FAILED;
  1511. }
  1512. } else {
  1513. peg$currPos = s0;
  1514. s0 = peg$FAILED;
  1515. }
  1516. return s0;
  1517. }
  1518. function peg$parseTypeExpressionList() {
  1519. var s0, s1, s2, s3, s4, s5, s6, s7;
  1520. s0 = peg$currPos;
  1521. s1 = peg$parseTypeExpression();
  1522. if (s1 !== peg$FAILED) {
  1523. s2 = [];
  1524. s3 = peg$currPos;
  1525. s4 = peg$parse_();
  1526. if (s4 !== peg$FAILED) {
  1527. if (input.charCodeAt(peg$currPos) === 44) {
  1528. s5 = peg$c37;
  1529. peg$currPos++;
  1530. } else {
  1531. s5 = peg$FAILED;
  1532. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  1533. }
  1534. if (s5 !== peg$FAILED) {
  1535. s6 = peg$parse_();
  1536. if (s6 !== peg$FAILED) {
  1537. s7 = peg$parseTypeExpression();
  1538. if (s7 !== peg$FAILED) {
  1539. s4 = [s4, s5, s6, s7];
  1540. s3 = s4;
  1541. } else {
  1542. peg$currPos = s3;
  1543. s3 = peg$FAILED;
  1544. }
  1545. } else {
  1546. peg$currPos = s3;
  1547. s3 = peg$FAILED;
  1548. }
  1549. } else {
  1550. peg$currPos = s3;
  1551. s3 = peg$FAILED;
  1552. }
  1553. } else {
  1554. peg$currPos = s3;
  1555. s3 = peg$FAILED;
  1556. }
  1557. while (s3 !== peg$FAILED) {
  1558. s2.push(s3);
  1559. s3 = peg$currPos;
  1560. s4 = peg$parse_();
  1561. if (s4 !== peg$FAILED) {
  1562. if (input.charCodeAt(peg$currPos) === 44) {
  1563. s5 = peg$c37;
  1564. peg$currPos++;
  1565. } else {
  1566. s5 = peg$FAILED;
  1567. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  1568. }
  1569. if (s5 !== peg$FAILED) {
  1570. s6 = peg$parse_();
  1571. if (s6 !== peg$FAILED) {
  1572. s7 = peg$parseTypeExpression();
  1573. if (s7 !== peg$FAILED) {
  1574. s4 = [s4, s5, s6, s7];
  1575. s3 = s4;
  1576. } else {
  1577. peg$currPos = s3;
  1578. s3 = peg$FAILED;
  1579. }
  1580. } else {
  1581. peg$currPos = s3;
  1582. s3 = peg$FAILED;
  1583. }
  1584. } else {
  1585. peg$currPos = s3;
  1586. s3 = peg$FAILED;
  1587. }
  1588. } else {
  1589. peg$currPos = s3;
  1590. s3 = peg$FAILED;
  1591. }
  1592. }
  1593. if (s2 !== peg$FAILED) {
  1594. peg$savedPos = s0;
  1595. s1 = peg$c39(s1, s2);
  1596. s0 = s1;
  1597. } else {
  1598. peg$currPos = s0;
  1599. s0 = peg$FAILED;
  1600. }
  1601. } else {
  1602. peg$currPos = s0;
  1603. s0 = peg$FAILED;
  1604. }
  1605. return s0;
  1606. }
  1607. function peg$parseFunctionType() {
  1608. var s0;
  1609. s0 = peg$parseFunctionTypeRepeatable();
  1610. if (s0 === peg$FAILED) {
  1611. s0 = peg$parseFunctionTypeNonRepeatable();
  1612. }
  1613. return s0;
  1614. }
  1615. function peg$parseFunctionTypeNonRepeatable() {
  1616. var s0, s1, s2, s3, s4, s5;
  1617. s0 = peg$currPos;
  1618. s1 = peg$parseFunctionLiteral();
  1619. if (s1 !== peg$FAILED) {
  1620. if (input.substr(peg$currPos, 2) === peg$c24) {
  1621. s2 = peg$c24;
  1622. peg$currPos += 2;
  1623. } else {
  1624. s2 = peg$FAILED;
  1625. if (peg$silentFails === 0) { peg$fail(peg$c25); }
  1626. }
  1627. if (s2 !== peg$FAILED) {
  1628. peg$savedPos = s0;
  1629. s1 = peg$c40();
  1630. s0 = s1;
  1631. } else {
  1632. peg$currPos = s0;
  1633. s0 = peg$FAILED;
  1634. }
  1635. } else {
  1636. peg$currPos = s0;
  1637. s0 = peg$FAILED;
  1638. }
  1639. if (s0 === peg$FAILED) {
  1640. s0 = peg$currPos;
  1641. s1 = peg$parseFunctionLiteral();
  1642. if (s1 !== peg$FAILED) {
  1643. s2 = peg$currPos;
  1644. peg$silentFails++;
  1645. s3 = peg$parseNameExpression();
  1646. peg$silentFails--;
  1647. if (s3 === peg$FAILED) {
  1648. s2 = void 0;
  1649. } else {
  1650. peg$currPos = s2;
  1651. s2 = peg$FAILED;
  1652. }
  1653. if (s2 !== peg$FAILED) {
  1654. s3 = peg$parse_();
  1655. if (s3 !== peg$FAILED) {
  1656. s4 = peg$parseFunctionSignatureType();
  1657. if (s4 === peg$FAILED) {
  1658. s4 = null;
  1659. }
  1660. if (s4 !== peg$FAILED) {
  1661. s5 = peg$parseOptional();
  1662. if (s5 === peg$FAILED) {
  1663. s5 = null;
  1664. }
  1665. if (s5 !== peg$FAILED) {
  1666. peg$savedPos = s0;
  1667. s1 = peg$c41(s4, s5);
  1668. s0 = s1;
  1669. } else {
  1670. peg$currPos = s0;
  1671. s0 = peg$FAILED;
  1672. }
  1673. } else {
  1674. peg$currPos = s0;
  1675. s0 = peg$FAILED;
  1676. }
  1677. } else {
  1678. peg$currPos = s0;
  1679. s0 = peg$FAILED;
  1680. }
  1681. } else {
  1682. peg$currPos = s0;
  1683. s0 = peg$FAILED;
  1684. }
  1685. } else {
  1686. peg$currPos = s0;
  1687. s0 = peg$FAILED;
  1688. }
  1689. }
  1690. return s0;
  1691. }
  1692. function peg$parseFunctionTypeRepeatable() {
  1693. var s0, s1, s2;
  1694. s0 = peg$currPos;
  1695. s1 = peg$parseRepeatable();
  1696. if (s1 !== peg$FAILED) {
  1697. s2 = peg$parseFunctionTypeNonRepeatable();
  1698. if (s2 !== peg$FAILED) {
  1699. peg$savedPos = s0;
  1700. s1 = peg$c28(s2);
  1701. s0 = s1;
  1702. } else {
  1703. peg$currPos = s0;
  1704. s0 = peg$FAILED;
  1705. }
  1706. } else {
  1707. peg$currPos = s0;
  1708. s0 = peg$FAILED;
  1709. }
  1710. return s0;
  1711. }
  1712. function peg$parseFunctionSignatureType() {
  1713. var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
  1714. s0 = peg$currPos;
  1715. if (input.charCodeAt(peg$currPos) === 40) {
  1716. s1 = peg$c42;
  1717. peg$currPos++;
  1718. } else {
  1719. s1 = peg$FAILED;
  1720. if (peg$silentFails === 0) { peg$fail(peg$c43); }
  1721. }
  1722. if (s1 !== peg$FAILED) {
  1723. s2 = peg$parse_();
  1724. if (s2 !== peg$FAILED) {
  1725. s3 = peg$parseFunctionSignature();
  1726. if (s3 === peg$FAILED) {
  1727. s3 = null;
  1728. }
  1729. if (s3 !== peg$FAILED) {
  1730. s4 = peg$parse_();
  1731. if (s4 !== peg$FAILED) {
  1732. if (input.charCodeAt(peg$currPos) === 41) {
  1733. s5 = peg$c44;
  1734. peg$currPos++;
  1735. } else {
  1736. s5 = peg$FAILED;
  1737. if (peg$silentFails === 0) { peg$fail(peg$c45); }
  1738. }
  1739. if (s5 !== peg$FAILED) {
  1740. s6 = peg$currPos;
  1741. s7 = peg$parse_();
  1742. if (s7 !== peg$FAILED) {
  1743. if (input.charCodeAt(peg$currPos) === 58) {
  1744. s8 = peg$c46;
  1745. peg$currPos++;
  1746. } else {
  1747. s8 = peg$FAILED;
  1748. if (peg$silentFails === 0) { peg$fail(peg$c47); }
  1749. }
  1750. if (s8 !== peg$FAILED) {
  1751. s9 = peg$parse_();
  1752. if (s9 !== peg$FAILED) {
  1753. s10 = peg$parseTypeExpression();
  1754. if (s10 !== peg$FAILED) {
  1755. s7 = [s7, s8, s9, s10];
  1756. s6 = s7;
  1757. } else {
  1758. peg$currPos = s6;
  1759. s6 = peg$FAILED;
  1760. }
  1761. } else {
  1762. peg$currPos = s6;
  1763. s6 = peg$FAILED;
  1764. }
  1765. } else {
  1766. peg$currPos = s6;
  1767. s6 = peg$FAILED;
  1768. }
  1769. } else {
  1770. peg$currPos = s6;
  1771. s6 = peg$FAILED;
  1772. }
  1773. if (s6 === peg$FAILED) {
  1774. s6 = null;
  1775. }
  1776. if (s6 !== peg$FAILED) {
  1777. peg$savedPos = s0;
  1778. s1 = peg$c48(s3, s6);
  1779. s0 = s1;
  1780. } else {
  1781. peg$currPos = s0;
  1782. s0 = peg$FAILED;
  1783. }
  1784. } else {
  1785. peg$currPos = s0;
  1786. s0 = peg$FAILED;
  1787. }
  1788. } else {
  1789. peg$currPos = s0;
  1790. s0 = peg$FAILED;
  1791. }
  1792. } else {
  1793. peg$currPos = s0;
  1794. s0 = peg$FAILED;
  1795. }
  1796. } else {
  1797. peg$currPos = s0;
  1798. s0 = peg$FAILED;
  1799. }
  1800. } else {
  1801. peg$currPos = s0;
  1802. s0 = peg$FAILED;
  1803. }
  1804. return s0;
  1805. }
  1806. function peg$parseFunctionSignature() {
  1807. var s0, s1, s2, s3, s4, s5, s6, s7;
  1808. s0 = peg$currPos;
  1809. s1 = peg$parseFunctionSignatureNew();
  1810. if (s1 !== peg$FAILED) {
  1811. s2 = peg$currPos;
  1812. s3 = peg$parse_();
  1813. if (s3 !== peg$FAILED) {
  1814. if (input.charCodeAt(peg$currPos) === 44) {
  1815. s4 = peg$c37;
  1816. peg$currPos++;
  1817. } else {
  1818. s4 = peg$FAILED;
  1819. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  1820. }
  1821. if (s4 !== peg$FAILED) {
  1822. s5 = peg$parse_();
  1823. if (s5 !== peg$FAILED) {
  1824. s6 = peg$parseFunctionSignatureThis();
  1825. if (s6 !== peg$FAILED) {
  1826. s3 = [s3, s4, s5, s6];
  1827. s2 = s3;
  1828. } else {
  1829. peg$currPos = s2;
  1830. s2 = peg$FAILED;
  1831. }
  1832. } else {
  1833. peg$currPos = s2;
  1834. s2 = peg$FAILED;
  1835. }
  1836. } else {
  1837. peg$currPos = s2;
  1838. s2 = peg$FAILED;
  1839. }
  1840. } else {
  1841. peg$currPos = s2;
  1842. s2 = peg$FAILED;
  1843. }
  1844. if (s2 === peg$FAILED) {
  1845. s2 = null;
  1846. }
  1847. if (s2 !== peg$FAILED) {
  1848. s3 = peg$currPos;
  1849. s4 = peg$parse_();
  1850. if (s4 !== peg$FAILED) {
  1851. if (input.charCodeAt(peg$currPos) === 44) {
  1852. s5 = peg$c37;
  1853. peg$currPos++;
  1854. } else {
  1855. s5 = peg$FAILED;
  1856. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  1857. }
  1858. if (s5 !== peg$FAILED) {
  1859. s6 = peg$parse_();
  1860. if (s6 !== peg$FAILED) {
  1861. s7 = peg$parseParametersType();
  1862. if (s7 !== peg$FAILED) {
  1863. s4 = [s4, s5, s6, s7];
  1864. s3 = s4;
  1865. } else {
  1866. peg$currPos = s3;
  1867. s3 = peg$FAILED;
  1868. }
  1869. } else {
  1870. peg$currPos = s3;
  1871. s3 = peg$FAILED;
  1872. }
  1873. } else {
  1874. peg$currPos = s3;
  1875. s3 = peg$FAILED;
  1876. }
  1877. } else {
  1878. peg$currPos = s3;
  1879. s3 = peg$FAILED;
  1880. }
  1881. if (s3 === peg$FAILED) {
  1882. s3 = null;
  1883. }
  1884. if (s3 !== peg$FAILED) {
  1885. peg$savedPos = s0;
  1886. s1 = peg$c49(s1, s2, s3);
  1887. s0 = s1;
  1888. } else {
  1889. peg$currPos = s0;
  1890. s0 = peg$FAILED;
  1891. }
  1892. } else {
  1893. peg$currPos = s0;
  1894. s0 = peg$FAILED;
  1895. }
  1896. } else {
  1897. peg$currPos = s0;
  1898. s0 = peg$FAILED;
  1899. }
  1900. if (s0 === peg$FAILED) {
  1901. s0 = peg$currPos;
  1902. s1 = peg$parseFunctionSignatureThis();
  1903. if (s1 !== peg$FAILED) {
  1904. s2 = peg$currPos;
  1905. s3 = peg$parse_();
  1906. if (s3 !== peg$FAILED) {
  1907. if (input.charCodeAt(peg$currPos) === 44) {
  1908. s4 = peg$c37;
  1909. peg$currPos++;
  1910. } else {
  1911. s4 = peg$FAILED;
  1912. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  1913. }
  1914. if (s4 !== peg$FAILED) {
  1915. s5 = peg$parse_();
  1916. if (s5 !== peg$FAILED) {
  1917. s6 = peg$parseFunctionSignatureNew();
  1918. if (s6 !== peg$FAILED) {
  1919. s3 = [s3, s4, s5, s6];
  1920. s2 = s3;
  1921. } else {
  1922. peg$currPos = s2;
  1923. s2 = peg$FAILED;
  1924. }
  1925. } else {
  1926. peg$currPos = s2;
  1927. s2 = peg$FAILED;
  1928. }
  1929. } else {
  1930. peg$currPos = s2;
  1931. s2 = peg$FAILED;
  1932. }
  1933. } else {
  1934. peg$currPos = s2;
  1935. s2 = peg$FAILED;
  1936. }
  1937. if (s2 === peg$FAILED) {
  1938. s2 = null;
  1939. }
  1940. if (s2 !== peg$FAILED) {
  1941. s3 = peg$currPos;
  1942. s4 = peg$parse_();
  1943. if (s4 !== peg$FAILED) {
  1944. if (input.charCodeAt(peg$currPos) === 44) {
  1945. s5 = peg$c37;
  1946. peg$currPos++;
  1947. } else {
  1948. s5 = peg$FAILED;
  1949. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  1950. }
  1951. if (s5 !== peg$FAILED) {
  1952. s6 = peg$parse_();
  1953. if (s6 !== peg$FAILED) {
  1954. s7 = peg$parseParametersType();
  1955. if (s7 !== peg$FAILED) {
  1956. s4 = [s4, s5, s6, s7];
  1957. s3 = s4;
  1958. } else {
  1959. peg$currPos = s3;
  1960. s3 = peg$FAILED;
  1961. }
  1962. } else {
  1963. peg$currPos = s3;
  1964. s3 = peg$FAILED;
  1965. }
  1966. } else {
  1967. peg$currPos = s3;
  1968. s3 = peg$FAILED;
  1969. }
  1970. } else {
  1971. peg$currPos = s3;
  1972. s3 = peg$FAILED;
  1973. }
  1974. if (s3 === peg$FAILED) {
  1975. s3 = null;
  1976. }
  1977. if (s3 !== peg$FAILED) {
  1978. peg$savedPos = s0;
  1979. s1 = peg$c50(s1, s2, s3);
  1980. s0 = s1;
  1981. } else {
  1982. peg$currPos = s0;
  1983. s0 = peg$FAILED;
  1984. }
  1985. } else {
  1986. peg$currPos = s0;
  1987. s0 = peg$FAILED;
  1988. }
  1989. } else {
  1990. peg$currPos = s0;
  1991. s0 = peg$FAILED;
  1992. }
  1993. if (s0 === peg$FAILED) {
  1994. s0 = peg$currPos;
  1995. s1 = peg$parseParametersType();
  1996. if (s1 !== peg$FAILED) {
  1997. peg$savedPos = s0;
  1998. s1 = peg$c51(s1);
  1999. }
  2000. s0 = s1;
  2001. }
  2002. }
  2003. return s0;
  2004. }
  2005. function peg$parseFunctionSignatureNew() {
  2006. var s0, s1, s2, s3, s4, s5;
  2007. s0 = peg$currPos;
  2008. if (input.substr(peg$currPos, 3) === peg$c52) {
  2009. s1 = peg$c52;
  2010. peg$currPos += 3;
  2011. } else {
  2012. s1 = peg$FAILED;
  2013. if (peg$silentFails === 0) { peg$fail(peg$c53); }
  2014. }
  2015. if (s1 !== peg$FAILED) {
  2016. s2 = peg$parse_();
  2017. if (s2 !== peg$FAILED) {
  2018. if (input.charCodeAt(peg$currPos) === 58) {
  2019. s3 = peg$c46;
  2020. peg$currPos++;
  2021. } else {
  2022. s3 = peg$FAILED;
  2023. if (peg$silentFails === 0) { peg$fail(peg$c47); }
  2024. }
  2025. if (s3 !== peg$FAILED) {
  2026. s4 = peg$parse_();
  2027. if (s4 !== peg$FAILED) {
  2028. s5 = peg$parseTypeExpression();
  2029. if (s5 !== peg$FAILED) {
  2030. peg$savedPos = s0;
  2031. s1 = peg$c54(s5);
  2032. s0 = s1;
  2033. } else {
  2034. peg$currPos = s0;
  2035. s0 = peg$FAILED;
  2036. }
  2037. } else {
  2038. peg$currPos = s0;
  2039. s0 = peg$FAILED;
  2040. }
  2041. } else {
  2042. peg$currPos = s0;
  2043. s0 = peg$FAILED;
  2044. }
  2045. } else {
  2046. peg$currPos = s0;
  2047. s0 = peg$FAILED;
  2048. }
  2049. } else {
  2050. peg$currPos = s0;
  2051. s0 = peg$FAILED;
  2052. }
  2053. return s0;
  2054. }
  2055. function peg$parseFunctionSignatureThis() {
  2056. var s0, s1, s2, s3, s4, s5;
  2057. s0 = peg$currPos;
  2058. if (input.substr(peg$currPos, 4) === peg$c55) {
  2059. s1 = peg$c55;
  2060. peg$currPos += 4;
  2061. } else {
  2062. s1 = peg$FAILED;
  2063. if (peg$silentFails === 0) { peg$fail(peg$c56); }
  2064. }
  2065. if (s1 !== peg$FAILED) {
  2066. s2 = peg$parse_();
  2067. if (s2 !== peg$FAILED) {
  2068. if (input.charCodeAt(peg$currPos) === 58) {
  2069. s3 = peg$c46;
  2070. peg$currPos++;
  2071. } else {
  2072. s3 = peg$FAILED;
  2073. if (peg$silentFails === 0) { peg$fail(peg$c47); }
  2074. }
  2075. if (s3 !== peg$FAILED) {
  2076. s4 = peg$parse_();
  2077. if (s4 !== peg$FAILED) {
  2078. s5 = peg$parseTypeExpression();
  2079. if (s5 !== peg$FAILED) {
  2080. peg$savedPos = s0;
  2081. s1 = peg$c54(s5);
  2082. s0 = s1;
  2083. } else {
  2084. peg$currPos = s0;
  2085. s0 = peg$FAILED;
  2086. }
  2087. } else {
  2088. peg$currPos = s0;
  2089. s0 = peg$FAILED;
  2090. }
  2091. } else {
  2092. peg$currPos = s0;
  2093. s0 = peg$FAILED;
  2094. }
  2095. } else {
  2096. peg$currPos = s0;
  2097. s0 = peg$FAILED;
  2098. }
  2099. } else {
  2100. peg$currPos = s0;
  2101. s0 = peg$FAILED;
  2102. }
  2103. return s0;
  2104. }
  2105. function peg$parseParametersType() {
  2106. var s0, s1, s2, s3, s4, s5, s6;
  2107. s0 = peg$currPos;
  2108. s1 = peg$parseRestParameterType();
  2109. if (s1 !== peg$FAILED) {
  2110. peg$savedPos = s0;
  2111. s1 = peg$c57(s1);
  2112. }
  2113. s0 = s1;
  2114. if (s0 === peg$FAILED) {
  2115. s0 = peg$currPos;
  2116. s1 = peg$parseNonRestParametersType();
  2117. if (s1 !== peg$FAILED) {
  2118. s2 = peg$currPos;
  2119. s3 = peg$parse_();
  2120. if (s3 !== peg$FAILED) {
  2121. if (input.charCodeAt(peg$currPos) === 44) {
  2122. s4 = peg$c37;
  2123. peg$currPos++;
  2124. } else {
  2125. s4 = peg$FAILED;
  2126. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2127. }
  2128. if (s4 !== peg$FAILED) {
  2129. s5 = peg$parse_();
  2130. if (s5 !== peg$FAILED) {
  2131. s6 = peg$parseRestParameterType();
  2132. if (s6 !== peg$FAILED) {
  2133. s3 = [s3, s4, s5, s6];
  2134. s2 = s3;
  2135. } else {
  2136. peg$currPos = s2;
  2137. s2 = peg$FAILED;
  2138. }
  2139. } else {
  2140. peg$currPos = s2;
  2141. s2 = peg$FAILED;
  2142. }
  2143. } else {
  2144. peg$currPos = s2;
  2145. s2 = peg$FAILED;
  2146. }
  2147. } else {
  2148. peg$currPos = s2;
  2149. s2 = peg$FAILED;
  2150. }
  2151. if (s2 === peg$FAILED) {
  2152. s2 = null;
  2153. }
  2154. if (s2 !== peg$FAILED) {
  2155. peg$savedPos = s0;
  2156. s1 = peg$c58(s1, s2);
  2157. s0 = s1;
  2158. } else {
  2159. peg$currPos = s0;
  2160. s0 = peg$FAILED;
  2161. }
  2162. } else {
  2163. peg$currPos = s0;
  2164. s0 = peg$FAILED;
  2165. }
  2166. }
  2167. return s0;
  2168. }
  2169. function peg$parseNonRestParametersType() {
  2170. var s0, s1, s2, s3, s4, s5, s6, s7;
  2171. s0 = peg$currPos;
  2172. s1 = peg$parseParameterType();
  2173. if (s1 !== peg$FAILED) {
  2174. s2 = [];
  2175. s3 = peg$currPos;
  2176. s4 = peg$parse_();
  2177. if (s4 !== peg$FAILED) {
  2178. if (input.charCodeAt(peg$currPos) === 44) {
  2179. s5 = peg$c37;
  2180. peg$currPos++;
  2181. } else {
  2182. s5 = peg$FAILED;
  2183. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2184. }
  2185. if (s5 !== peg$FAILED) {
  2186. s6 = peg$parse_();
  2187. if (s6 !== peg$FAILED) {
  2188. s7 = peg$parseParameterType();
  2189. if (s7 !== peg$FAILED) {
  2190. s4 = [s4, s5, s6, s7];
  2191. s3 = s4;
  2192. } else {
  2193. peg$currPos = s3;
  2194. s3 = peg$FAILED;
  2195. }
  2196. } else {
  2197. peg$currPos = s3;
  2198. s3 = peg$FAILED;
  2199. }
  2200. } else {
  2201. peg$currPos = s3;
  2202. s3 = peg$FAILED;
  2203. }
  2204. } else {
  2205. peg$currPos = s3;
  2206. s3 = peg$FAILED;
  2207. }
  2208. while (s3 !== peg$FAILED) {
  2209. s2.push(s3);
  2210. s3 = peg$currPos;
  2211. s4 = peg$parse_();
  2212. if (s4 !== peg$FAILED) {
  2213. if (input.charCodeAt(peg$currPos) === 44) {
  2214. s5 = peg$c37;
  2215. peg$currPos++;
  2216. } else {
  2217. s5 = peg$FAILED;
  2218. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2219. }
  2220. if (s5 !== peg$FAILED) {
  2221. s6 = peg$parse_();
  2222. if (s6 !== peg$FAILED) {
  2223. s7 = peg$parseParameterType();
  2224. if (s7 !== peg$FAILED) {
  2225. s4 = [s4, s5, s6, s7];
  2226. s3 = s4;
  2227. } else {
  2228. peg$currPos = s3;
  2229. s3 = peg$FAILED;
  2230. }
  2231. } else {
  2232. peg$currPos = s3;
  2233. s3 = peg$FAILED;
  2234. }
  2235. } else {
  2236. peg$currPos = s3;
  2237. s3 = peg$FAILED;
  2238. }
  2239. } else {
  2240. peg$currPos = s3;
  2241. s3 = peg$FAILED;
  2242. }
  2243. }
  2244. if (s2 !== peg$FAILED) {
  2245. peg$savedPos = s0;
  2246. s1 = peg$c59(s1, s2);
  2247. s0 = s1;
  2248. } else {
  2249. peg$currPos = s0;
  2250. s0 = peg$FAILED;
  2251. }
  2252. } else {
  2253. peg$currPos = s0;
  2254. s0 = peg$FAILED;
  2255. }
  2256. if (s0 === peg$FAILED) {
  2257. s0 = peg$parseOptionalParametersType();
  2258. }
  2259. return s0;
  2260. }
  2261. function peg$parseOptionalParametersType() {
  2262. var s0, s1, s2, s3, s4, s5, s6, s7;
  2263. s0 = peg$currPos;
  2264. s1 = peg$parseOptionalParameterType();
  2265. if (s1 !== peg$FAILED) {
  2266. s2 = [];
  2267. s3 = peg$currPos;
  2268. s4 = peg$parse_();
  2269. if (s4 !== peg$FAILED) {
  2270. if (input.charCodeAt(peg$currPos) === 44) {
  2271. s5 = peg$c37;
  2272. peg$currPos++;
  2273. } else {
  2274. s5 = peg$FAILED;
  2275. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2276. }
  2277. if (s5 !== peg$FAILED) {
  2278. s6 = peg$parse_();
  2279. if (s6 !== peg$FAILED) {
  2280. s7 = peg$parseOptionalParameterType();
  2281. if (s7 !== peg$FAILED) {
  2282. s4 = [s4, s5, s6, s7];
  2283. s3 = s4;
  2284. } else {
  2285. peg$currPos = s3;
  2286. s3 = peg$FAILED;
  2287. }
  2288. } else {
  2289. peg$currPos = s3;
  2290. s3 = peg$FAILED;
  2291. }
  2292. } else {
  2293. peg$currPos = s3;
  2294. s3 = peg$FAILED;
  2295. }
  2296. } else {
  2297. peg$currPos = s3;
  2298. s3 = peg$FAILED;
  2299. }
  2300. while (s3 !== peg$FAILED) {
  2301. s2.push(s3);
  2302. s3 = peg$currPos;
  2303. s4 = peg$parse_();
  2304. if (s4 !== peg$FAILED) {
  2305. if (input.charCodeAt(peg$currPos) === 44) {
  2306. s5 = peg$c37;
  2307. peg$currPos++;
  2308. } else {
  2309. s5 = peg$FAILED;
  2310. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2311. }
  2312. if (s5 !== peg$FAILED) {
  2313. s6 = peg$parse_();
  2314. if (s6 !== peg$FAILED) {
  2315. s7 = peg$parseOptionalParameterType();
  2316. if (s7 !== peg$FAILED) {
  2317. s4 = [s4, s5, s6, s7];
  2318. s3 = s4;
  2319. } else {
  2320. peg$currPos = s3;
  2321. s3 = peg$FAILED;
  2322. }
  2323. } else {
  2324. peg$currPos = s3;
  2325. s3 = peg$FAILED;
  2326. }
  2327. } else {
  2328. peg$currPos = s3;
  2329. s3 = peg$FAILED;
  2330. }
  2331. } else {
  2332. peg$currPos = s3;
  2333. s3 = peg$FAILED;
  2334. }
  2335. }
  2336. if (s2 !== peg$FAILED) {
  2337. peg$savedPos = s0;
  2338. s1 = peg$c60(s1, s2);
  2339. s0 = s1;
  2340. } else {
  2341. peg$currPos = s0;
  2342. s0 = peg$FAILED;
  2343. }
  2344. } else {
  2345. peg$currPos = s0;
  2346. s0 = peg$FAILED;
  2347. }
  2348. return s0;
  2349. }
  2350. function peg$parseParameterType() {
  2351. var s0, s1;
  2352. s0 = peg$currPos;
  2353. s1 = peg$parseTypeExpression();
  2354. if (s1 !== peg$FAILED) {
  2355. peg$savedPos = s0;
  2356. s1 = peg$c61(s1);
  2357. }
  2358. s0 = s1;
  2359. return s0;
  2360. }
  2361. function peg$parseOptionalParameterType() {
  2362. var s0, s1, s2;
  2363. s0 = peg$currPos;
  2364. s1 = peg$parseParameterType();
  2365. if (s1 !== peg$FAILED) {
  2366. s2 = peg$parseOptional();
  2367. if (s2 !== peg$FAILED) {
  2368. peg$savedPos = s0;
  2369. s1 = peg$c62(s1);
  2370. s0 = s1;
  2371. } else {
  2372. peg$currPos = s0;
  2373. s0 = peg$FAILED;
  2374. }
  2375. } else {
  2376. peg$currPos = s0;
  2377. s0 = peg$FAILED;
  2378. }
  2379. return s0;
  2380. }
  2381. function peg$parseRestParameterType() {
  2382. var s0, s1, s2, s3, s4, s5, s6;
  2383. s0 = peg$currPos;
  2384. s1 = peg$parseRepeatable();
  2385. if (s1 !== peg$FAILED) {
  2386. if (input.charCodeAt(peg$currPos) === 91) {
  2387. s2 = peg$c63;
  2388. peg$currPos++;
  2389. } else {
  2390. s2 = peg$FAILED;
  2391. if (peg$silentFails === 0) { peg$fail(peg$c64); }
  2392. }
  2393. if (s2 !== peg$FAILED) {
  2394. s3 = peg$parse_();
  2395. if (s3 !== peg$FAILED) {
  2396. s4 = peg$parseParameterType();
  2397. if (s4 !== peg$FAILED) {
  2398. s5 = peg$parse_();
  2399. if (s5 !== peg$FAILED) {
  2400. if (input.charCodeAt(peg$currPos) === 93) {
  2401. s6 = peg$c65;
  2402. peg$currPos++;
  2403. } else {
  2404. s6 = peg$FAILED;
  2405. if (peg$silentFails === 0) { peg$fail(peg$c66); }
  2406. }
  2407. if (s6 !== peg$FAILED) {
  2408. peg$savedPos = s0;
  2409. s1 = peg$c28(s4);
  2410. s0 = s1;
  2411. } else {
  2412. peg$currPos = s0;
  2413. s0 = peg$FAILED;
  2414. }
  2415. } else {
  2416. peg$currPos = s0;
  2417. s0 = peg$FAILED;
  2418. }
  2419. } else {
  2420. peg$currPos = s0;
  2421. s0 = peg$FAILED;
  2422. }
  2423. } else {
  2424. peg$currPos = s0;
  2425. s0 = peg$FAILED;
  2426. }
  2427. } else {
  2428. peg$currPos = s0;
  2429. s0 = peg$FAILED;
  2430. }
  2431. } else {
  2432. peg$currPos = s0;
  2433. s0 = peg$FAILED;
  2434. }
  2435. if (s0 === peg$FAILED) {
  2436. s0 = peg$currPos;
  2437. s1 = peg$parseRepeatable();
  2438. if (s1 !== peg$FAILED) {
  2439. s2 = peg$parseParameterType();
  2440. if (s2 === peg$FAILED) {
  2441. s2 = null;
  2442. }
  2443. if (s2 !== peg$FAILED) {
  2444. peg$savedPos = s0;
  2445. s1 = peg$c67(s2);
  2446. s0 = s1;
  2447. } else {
  2448. peg$currPos = s0;
  2449. s0 = peg$FAILED;
  2450. }
  2451. } else {
  2452. peg$currPos = s0;
  2453. s0 = peg$FAILED;
  2454. }
  2455. if (s0 === peg$FAILED) {
  2456. s0 = peg$currPos;
  2457. s1 = peg$parseRepeatable();
  2458. if (s1 !== peg$FAILED) {
  2459. s2 = peg$currPos;
  2460. peg$silentFails++;
  2461. if (input.charCodeAt(peg$currPos) === 91) {
  2462. s3 = peg$c63;
  2463. peg$currPos++;
  2464. } else {
  2465. s3 = peg$FAILED;
  2466. if (peg$silentFails === 0) { peg$fail(peg$c64); }
  2467. }
  2468. peg$silentFails--;
  2469. if (s3 === peg$FAILED) {
  2470. s2 = void 0;
  2471. } else {
  2472. peg$currPos = s2;
  2473. s2 = peg$FAILED;
  2474. }
  2475. if (s2 !== peg$FAILED) {
  2476. peg$savedPos = s0;
  2477. s1 = peg$c68();
  2478. s0 = s1;
  2479. } else {
  2480. peg$currPos = s0;
  2481. s0 = peg$FAILED;
  2482. }
  2483. } else {
  2484. peg$currPos = s0;
  2485. s0 = peg$FAILED;
  2486. }
  2487. }
  2488. }
  2489. return s0;
  2490. }
  2491. function peg$parseTypeUnion() {
  2492. var s0;
  2493. s0 = peg$parseTypeUnionRepeatable();
  2494. if (s0 === peg$FAILED) {
  2495. s0 = peg$parseTypeUnionNonRepeatable();
  2496. }
  2497. return s0;
  2498. }
  2499. function peg$parseTypeUnionNonRepeatable() {
  2500. var s0, s1, s2, s3, s4, s5, s6, s7;
  2501. s0 = peg$currPos;
  2502. s1 = peg$parse_();
  2503. if (s1 !== peg$FAILED) {
  2504. if (input.charCodeAt(peg$currPos) === 40) {
  2505. s2 = peg$c42;
  2506. peg$currPos++;
  2507. } else {
  2508. s2 = peg$FAILED;
  2509. if (peg$silentFails === 0) { peg$fail(peg$c43); }
  2510. }
  2511. if (s2 !== peg$FAILED) {
  2512. s3 = peg$parse_();
  2513. if (s3 !== peg$FAILED) {
  2514. s4 = peg$parseTypeUnionList();
  2515. if (s4 === peg$FAILED) {
  2516. s4 = null;
  2517. }
  2518. if (s4 !== peg$FAILED) {
  2519. s5 = peg$parse_();
  2520. if (s5 !== peg$FAILED) {
  2521. if (input.charCodeAt(peg$currPos) === 41) {
  2522. s6 = peg$c44;
  2523. peg$currPos++;
  2524. } else {
  2525. s6 = peg$FAILED;
  2526. if (peg$silentFails === 0) { peg$fail(peg$c45); }
  2527. }
  2528. if (s6 !== peg$FAILED) {
  2529. s7 = peg$parseOptional();
  2530. if (s7 === peg$FAILED) {
  2531. s7 = null;
  2532. }
  2533. if (s7 !== peg$FAILED) {
  2534. peg$savedPos = s0;
  2535. s1 = peg$c69(s4, s7);
  2536. s0 = s1;
  2537. } else {
  2538. peg$currPos = s0;
  2539. s0 = peg$FAILED;
  2540. }
  2541. } else {
  2542. peg$currPos = s0;
  2543. s0 = peg$FAILED;
  2544. }
  2545. } else {
  2546. peg$currPos = s0;
  2547. s0 = peg$FAILED;
  2548. }
  2549. } else {
  2550. peg$currPos = s0;
  2551. s0 = peg$FAILED;
  2552. }
  2553. } else {
  2554. peg$currPos = s0;
  2555. s0 = peg$FAILED;
  2556. }
  2557. } else {
  2558. peg$currPos = s0;
  2559. s0 = peg$FAILED;
  2560. }
  2561. } else {
  2562. peg$currPos = s0;
  2563. s0 = peg$FAILED;
  2564. }
  2565. return s0;
  2566. }
  2567. function peg$parseTypeUnionRepeatable() {
  2568. var s0, s1, s2;
  2569. s0 = peg$currPos;
  2570. s1 = peg$parseRepeatable();
  2571. if (s1 !== peg$FAILED) {
  2572. s2 = peg$parseTypeUnionNonRepeatable();
  2573. if (s2 !== peg$FAILED) {
  2574. peg$savedPos = s0;
  2575. s1 = peg$c70(s2);
  2576. s0 = s1;
  2577. } else {
  2578. peg$currPos = s0;
  2579. s0 = peg$FAILED;
  2580. }
  2581. } else {
  2582. peg$currPos = s0;
  2583. s0 = peg$FAILED;
  2584. }
  2585. return s0;
  2586. }
  2587. function peg$parseTypeUnionList() {
  2588. var s0, s1, s2, s3, s4, s5;
  2589. s0 = peg$currPos;
  2590. s1 = peg$parseTypeExpression();
  2591. if (s1 !== peg$FAILED) {
  2592. s2 = [];
  2593. s3 = peg$currPos;
  2594. s4 = peg$parseTypeUnionSeparator();
  2595. if (s4 !== peg$FAILED) {
  2596. s5 = peg$parseTypeExpression();
  2597. if (s5 !== peg$FAILED) {
  2598. s4 = [s4, s5];
  2599. s3 = s4;
  2600. } else {
  2601. peg$currPos = s3;
  2602. s3 = peg$FAILED;
  2603. }
  2604. } else {
  2605. peg$currPos = s3;
  2606. s3 = peg$FAILED;
  2607. }
  2608. while (s3 !== peg$FAILED) {
  2609. s2.push(s3);
  2610. s3 = peg$currPos;
  2611. s4 = peg$parseTypeUnionSeparator();
  2612. if (s4 !== peg$FAILED) {
  2613. s5 = peg$parseTypeExpression();
  2614. if (s5 !== peg$FAILED) {
  2615. s4 = [s4, s5];
  2616. s3 = s4;
  2617. } else {
  2618. peg$currPos = s3;
  2619. s3 = peg$FAILED;
  2620. }
  2621. } else {
  2622. peg$currPos = s3;
  2623. s3 = peg$FAILED;
  2624. }
  2625. }
  2626. if (s2 !== peg$FAILED) {
  2627. peg$savedPos = s0;
  2628. s1 = peg$c71(s1, s2);
  2629. s0 = s1;
  2630. } else {
  2631. peg$currPos = s0;
  2632. s0 = peg$FAILED;
  2633. }
  2634. } else {
  2635. peg$currPos = s0;
  2636. s0 = peg$FAILED;
  2637. }
  2638. return s0;
  2639. }
  2640. function peg$parseRestrictedTypeUnionList() {
  2641. var s0, s1, s2, s3, s4, s5;
  2642. s0 = peg$currPos;
  2643. s1 = peg$parseModifiedRestrictedTypeExpression();
  2644. if (s1 !== peg$FAILED) {
  2645. s2 = [];
  2646. s3 = peg$currPos;
  2647. s4 = peg$parseTypeUnionSeparator();
  2648. if (s4 !== peg$FAILED) {
  2649. s5 = peg$parseModifiedRestrictedTypeExpression();
  2650. if (s5 !== peg$FAILED) {
  2651. s4 = [s4, s5];
  2652. s3 = s4;
  2653. } else {
  2654. peg$currPos = s3;
  2655. s3 = peg$FAILED;
  2656. }
  2657. } else {
  2658. peg$currPos = s3;
  2659. s3 = peg$FAILED;
  2660. }
  2661. if (s3 !== peg$FAILED) {
  2662. while (s3 !== peg$FAILED) {
  2663. s2.push(s3);
  2664. s3 = peg$currPos;
  2665. s4 = peg$parseTypeUnionSeparator();
  2666. if (s4 !== peg$FAILED) {
  2667. s5 = peg$parseModifiedRestrictedTypeExpression();
  2668. if (s5 !== peg$FAILED) {
  2669. s4 = [s4, s5];
  2670. s3 = s4;
  2671. } else {
  2672. peg$currPos = s3;
  2673. s3 = peg$FAILED;
  2674. }
  2675. } else {
  2676. peg$currPos = s3;
  2677. s3 = peg$FAILED;
  2678. }
  2679. }
  2680. } else {
  2681. s2 = peg$FAILED;
  2682. }
  2683. if (s2 !== peg$FAILED) {
  2684. peg$savedPos = s0;
  2685. s1 = peg$c71(s1, s2);
  2686. s0 = s1;
  2687. } else {
  2688. peg$currPos = s0;
  2689. s0 = peg$FAILED;
  2690. }
  2691. } else {
  2692. peg$currPos = s0;
  2693. s0 = peg$FAILED;
  2694. }
  2695. return s0;
  2696. }
  2697. function peg$parseTypeUnionLegacySyntax() {
  2698. var s0, s1, s2, s3, s4, s5, s6, s7;
  2699. s0 = peg$currPos;
  2700. s1 = peg$parse_();
  2701. if (s1 !== peg$FAILED) {
  2702. s2 = peg$currPos;
  2703. peg$silentFails++;
  2704. if (input.charCodeAt(peg$currPos) === 40) {
  2705. s3 = peg$c42;
  2706. peg$currPos++;
  2707. } else {
  2708. s3 = peg$FAILED;
  2709. if (peg$silentFails === 0) { peg$fail(peg$c43); }
  2710. }
  2711. peg$silentFails--;
  2712. if (s3 === peg$FAILED) {
  2713. s2 = void 0;
  2714. } else {
  2715. peg$currPos = s2;
  2716. s2 = peg$FAILED;
  2717. }
  2718. if (s2 !== peg$FAILED) {
  2719. s3 = peg$parse_();
  2720. if (s3 !== peg$FAILED) {
  2721. s4 = peg$parseRestrictedTypeUnionList();
  2722. if (s4 !== peg$FAILED) {
  2723. s5 = peg$parse_();
  2724. if (s5 !== peg$FAILED) {
  2725. s6 = peg$currPos;
  2726. peg$silentFails++;
  2727. if (input.charCodeAt(peg$currPos) === 41) {
  2728. s7 = peg$c44;
  2729. peg$currPos++;
  2730. } else {
  2731. s7 = peg$FAILED;
  2732. if (peg$silentFails === 0) { peg$fail(peg$c45); }
  2733. }
  2734. peg$silentFails--;
  2735. if (s7 === peg$FAILED) {
  2736. s6 = void 0;
  2737. } else {
  2738. peg$currPos = s6;
  2739. s6 = peg$FAILED;
  2740. }
  2741. if (s6 !== peg$FAILED) {
  2742. peg$savedPos = s0;
  2743. s1 = peg$c72(s4);
  2744. s0 = s1;
  2745. } else {
  2746. peg$currPos = s0;
  2747. s0 = peg$FAILED;
  2748. }
  2749. } else {
  2750. peg$currPos = s0;
  2751. s0 = peg$FAILED;
  2752. }
  2753. } else {
  2754. peg$currPos = s0;
  2755. s0 = peg$FAILED;
  2756. }
  2757. } else {
  2758. peg$currPos = s0;
  2759. s0 = peg$FAILED;
  2760. }
  2761. } else {
  2762. peg$currPos = s0;
  2763. s0 = peg$FAILED;
  2764. }
  2765. } else {
  2766. peg$currPos = s0;
  2767. s0 = peg$FAILED;
  2768. }
  2769. return s0;
  2770. }
  2771. function peg$parseTypeUnionSeparator() {
  2772. var s0, s1, s2, s3;
  2773. s0 = peg$currPos;
  2774. s1 = peg$parse_();
  2775. if (s1 !== peg$FAILED) {
  2776. if (input.charCodeAt(peg$currPos) === 124) {
  2777. s2 = peg$c73;
  2778. peg$currPos++;
  2779. } else {
  2780. s2 = peg$FAILED;
  2781. if (peg$silentFails === 0) { peg$fail(peg$c74); }
  2782. }
  2783. if (s2 !== peg$FAILED) {
  2784. s3 = peg$parse_();
  2785. if (s3 !== peg$FAILED) {
  2786. peg$savedPos = s0;
  2787. s1 = peg$c75();
  2788. s0 = s1;
  2789. } else {
  2790. peg$currPos = s0;
  2791. s0 = peg$FAILED;
  2792. }
  2793. } else {
  2794. peg$currPos = s0;
  2795. s0 = peg$FAILED;
  2796. }
  2797. } else {
  2798. peg$currPos = s0;
  2799. s0 = peg$FAILED;
  2800. }
  2801. return s0;
  2802. }
  2803. function peg$parseRecordType() {
  2804. var s0;
  2805. s0 = peg$parseRecordTypeRepeatable();
  2806. if (s0 === peg$FAILED) {
  2807. s0 = peg$parseRecordTypeNonRepeatable();
  2808. }
  2809. return s0;
  2810. }
  2811. function peg$parseRecordTypeNonRepeatable() {
  2812. var s0, s1, s2, s3, s4, s5, s6, s7;
  2813. s0 = peg$currPos;
  2814. s1 = peg$parse_();
  2815. if (s1 !== peg$FAILED) {
  2816. if (input.charCodeAt(peg$currPos) === 123) {
  2817. s2 = peg$c76;
  2818. peg$currPos++;
  2819. } else {
  2820. s2 = peg$FAILED;
  2821. if (peg$silentFails === 0) { peg$fail(peg$c77); }
  2822. }
  2823. if (s2 !== peg$FAILED) {
  2824. s3 = peg$parse_();
  2825. if (s3 !== peg$FAILED) {
  2826. s4 = peg$parseFieldTypeList();
  2827. if (s4 === peg$FAILED) {
  2828. s4 = null;
  2829. }
  2830. if (s4 !== peg$FAILED) {
  2831. s5 = peg$parse_();
  2832. if (s5 !== peg$FAILED) {
  2833. if (input.charCodeAt(peg$currPos) === 125) {
  2834. s6 = peg$c78;
  2835. peg$currPos++;
  2836. } else {
  2837. s6 = peg$FAILED;
  2838. if (peg$silentFails === 0) { peg$fail(peg$c79); }
  2839. }
  2840. if (s6 !== peg$FAILED) {
  2841. s7 = peg$parseOptional();
  2842. if (s7 === peg$FAILED) {
  2843. s7 = null;
  2844. }
  2845. if (s7 !== peg$FAILED) {
  2846. peg$savedPos = s0;
  2847. s1 = peg$c80(s4, s7);
  2848. s0 = s1;
  2849. } else {
  2850. peg$currPos = s0;
  2851. s0 = peg$FAILED;
  2852. }
  2853. } else {
  2854. peg$currPos = s0;
  2855. s0 = peg$FAILED;
  2856. }
  2857. } else {
  2858. peg$currPos = s0;
  2859. s0 = peg$FAILED;
  2860. }
  2861. } else {
  2862. peg$currPos = s0;
  2863. s0 = peg$FAILED;
  2864. }
  2865. } else {
  2866. peg$currPos = s0;
  2867. s0 = peg$FAILED;
  2868. }
  2869. } else {
  2870. peg$currPos = s0;
  2871. s0 = peg$FAILED;
  2872. }
  2873. } else {
  2874. peg$currPos = s0;
  2875. s0 = peg$FAILED;
  2876. }
  2877. return s0;
  2878. }
  2879. function peg$parseRecordTypeRepeatable() {
  2880. var s0, s1, s2;
  2881. s0 = peg$currPos;
  2882. s1 = peg$parseRepeatable();
  2883. if (s1 !== peg$FAILED) {
  2884. s2 = peg$parseRecordTypeNonRepeatable();
  2885. if (s2 !== peg$FAILED) {
  2886. peg$savedPos = s0;
  2887. s1 = peg$c28(s2);
  2888. s0 = s1;
  2889. } else {
  2890. peg$currPos = s0;
  2891. s0 = peg$FAILED;
  2892. }
  2893. } else {
  2894. peg$currPos = s0;
  2895. s0 = peg$FAILED;
  2896. }
  2897. return s0;
  2898. }
  2899. function peg$parseFieldTypeList() {
  2900. var s0, s1, s2, s3, s4, s5, s6, s7;
  2901. s0 = peg$currPos;
  2902. s1 = peg$parseFieldType();
  2903. if (s1 !== peg$FAILED) {
  2904. s2 = [];
  2905. s3 = peg$currPos;
  2906. s4 = peg$parse_();
  2907. if (s4 !== peg$FAILED) {
  2908. if (input.charCodeAt(peg$currPos) === 44) {
  2909. s5 = peg$c37;
  2910. peg$currPos++;
  2911. } else {
  2912. s5 = peg$FAILED;
  2913. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2914. }
  2915. if (s5 !== peg$FAILED) {
  2916. s6 = peg$parse_();
  2917. if (s6 !== peg$FAILED) {
  2918. s7 = peg$parseFieldType();
  2919. if (s7 !== peg$FAILED) {
  2920. s4 = [s4, s5, s6, s7];
  2921. s3 = s4;
  2922. } else {
  2923. peg$currPos = s3;
  2924. s3 = peg$FAILED;
  2925. }
  2926. } else {
  2927. peg$currPos = s3;
  2928. s3 = peg$FAILED;
  2929. }
  2930. } else {
  2931. peg$currPos = s3;
  2932. s3 = peg$FAILED;
  2933. }
  2934. } else {
  2935. peg$currPos = s3;
  2936. s3 = peg$FAILED;
  2937. }
  2938. while (s3 !== peg$FAILED) {
  2939. s2.push(s3);
  2940. s3 = peg$currPos;
  2941. s4 = peg$parse_();
  2942. if (s4 !== peg$FAILED) {
  2943. if (input.charCodeAt(peg$currPos) === 44) {
  2944. s5 = peg$c37;
  2945. peg$currPos++;
  2946. } else {
  2947. s5 = peg$FAILED;
  2948. if (peg$silentFails === 0) { peg$fail(peg$c38); }
  2949. }
  2950. if (s5 !== peg$FAILED) {
  2951. s6 = peg$parse_();
  2952. if (s6 !== peg$FAILED) {
  2953. s7 = peg$parseFieldType();
  2954. if (s7 !== peg$FAILED) {
  2955. s4 = [s4, s5, s6, s7];
  2956. s3 = s4;
  2957. } else {
  2958. peg$currPos = s3;
  2959. s3 = peg$FAILED;
  2960. }
  2961. } else {
  2962. peg$currPos = s3;
  2963. s3 = peg$FAILED;
  2964. }
  2965. } else {
  2966. peg$currPos = s3;
  2967. s3 = peg$FAILED;
  2968. }
  2969. } else {
  2970. peg$currPos = s3;
  2971. s3 = peg$FAILED;
  2972. }
  2973. }
  2974. if (s2 !== peg$FAILED) {
  2975. peg$savedPos = s0;
  2976. s1 = peg$c81(s1, s2);
  2977. s0 = s1;
  2978. } else {
  2979. peg$currPos = s0;
  2980. s0 = peg$FAILED;
  2981. }
  2982. } else {
  2983. peg$currPos = s0;
  2984. s0 = peg$FAILED;
  2985. }
  2986. return s0;
  2987. }
  2988. function peg$parseFieldType() {
  2989. var s0, s1, s2, s3, s4, s5, s6;
  2990. s0 = peg$currPos;
  2991. s1 = peg$parseFieldName();
  2992. if (s1 !== peg$FAILED) {
  2993. s2 = peg$currPos;
  2994. s3 = peg$parse_();
  2995. if (s3 !== peg$FAILED) {
  2996. if (input.charCodeAt(peg$currPos) === 58) {
  2997. s4 = peg$c46;
  2998. peg$currPos++;
  2999. } else {
  3000. s4 = peg$FAILED;
  3001. if (peg$silentFails === 0) { peg$fail(peg$c47); }
  3002. }
  3003. if (s4 !== peg$FAILED) {
  3004. s5 = peg$parse_();
  3005. if (s5 !== peg$FAILED) {
  3006. s6 = peg$parseTypeExpression();
  3007. if (s6 !== peg$FAILED) {
  3008. s3 = [s3, s4, s5, s6];
  3009. s2 = s3;
  3010. } else {
  3011. peg$currPos = s2;
  3012. s2 = peg$FAILED;
  3013. }
  3014. } else {
  3015. peg$currPos = s2;
  3016. s2 = peg$FAILED;
  3017. }
  3018. } else {
  3019. peg$currPos = s2;
  3020. s2 = peg$FAILED;
  3021. }
  3022. } else {
  3023. peg$currPos = s2;
  3024. s2 = peg$FAILED;
  3025. }
  3026. if (s2 === peg$FAILED) {
  3027. s2 = null;
  3028. }
  3029. if (s2 !== peg$FAILED) {
  3030. peg$savedPos = s0;
  3031. s1 = peg$c82(s1, s2);
  3032. s0 = s1;
  3033. } else {
  3034. peg$currPos = s0;
  3035. s0 = peg$FAILED;
  3036. }
  3037. } else {
  3038. peg$currPos = s0;
  3039. s0 = peg$FAILED;
  3040. }
  3041. return s0;
  3042. }
  3043. function peg$parseFieldName() {
  3044. var s0, s1;
  3045. s0 = peg$parseNameExpressionTypeNonRepeatable();
  3046. if (s0 === peg$FAILED) {
  3047. s0 = peg$parseReservedWordNameExpressionTypeNonRepeatable();
  3048. if (s0 === peg$FAILED) {
  3049. s0 = peg$currPos;
  3050. s1 = peg$parseTypeExpression();
  3051. if (s1 !== peg$FAILED) {
  3052. peg$savedPos = s0;
  3053. s1 = peg$c83(s1);
  3054. }
  3055. s0 = s1;
  3056. }
  3057. }
  3058. return s0;
  3059. }
  3060. function peg$parseNameExpression() {
  3061. var s0, s1, s2;
  3062. s0 = peg$currPos;
  3063. s1 = peg$parseDoubleStringLiteral();
  3064. if (s1 !== peg$FAILED) {
  3065. peg$savedPos = s0;
  3066. s1 = peg$c84(s1);
  3067. }
  3068. s0 = s1;
  3069. if (s0 === peg$FAILED) {
  3070. s0 = peg$currPos;
  3071. s1 = peg$parseSingleStringLiteral();
  3072. if (s1 !== peg$FAILED) {
  3073. peg$savedPos = s0;
  3074. s1 = peg$c85(s1);
  3075. }
  3076. s0 = s1;
  3077. if (s0 === peg$FAILED) {
  3078. s0 = peg$currPos;
  3079. s1 = peg$parseIdentifier();
  3080. if (s1 !== peg$FAILED) {
  3081. s2 = peg$parsePropertyChain();
  3082. if (s2 === peg$FAILED) {
  3083. s2 = null;
  3084. }
  3085. if (s2 !== peg$FAILED) {
  3086. peg$savedPos = s0;
  3087. s1 = peg$c86(s1, s2);
  3088. s0 = s1;
  3089. } else {
  3090. peg$currPos = s0;
  3091. s0 = peg$FAILED;
  3092. }
  3093. } else {
  3094. peg$currPos = s0;
  3095. s0 = peg$FAILED;
  3096. }
  3097. }
  3098. }
  3099. return s0;
  3100. }
  3101. function peg$parseReservedWordNameExpression() {
  3102. var s0, s1;
  3103. s0 = peg$currPos;
  3104. s1 = peg$parseReservedWord();
  3105. if (s1 !== peg$FAILED) {
  3106. peg$savedPos = s0;
  3107. s1 = peg$c87(s1);
  3108. }
  3109. s0 = s1;
  3110. return s0;
  3111. }
  3112. function peg$parsePropertyIdentifier() {
  3113. var s0, s1, s2, s3;
  3114. s0 = peg$parseIdentifier();
  3115. if (s0 === peg$FAILED) {
  3116. s0 = peg$currPos;
  3117. s1 = peg$parseDoubleStringLiteral();
  3118. if (s1 !== peg$FAILED) {
  3119. peg$savedPos = s0;
  3120. s1 = peg$c88(s1);
  3121. }
  3122. s0 = s1;
  3123. if (s0 === peg$FAILED) {
  3124. s0 = peg$currPos;
  3125. s1 = peg$parseSingleStringLiteral();
  3126. if (s1 !== peg$FAILED) {
  3127. peg$savedPos = s0;
  3128. s1 = peg$c89(s1);
  3129. }
  3130. s0 = s1;
  3131. if (s0 === peg$FAILED) {
  3132. s0 = peg$parseNumericLiteral();
  3133. if (s0 === peg$FAILED) {
  3134. s0 = peg$currPos;
  3135. s1 = peg$parseKeyword();
  3136. if (s1 !== peg$FAILED) {
  3137. s2 = peg$currPos;
  3138. peg$silentFails++;
  3139. if (input.charCodeAt(peg$currPos) === 40) {
  3140. s3 = peg$c42;
  3141. peg$currPos++;
  3142. } else {
  3143. s3 = peg$FAILED;
  3144. if (peg$silentFails === 0) { peg$fail(peg$c43); }
  3145. }
  3146. peg$silentFails--;
  3147. if (s3 === peg$FAILED) {
  3148. s2 = void 0;
  3149. } else {
  3150. peg$currPos = s2;
  3151. s2 = peg$FAILED;
  3152. }
  3153. if (s2 !== peg$FAILED) {
  3154. s1 = [s1, s2];
  3155. s0 = s1;
  3156. } else {
  3157. peg$currPos = s0;
  3158. s0 = peg$FAILED;
  3159. }
  3160. } else {
  3161. peg$currPos = s0;
  3162. s0 = peg$FAILED;
  3163. }
  3164. if (s0 === peg$FAILED) {
  3165. s0 = peg$parseFutureReservedWord();
  3166. }
  3167. }
  3168. }
  3169. }
  3170. }
  3171. return s0;
  3172. }
  3173. function peg$parsePropertyChain() {
  3174. var s0, s1, s2;
  3175. s0 = peg$currPos;
  3176. s1 = [];
  3177. s2 = peg$parsePropertyChainItem();
  3178. if (s2 !== peg$FAILED) {
  3179. while (s2 !== peg$FAILED) {
  3180. s1.push(s2);
  3181. s2 = peg$parsePropertyChainItem();
  3182. }
  3183. } else {
  3184. s1 = peg$FAILED;
  3185. }
  3186. if (s1 !== peg$FAILED) {
  3187. s0 = input.substring(s0, peg$currPos);
  3188. } else {
  3189. s0 = s1;
  3190. }
  3191. return s0;
  3192. }
  3193. function peg$parsePropertyChainItem() {
  3194. var s0, s1, s2, s3;
  3195. s0 = peg$currPos;
  3196. if (input.charCodeAt(peg$currPos) === 46) {
  3197. s1 = peg$c30;
  3198. peg$currPos++;
  3199. } else {
  3200. s1 = peg$FAILED;
  3201. if (peg$silentFails === 0) { peg$fail(peg$c31); }
  3202. }
  3203. if (s1 === peg$FAILED) {
  3204. if (input.charCodeAt(peg$currPos) === 35) {
  3205. s1 = peg$c90;
  3206. peg$currPos++;
  3207. } else {
  3208. s1 = peg$FAILED;
  3209. if (peg$silentFails === 0) { peg$fail(peg$c91); }
  3210. }
  3211. if (s1 === peg$FAILED) {
  3212. if (input.charCodeAt(peg$currPos) === 126) {
  3213. s1 = peg$c92;
  3214. peg$currPos++;
  3215. } else {
  3216. s1 = peg$FAILED;
  3217. if (peg$silentFails === 0) { peg$fail(peg$c93); }
  3218. }
  3219. if (s1 === peg$FAILED) {
  3220. if (input.charCodeAt(peg$currPos) === 58) {
  3221. s1 = peg$c46;
  3222. peg$currPos++;
  3223. } else {
  3224. s1 = peg$FAILED;
  3225. if (peg$silentFails === 0) { peg$fail(peg$c47); }
  3226. }
  3227. if (s1 === peg$FAILED) {
  3228. if (input.charCodeAt(peg$currPos) === 47) {
  3229. s1 = peg$c94;
  3230. peg$currPos++;
  3231. } else {
  3232. s1 = peg$FAILED;
  3233. if (peg$silentFails === 0) { peg$fail(peg$c95); }
  3234. }
  3235. }
  3236. }
  3237. }
  3238. }
  3239. if (s1 !== peg$FAILED) {
  3240. s2 = peg$currPos;
  3241. peg$silentFails++;
  3242. if (input.charCodeAt(peg$currPos) === 60) {
  3243. s3 = peg$c32;
  3244. peg$currPos++;
  3245. } else {
  3246. s3 = peg$FAILED;
  3247. if (peg$silentFails === 0) { peg$fail(peg$c33); }
  3248. }
  3249. peg$silentFails--;
  3250. if (s3 === peg$FAILED) {
  3251. s2 = void 0;
  3252. } else {
  3253. peg$currPos = s2;
  3254. s2 = peg$FAILED;
  3255. }
  3256. if (s2 !== peg$FAILED) {
  3257. s3 = peg$parsePropertyIdentifier();
  3258. if (s3 !== peg$FAILED) {
  3259. peg$savedPos = s0;
  3260. s1 = peg$c96(s1, s3);
  3261. s0 = s1;
  3262. } else {
  3263. peg$currPos = s0;
  3264. s0 = peg$FAILED;
  3265. }
  3266. } else {
  3267. peg$currPos = s0;
  3268. s0 = peg$FAILED;
  3269. }
  3270. } else {
  3271. peg$currPos = s0;
  3272. s0 = peg$FAILED;
  3273. }
  3274. return s0;
  3275. }
  3276. function peg$parseNamespaceExpression() {
  3277. var s0;
  3278. s0 = peg$parseNameExpression();
  3279. if (s0 === peg$FAILED) {
  3280. s0 = peg$parseStringLiteral();
  3281. }
  3282. return s0;
  3283. }
  3284. function peg$parseIdentifier() {
  3285. var s0, s1, s2;
  3286. s0 = peg$currPos;
  3287. s1 = peg$currPos;
  3288. peg$silentFails++;
  3289. s2 = peg$parseReservedWord();
  3290. peg$silentFails--;
  3291. if (s2 === peg$FAILED) {
  3292. s1 = void 0;
  3293. } else {
  3294. peg$currPos = s1;
  3295. s1 = peg$FAILED;
  3296. }
  3297. if (s1 !== peg$FAILED) {
  3298. s2 = peg$parseIdentifierName();
  3299. if (s2 !== peg$FAILED) {
  3300. peg$savedPos = s0;
  3301. s1 = peg$c97(s2);
  3302. s0 = s1;
  3303. } else {
  3304. peg$currPos = s0;
  3305. s0 = peg$FAILED;
  3306. }
  3307. } else {
  3308. peg$currPos = s0;
  3309. s0 = peg$FAILED;
  3310. }
  3311. return s0;
  3312. }
  3313. function peg$parseIdentifierName() {
  3314. var s0, s1, s2, s3, s4;
  3315. s0 = peg$currPos;
  3316. s1 = peg$currPos;
  3317. s2 = peg$parseIdentifierStart();
  3318. if (s2 !== peg$FAILED) {
  3319. s3 = [];
  3320. s4 = peg$parseIdentifierPart();
  3321. while (s4 !== peg$FAILED) {
  3322. s3.push(s4);
  3323. s4 = peg$parseIdentifierPart();
  3324. }
  3325. if (s3 !== peg$FAILED) {
  3326. s4 = peg$parseIdentifierEnd();
  3327. if (s4 === peg$FAILED) {
  3328. s4 = null;
  3329. }
  3330. if (s4 !== peg$FAILED) {
  3331. s2 = [s2, s3, s4];
  3332. s1 = s2;
  3333. } else {
  3334. peg$currPos = s1;
  3335. s1 = peg$FAILED;
  3336. }
  3337. } else {
  3338. peg$currPos = s1;
  3339. s1 = peg$FAILED;
  3340. }
  3341. } else {
  3342. peg$currPos = s1;
  3343. s1 = peg$FAILED;
  3344. }
  3345. if (s1 !== peg$FAILED) {
  3346. s0 = input.substring(s0, peg$currPos);
  3347. } else {
  3348. s0 = s1;
  3349. }
  3350. return s0;
  3351. }
  3352. function peg$parseIdentifierStart() {
  3353. var s0;
  3354. s0 = peg$parseUnicodeLetter();
  3355. if (s0 === peg$FAILED) {
  3356. s0 = peg$parseNumericLiteral();
  3357. if (s0 === peg$FAILED) {
  3358. if (input.charCodeAt(peg$currPos) === 36) {
  3359. s0 = peg$c98;
  3360. peg$currPos++;
  3361. } else {
  3362. s0 = peg$FAILED;
  3363. if (peg$silentFails === 0) { peg$fail(peg$c99); }
  3364. }
  3365. if (s0 === peg$FAILED) {
  3366. if (input.charCodeAt(peg$currPos) === 95) {
  3367. s0 = peg$c100;
  3368. peg$currPos++;
  3369. } else {
  3370. s0 = peg$FAILED;
  3371. if (peg$silentFails === 0) { peg$fail(peg$c101); }
  3372. }
  3373. if (s0 === peg$FAILED) {
  3374. if (input.charCodeAt(peg$currPos) === 64) {
  3375. s0 = peg$c102;
  3376. peg$currPos++;
  3377. } else {
  3378. s0 = peg$FAILED;
  3379. if (peg$silentFails === 0) { peg$fail(peg$c103); }
  3380. }
  3381. if (s0 === peg$FAILED) {
  3382. s0 = peg$parseUnicodeEscapeSequenceLiteral();
  3383. }
  3384. }
  3385. }
  3386. }
  3387. }
  3388. return s0;
  3389. }
  3390. function peg$parseIdentifierPart() {
  3391. var s0;
  3392. s0 = peg$parseIdentifierStart();
  3393. if (s0 === peg$FAILED) {
  3394. if (input.charCodeAt(peg$currPos) === 45) {
  3395. s0 = peg$c104;
  3396. peg$currPos++;
  3397. } else {
  3398. s0 = peg$FAILED;
  3399. if (peg$silentFails === 0) { peg$fail(peg$c105); }
  3400. }
  3401. if (s0 === peg$FAILED) {
  3402. s0 = peg$parseUnicodeMc();
  3403. if (s0 === peg$FAILED) {
  3404. s0 = peg$parseUnicodeNd();
  3405. if (s0 === peg$FAILED) {
  3406. s0 = peg$parseUnicodePc();
  3407. if (s0 === peg$FAILED) {
  3408. if (input.charCodeAt(peg$currPos) === 8204) {
  3409. s0 = peg$c106;
  3410. peg$currPos++;
  3411. } else {
  3412. s0 = peg$FAILED;
  3413. if (peg$silentFails === 0) { peg$fail(peg$c107); }
  3414. }
  3415. if (s0 === peg$FAILED) {
  3416. if (input.charCodeAt(peg$currPos) === 8205) {
  3417. s0 = peg$c108;
  3418. peg$currPos++;
  3419. } else {
  3420. s0 = peg$FAILED;
  3421. if (peg$silentFails === 0) { peg$fail(peg$c109); }
  3422. }
  3423. }
  3424. }
  3425. }
  3426. }
  3427. }
  3428. }
  3429. return s0;
  3430. }
  3431. function peg$parseIdentifierEnd() {
  3432. var s0, s1, s2, s3, s4, s5;
  3433. s0 = peg$currPos;
  3434. if (input.charCodeAt(peg$currPos) === 40) {
  3435. s1 = peg$c42;
  3436. peg$currPos++;
  3437. } else {
  3438. s1 = peg$FAILED;
  3439. if (peg$silentFails === 0) { peg$fail(peg$c43); }
  3440. }
  3441. if (s1 !== peg$FAILED) {
  3442. s2 = peg$parse_();
  3443. if (s2 !== peg$FAILED) {
  3444. s3 = [];
  3445. s4 = peg$parseIdentifierPart();
  3446. while (s4 !== peg$FAILED) {
  3447. s3.push(s4);
  3448. s4 = peg$parseIdentifierPart();
  3449. }
  3450. if (s3 !== peg$FAILED) {
  3451. s4 = peg$parse_();
  3452. if (s4 !== peg$FAILED) {
  3453. if (input.charCodeAt(peg$currPos) === 41) {
  3454. s5 = peg$c44;
  3455. peg$currPos++;
  3456. } else {
  3457. s5 = peg$FAILED;
  3458. if (peg$silentFails === 0) { peg$fail(peg$c45); }
  3459. }
  3460. if (s5 !== peg$FAILED) {
  3461. peg$savedPos = s0;
  3462. s1 = peg$c110(s3);
  3463. s0 = s1;
  3464. } else {
  3465. peg$currPos = s0;
  3466. s0 = peg$FAILED;
  3467. }
  3468. } else {
  3469. peg$currPos = s0;
  3470. s0 = peg$FAILED;
  3471. }
  3472. } else {
  3473. peg$currPos = s0;
  3474. s0 = peg$FAILED;
  3475. }
  3476. } else {
  3477. peg$currPos = s0;
  3478. s0 = peg$FAILED;
  3479. }
  3480. } else {
  3481. peg$currPos = s0;
  3482. s0 = peg$FAILED;
  3483. }
  3484. if (s0 === peg$FAILED) {
  3485. s0 = peg$currPos;
  3486. if (input.charCodeAt(peg$currPos) === 40) {
  3487. s1 = peg$c42;
  3488. peg$currPos++;
  3489. } else {
  3490. s1 = peg$FAILED;
  3491. if (peg$silentFails === 0) { peg$fail(peg$c43); }
  3492. }
  3493. if (s1 !== peg$FAILED) {
  3494. s2 = peg$parse_();
  3495. if (s2 !== peg$FAILED) {
  3496. s3 = peg$parseParametersType();
  3497. if (s3 === peg$FAILED) {
  3498. s3 = null;
  3499. }
  3500. if (s3 !== peg$FAILED) {
  3501. s4 = peg$parse_();
  3502. if (s4 !== peg$FAILED) {
  3503. if (input.charCodeAt(peg$currPos) === 41) {
  3504. s5 = peg$c44;
  3505. peg$currPos++;
  3506. } else {
  3507. s5 = peg$FAILED;
  3508. if (peg$silentFails === 0) { peg$fail(peg$c45); }
  3509. }
  3510. if (s5 !== peg$FAILED) {
  3511. peg$savedPos = s0;
  3512. s1 = peg$c111(s3);
  3513. s0 = s1;
  3514. } else {
  3515. peg$currPos = s0;
  3516. s0 = peg$FAILED;
  3517. }
  3518. } else {
  3519. peg$currPos = s0;
  3520. s0 = peg$FAILED;
  3521. }
  3522. } else {
  3523. peg$currPos = s0;
  3524. s0 = peg$FAILED;
  3525. }
  3526. } else {
  3527. peg$currPos = s0;
  3528. s0 = peg$FAILED;
  3529. }
  3530. } else {
  3531. peg$currPos = s0;
  3532. s0 = peg$FAILED;
  3533. }
  3534. if (s0 === peg$FAILED) {
  3535. s0 = peg$parseIdentifierPart();
  3536. }
  3537. }
  3538. return s0;
  3539. }
  3540. function peg$parseReservedWord() {
  3541. var s0;
  3542. s0 = peg$parseKeyword();
  3543. if (s0 === peg$FAILED) {
  3544. s0 = peg$parseFutureReservedWord();
  3545. if (s0 === peg$FAILED) {
  3546. s0 = peg$parseNullLiteral();
  3547. if (s0 === peg$FAILED) {
  3548. s0 = peg$parseBooleanLiteral();
  3549. }
  3550. }
  3551. }
  3552. return s0;
  3553. }
  3554. function peg$parseKeyword() {
  3555. var s0, s1, s2, s3;
  3556. s0 = peg$currPos;
  3557. s1 = peg$currPos;
  3558. if (input.substr(peg$currPos, 5) === peg$c112) {
  3559. s2 = peg$c112;
  3560. peg$currPos += 5;
  3561. } else {
  3562. s2 = peg$FAILED;
  3563. if (peg$silentFails === 0) { peg$fail(peg$c113); }
  3564. }
  3565. if (s2 === peg$FAILED) {
  3566. if (input.substr(peg$currPos, 4) === peg$c114) {
  3567. s2 = peg$c114;
  3568. peg$currPos += 4;
  3569. } else {
  3570. s2 = peg$FAILED;
  3571. if (peg$silentFails === 0) { peg$fail(peg$c115); }
  3572. }
  3573. if (s2 === peg$FAILED) {
  3574. if (input.substr(peg$currPos, 5) === peg$c116) {
  3575. s2 = peg$c116;
  3576. peg$currPos += 5;
  3577. } else {
  3578. s2 = peg$FAILED;
  3579. if (peg$silentFails === 0) { peg$fail(peg$c117); }
  3580. }
  3581. if (s2 === peg$FAILED) {
  3582. if (input.substr(peg$currPos, 8) === peg$c118) {
  3583. s2 = peg$c118;
  3584. peg$currPos += 8;
  3585. } else {
  3586. s2 = peg$FAILED;
  3587. if (peg$silentFails === 0) { peg$fail(peg$c119); }
  3588. }
  3589. if (s2 === peg$FAILED) {
  3590. if (input.substr(peg$currPos, 8) === peg$c120) {
  3591. s2 = peg$c120;
  3592. peg$currPos += 8;
  3593. } else {
  3594. s2 = peg$FAILED;
  3595. if (peg$silentFails === 0) { peg$fail(peg$c121); }
  3596. }
  3597. if (s2 === peg$FAILED) {
  3598. if (input.substr(peg$currPos, 7) === peg$c122) {
  3599. s2 = peg$c122;
  3600. peg$currPos += 7;
  3601. } else {
  3602. s2 = peg$FAILED;
  3603. if (peg$silentFails === 0) { peg$fail(peg$c123); }
  3604. }
  3605. if (s2 === peg$FAILED) {
  3606. if (input.substr(peg$currPos, 6) === peg$c124) {
  3607. s2 = peg$c124;
  3608. peg$currPos += 6;
  3609. } else {
  3610. s2 = peg$FAILED;
  3611. if (peg$silentFails === 0) { peg$fail(peg$c125); }
  3612. }
  3613. if (s2 === peg$FAILED) {
  3614. if (input.substr(peg$currPos, 2) === peg$c126) {
  3615. s2 = peg$c126;
  3616. peg$currPos += 2;
  3617. } else {
  3618. s2 = peg$FAILED;
  3619. if (peg$silentFails === 0) { peg$fail(peg$c127); }
  3620. }
  3621. if (s2 === peg$FAILED) {
  3622. if (input.substr(peg$currPos, 4) === peg$c128) {
  3623. s2 = peg$c128;
  3624. peg$currPos += 4;
  3625. } else {
  3626. s2 = peg$FAILED;
  3627. if (peg$silentFails === 0) { peg$fail(peg$c129); }
  3628. }
  3629. if (s2 === peg$FAILED) {
  3630. if (input.substr(peg$currPos, 7) === peg$c130) {
  3631. s2 = peg$c130;
  3632. peg$currPos += 7;
  3633. } else {
  3634. s2 = peg$FAILED;
  3635. if (peg$silentFails === 0) { peg$fail(peg$c131); }
  3636. }
  3637. if (s2 === peg$FAILED) {
  3638. if (input.substr(peg$currPos, 3) === peg$c132) {
  3639. s2 = peg$c132;
  3640. peg$currPos += 3;
  3641. } else {
  3642. s2 = peg$FAILED;
  3643. if (peg$silentFails === 0) { peg$fail(peg$c133); }
  3644. }
  3645. if (s2 === peg$FAILED) {
  3646. s2 = peg$parseFunctionLiteralLc();
  3647. if (s2 === peg$FAILED) {
  3648. if (input.substr(peg$currPos, 2) === peg$c134) {
  3649. s2 = peg$c134;
  3650. peg$currPos += 2;
  3651. } else {
  3652. s2 = peg$FAILED;
  3653. if (peg$silentFails === 0) { peg$fail(peg$c135); }
  3654. }
  3655. if (s2 === peg$FAILED) {
  3656. if (input.substr(peg$currPos, 2) === peg$c136) {
  3657. s2 = peg$c136;
  3658. peg$currPos += 2;
  3659. } else {
  3660. s2 = peg$FAILED;
  3661. if (peg$silentFails === 0) { peg$fail(peg$c137); }
  3662. }
  3663. if (s2 === peg$FAILED) {
  3664. if (input.substr(peg$currPos, 10) === peg$c138) {
  3665. s2 = peg$c138;
  3666. peg$currPos += 10;
  3667. } else {
  3668. s2 = peg$FAILED;
  3669. if (peg$silentFails === 0) { peg$fail(peg$c139); }
  3670. }
  3671. if (s2 === peg$FAILED) {
  3672. if (input.substr(peg$currPos, 3) === peg$c52) {
  3673. s2 = peg$c52;
  3674. peg$currPos += 3;
  3675. } else {
  3676. s2 = peg$FAILED;
  3677. if (peg$silentFails === 0) { peg$fail(peg$c53); }
  3678. }
  3679. if (s2 === peg$FAILED) {
  3680. if (input.substr(peg$currPos, 6) === peg$c140) {
  3681. s2 = peg$c140;
  3682. peg$currPos += 6;
  3683. } else {
  3684. s2 = peg$FAILED;
  3685. if (peg$silentFails === 0) { peg$fail(peg$c141); }
  3686. }
  3687. if (s2 === peg$FAILED) {
  3688. if (input.substr(peg$currPos, 6) === peg$c142) {
  3689. s2 = peg$c142;
  3690. peg$currPos += 6;
  3691. } else {
  3692. s2 = peg$FAILED;
  3693. if (peg$silentFails === 0) { peg$fail(peg$c143); }
  3694. }
  3695. if (s2 === peg$FAILED) {
  3696. if (input.substr(peg$currPos, 4) === peg$c55) {
  3697. s2 = peg$c55;
  3698. peg$currPos += 4;
  3699. } else {
  3700. s2 = peg$FAILED;
  3701. if (peg$silentFails === 0) { peg$fail(peg$c56); }
  3702. }
  3703. if (s2 === peg$FAILED) {
  3704. if (input.substr(peg$currPos, 5) === peg$c144) {
  3705. s2 = peg$c144;
  3706. peg$currPos += 5;
  3707. } else {
  3708. s2 = peg$FAILED;
  3709. if (peg$silentFails === 0) { peg$fail(peg$c145); }
  3710. }
  3711. if (s2 === peg$FAILED) {
  3712. if (input.substr(peg$currPos, 3) === peg$c146) {
  3713. s2 = peg$c146;
  3714. peg$currPos += 3;
  3715. } else {
  3716. s2 = peg$FAILED;
  3717. if (peg$silentFails === 0) { peg$fail(peg$c147); }
  3718. }
  3719. if (s2 === peg$FAILED) {
  3720. if (input.substr(peg$currPos, 6) === peg$c148) {
  3721. s2 = peg$c148;
  3722. peg$currPos += 6;
  3723. } else {
  3724. s2 = peg$FAILED;
  3725. if (peg$silentFails === 0) { peg$fail(peg$c149); }
  3726. }
  3727. if (s2 === peg$FAILED) {
  3728. if (input.substr(peg$currPos, 3) === peg$c150) {
  3729. s2 = peg$c150;
  3730. peg$currPos += 3;
  3731. } else {
  3732. s2 = peg$FAILED;
  3733. if (peg$silentFails === 0) { peg$fail(peg$c151); }
  3734. }
  3735. if (s2 === peg$FAILED) {
  3736. if (input.substr(peg$currPos, 4) === peg$c152) {
  3737. s2 = peg$c152;
  3738. peg$currPos += 4;
  3739. } else {
  3740. s2 = peg$FAILED;
  3741. if (peg$silentFails === 0) { peg$fail(peg$c153); }
  3742. }
  3743. if (s2 === peg$FAILED) {
  3744. if (input.substr(peg$currPos, 5) === peg$c154) {
  3745. s2 = peg$c154;
  3746. peg$currPos += 5;
  3747. } else {
  3748. s2 = peg$FAILED;
  3749. if (peg$silentFails === 0) { peg$fail(peg$c155); }
  3750. }
  3751. if (s2 === peg$FAILED) {
  3752. if (input.substr(peg$currPos, 4) === peg$c156) {
  3753. s2 = peg$c156;
  3754. peg$currPos += 4;
  3755. } else {
  3756. s2 = peg$FAILED;
  3757. if (peg$silentFails === 0) { peg$fail(peg$c157); }
  3758. }
  3759. }
  3760. }
  3761. }
  3762. }
  3763. }
  3764. }
  3765. }
  3766. }
  3767. }
  3768. }
  3769. }
  3770. }
  3771. }
  3772. }
  3773. }
  3774. }
  3775. }
  3776. }
  3777. }
  3778. }
  3779. }
  3780. }
  3781. }
  3782. }
  3783. }
  3784. if (s2 !== peg$FAILED) {
  3785. s1 = input.substring(s1, peg$currPos);
  3786. } else {
  3787. s1 = s2;
  3788. }
  3789. if (s1 !== peg$FAILED) {
  3790. s2 = peg$currPos;
  3791. peg$silentFails++;
  3792. s3 = peg$parseIdentifierPart();
  3793. peg$silentFails--;
  3794. if (s3 === peg$FAILED) {
  3795. s2 = void 0;
  3796. } else {
  3797. peg$currPos = s2;
  3798. s2 = peg$FAILED;
  3799. }
  3800. if (s2 !== peg$FAILED) {
  3801. peg$savedPos = s0;
  3802. s1 = peg$c158(s1);
  3803. s0 = s1;
  3804. } else {
  3805. peg$currPos = s0;
  3806. s0 = peg$FAILED;
  3807. }
  3808. } else {
  3809. peg$currPos = s0;
  3810. s0 = peg$FAILED;
  3811. }
  3812. return s0;
  3813. }
  3814. function peg$parseFutureReservedWord() {
  3815. var s0, s1, s2, s3;
  3816. s0 = peg$currPos;
  3817. s1 = peg$currPos;
  3818. if (input.substr(peg$currPos, 5) === peg$c159) {
  3819. s2 = peg$c159;
  3820. peg$currPos += 5;
  3821. } else {
  3822. s2 = peg$FAILED;
  3823. if (peg$silentFails === 0) { peg$fail(peg$c160); }
  3824. }
  3825. if (s2 === peg$FAILED) {
  3826. if (input.substr(peg$currPos, 5) === peg$c161) {
  3827. s2 = peg$c161;
  3828. peg$currPos += 5;
  3829. } else {
  3830. s2 = peg$FAILED;
  3831. if (peg$silentFails === 0) { peg$fail(peg$c162); }
  3832. }
  3833. if (s2 === peg$FAILED) {
  3834. if (input.substr(peg$currPos, 4) === peg$c163) {
  3835. s2 = peg$c163;
  3836. peg$currPos += 4;
  3837. } else {
  3838. s2 = peg$FAILED;
  3839. if (peg$silentFails === 0) { peg$fail(peg$c164); }
  3840. }
  3841. if (s2 === peg$FAILED) {
  3842. if (input.substr(peg$currPos, 6) === peg$c165) {
  3843. s2 = peg$c165;
  3844. peg$currPos += 6;
  3845. } else {
  3846. s2 = peg$FAILED;
  3847. if (peg$silentFails === 0) { peg$fail(peg$c166); }
  3848. }
  3849. if (s2 === peg$FAILED) {
  3850. if (input.substr(peg$currPos, 7) === peg$c167) {
  3851. s2 = peg$c167;
  3852. peg$currPos += 7;
  3853. } else {
  3854. s2 = peg$FAILED;
  3855. if (peg$silentFails === 0) { peg$fail(peg$c168); }
  3856. }
  3857. if (s2 === peg$FAILED) {
  3858. if (input.substr(peg$currPos, 6) === peg$c169) {
  3859. s2 = peg$c169;
  3860. peg$currPos += 6;
  3861. } else {
  3862. s2 = peg$FAILED;
  3863. if (peg$silentFails === 0) { peg$fail(peg$c170); }
  3864. }
  3865. if (s2 === peg$FAILED) {
  3866. if (input.substr(peg$currPos, 5) === peg$c171) {
  3867. s2 = peg$c171;
  3868. peg$currPos += 5;
  3869. } else {
  3870. s2 = peg$FAILED;
  3871. if (peg$silentFails === 0) { peg$fail(peg$c172); }
  3872. }
  3873. if (s2 === peg$FAILED) {
  3874. if (input.substr(peg$currPos, 10) === peg$c173) {
  3875. s2 = peg$c173;
  3876. peg$currPos += 10;
  3877. } else {
  3878. s2 = peg$FAILED;
  3879. if (peg$silentFails === 0) { peg$fail(peg$c174); }
  3880. }
  3881. if (s2 === peg$FAILED) {
  3882. if (input.substr(peg$currPos, 9) === peg$c175) {
  3883. s2 = peg$c175;
  3884. peg$currPos += 9;
  3885. } else {
  3886. s2 = peg$FAILED;
  3887. if (peg$silentFails === 0) { peg$fail(peg$c176); }
  3888. }
  3889. if (s2 === peg$FAILED) {
  3890. if (input.substr(peg$currPos, 3) === peg$c177) {
  3891. s2 = peg$c177;
  3892. peg$currPos += 3;
  3893. } else {
  3894. s2 = peg$FAILED;
  3895. if (peg$silentFails === 0) { peg$fail(peg$c178); }
  3896. }
  3897. if (s2 === peg$FAILED) {
  3898. if (input.substr(peg$currPos, 7) === peg$c179) {
  3899. s2 = peg$c179;
  3900. peg$currPos += 7;
  3901. } else {
  3902. s2 = peg$FAILED;
  3903. if (peg$silentFails === 0) { peg$fail(peg$c180); }
  3904. }
  3905. if (s2 === peg$FAILED) {
  3906. if (input.substr(peg$currPos, 7) === peg$c181) {
  3907. s2 = peg$c181;
  3908. peg$currPos += 7;
  3909. } else {
  3910. s2 = peg$FAILED;
  3911. if (peg$silentFails === 0) { peg$fail(peg$c182); }
  3912. }
  3913. if (s2 === peg$FAILED) {
  3914. if (input.substr(peg$currPos, 9) === peg$c183) {
  3915. s2 = peg$c183;
  3916. peg$currPos += 9;
  3917. } else {
  3918. s2 = peg$FAILED;
  3919. if (peg$silentFails === 0) { peg$fail(peg$c184); }
  3920. }
  3921. if (s2 === peg$FAILED) {
  3922. if (input.substr(peg$currPos, 6) === peg$c185) {
  3923. s2 = peg$c185;
  3924. peg$currPos += 6;
  3925. } else {
  3926. s2 = peg$FAILED;
  3927. if (peg$silentFails === 0) { peg$fail(peg$c186); }
  3928. }
  3929. if (s2 === peg$FAILED) {
  3930. if (input.substr(peg$currPos, 6) === peg$c187) {
  3931. s2 = peg$c187;
  3932. peg$currPos += 6;
  3933. } else {
  3934. s2 = peg$FAILED;
  3935. if (peg$silentFails === 0) { peg$fail(peg$c188); }
  3936. }
  3937. if (s2 === peg$FAILED) {
  3938. if (input.substr(peg$currPos, 5) === peg$c189) {
  3939. s2 = peg$c189;
  3940. peg$currPos += 5;
  3941. } else {
  3942. s2 = peg$FAILED;
  3943. if (peg$silentFails === 0) { peg$fail(peg$c190); }
  3944. }
  3945. }
  3946. }
  3947. }
  3948. }
  3949. }
  3950. }
  3951. }
  3952. }
  3953. }
  3954. }
  3955. }
  3956. }
  3957. }
  3958. }
  3959. }
  3960. if (s2 !== peg$FAILED) {
  3961. s1 = input.substring(s1, peg$currPos);
  3962. } else {
  3963. s1 = s2;
  3964. }
  3965. if (s1 !== peg$FAILED) {
  3966. s2 = peg$currPos;
  3967. peg$silentFails++;
  3968. s3 = peg$parseIdentifierPart();
  3969. peg$silentFails--;
  3970. if (s3 === peg$FAILED) {
  3971. s2 = void 0;
  3972. } else {
  3973. peg$currPos = s2;
  3974. s2 = peg$FAILED;
  3975. }
  3976. if (s2 !== peg$FAILED) {
  3977. peg$savedPos = s0;
  3978. s1 = peg$c191(s1);
  3979. s0 = s1;
  3980. } else {
  3981. peg$currPos = s0;
  3982. s0 = peg$FAILED;
  3983. }
  3984. } else {
  3985. peg$currPos = s0;
  3986. s0 = peg$FAILED;
  3987. }
  3988. return s0;
  3989. }
  3990. function peg$parseStringLiteral() {
  3991. var s0;
  3992. s0 = peg$parseDoubleStringLiteral();
  3993. if (s0 === peg$FAILED) {
  3994. s0 = peg$parseSingleStringLiteral();
  3995. }
  3996. return s0;
  3997. }
  3998. function peg$parseDoubleStringLiteral() {
  3999. var s0, s1, s2, s3;
  4000. s0 = peg$currPos;
  4001. if (input.charCodeAt(peg$currPos) === 34) {
  4002. s1 = peg$c192;
  4003. peg$currPos++;
  4004. } else {
  4005. s1 = peg$FAILED;
  4006. if (peg$silentFails === 0) { peg$fail(peg$c193); }
  4007. }
  4008. if (s1 !== peg$FAILED) {
  4009. s2 = [];
  4010. s3 = peg$parseDoubleStringCharacter();
  4011. while (s3 !== peg$FAILED) {
  4012. s2.push(s3);
  4013. s3 = peg$parseDoubleStringCharacter();
  4014. }
  4015. if (s2 !== peg$FAILED) {
  4016. if (input.charCodeAt(peg$currPos) === 34) {
  4017. s3 = peg$c192;
  4018. peg$currPos++;
  4019. } else {
  4020. s3 = peg$FAILED;
  4021. if (peg$silentFails === 0) { peg$fail(peg$c193); }
  4022. }
  4023. if (s3 !== peg$FAILED) {
  4024. peg$savedPos = s0;
  4025. s1 = peg$c194(s2);
  4026. s0 = s1;
  4027. } else {
  4028. peg$currPos = s0;
  4029. s0 = peg$FAILED;
  4030. }
  4031. } else {
  4032. peg$currPos = s0;
  4033. s0 = peg$FAILED;
  4034. }
  4035. } else {
  4036. peg$currPos = s0;
  4037. s0 = peg$FAILED;
  4038. }
  4039. return s0;
  4040. }
  4041. function peg$parseSingleStringLiteral() {
  4042. var s0, s1, s2, s3;
  4043. s0 = peg$currPos;
  4044. if (input.charCodeAt(peg$currPos) === 39) {
  4045. s1 = peg$c195;
  4046. peg$currPos++;
  4047. } else {
  4048. s1 = peg$FAILED;
  4049. if (peg$silentFails === 0) { peg$fail(peg$c196); }
  4050. }
  4051. if (s1 !== peg$FAILED) {
  4052. s2 = [];
  4053. s3 = peg$parseSingleStringCharacter();
  4054. while (s3 !== peg$FAILED) {
  4055. s2.push(s3);
  4056. s3 = peg$parseSingleStringCharacter();
  4057. }
  4058. if (s2 !== peg$FAILED) {
  4059. if (input.charCodeAt(peg$currPos) === 39) {
  4060. s3 = peg$c195;
  4061. peg$currPos++;
  4062. } else {
  4063. s3 = peg$FAILED;
  4064. if (peg$silentFails === 0) { peg$fail(peg$c196); }
  4065. }
  4066. if (s3 !== peg$FAILED) {
  4067. peg$savedPos = s0;
  4068. s1 = peg$c194(s2);
  4069. s0 = s1;
  4070. } else {
  4071. peg$currPos = s0;
  4072. s0 = peg$FAILED;
  4073. }
  4074. } else {
  4075. peg$currPos = s0;
  4076. s0 = peg$FAILED;
  4077. }
  4078. } else {
  4079. peg$currPos = s0;
  4080. s0 = peg$FAILED;
  4081. }
  4082. return s0;
  4083. }
  4084. function peg$parseNumericLiteral() {
  4085. var s0;
  4086. s0 = peg$parseDecimalLiteral();
  4087. if (s0 === peg$FAILED) {
  4088. s0 = peg$parseHexIntegerLiteral();
  4089. }
  4090. return s0;
  4091. }
  4092. function peg$parseDecimalLiteral() {
  4093. var s0, s1, s2, s3, s4;
  4094. s0 = peg$currPos;
  4095. s1 = peg$parseDecimalIntegerLiteral();
  4096. if (s1 !== peg$FAILED) {
  4097. if (input.charCodeAt(peg$currPos) === 46) {
  4098. s2 = peg$c30;
  4099. peg$currPos++;
  4100. } else {
  4101. s2 = peg$FAILED;
  4102. if (peg$silentFails === 0) { peg$fail(peg$c31); }
  4103. }
  4104. if (s2 !== peg$FAILED) {
  4105. s3 = peg$parseDecimalDigits();
  4106. if (s3 === peg$FAILED) {
  4107. s3 = null;
  4108. }
  4109. if (s3 !== peg$FAILED) {
  4110. s4 = peg$parseExponentPart();
  4111. if (s4 === peg$FAILED) {
  4112. s4 = null;
  4113. }
  4114. if (s4 !== peg$FAILED) {
  4115. peg$savedPos = s0;
  4116. s1 = peg$c197(s1, s3, s4);
  4117. s0 = s1;
  4118. } else {
  4119. peg$currPos = s0;
  4120. s0 = peg$FAILED;
  4121. }
  4122. } else {
  4123. peg$currPos = s0;
  4124. s0 = peg$FAILED;
  4125. }
  4126. } else {
  4127. peg$currPos = s0;
  4128. s0 = peg$FAILED;
  4129. }
  4130. } else {
  4131. peg$currPos = s0;
  4132. s0 = peg$FAILED;
  4133. }
  4134. if (s0 === peg$FAILED) {
  4135. s0 = peg$currPos;
  4136. if (input.charCodeAt(peg$currPos) === 46) {
  4137. s1 = peg$c30;
  4138. peg$currPos++;
  4139. } else {
  4140. s1 = peg$FAILED;
  4141. if (peg$silentFails === 0) { peg$fail(peg$c31); }
  4142. }
  4143. if (s1 !== peg$FAILED) {
  4144. s2 = peg$parseDecimalDigits();
  4145. if (s2 !== peg$FAILED) {
  4146. s3 = peg$parseExponentPart();
  4147. if (s3 === peg$FAILED) {
  4148. s3 = null;
  4149. }
  4150. if (s3 !== peg$FAILED) {
  4151. peg$savedPos = s0;
  4152. s1 = peg$c198(s2, s3);
  4153. s0 = s1;
  4154. } else {
  4155. peg$currPos = s0;
  4156. s0 = peg$FAILED;
  4157. }
  4158. } else {
  4159. peg$currPos = s0;
  4160. s0 = peg$FAILED;
  4161. }
  4162. } else {
  4163. peg$currPos = s0;
  4164. s0 = peg$FAILED;
  4165. }
  4166. if (s0 === peg$FAILED) {
  4167. s0 = peg$currPos;
  4168. s1 = peg$parseDecimalIntegerLiteral();
  4169. if (s1 !== peg$FAILED) {
  4170. s2 = peg$parseExponentPart();
  4171. if (s2 === peg$FAILED) {
  4172. s2 = null;
  4173. }
  4174. if (s2 !== peg$FAILED) {
  4175. peg$savedPos = s0;
  4176. s1 = peg$c199(s1, s2);
  4177. s0 = s1;
  4178. } else {
  4179. peg$currPos = s0;
  4180. s0 = peg$FAILED;
  4181. }
  4182. } else {
  4183. peg$currPos = s0;
  4184. s0 = peg$FAILED;
  4185. }
  4186. }
  4187. }
  4188. return s0;
  4189. }
  4190. function peg$parseDecimalIntegerLiteral() {
  4191. var s0, s1, s2, s3;
  4192. if (input.charCodeAt(peg$currPos) === 48) {
  4193. s0 = peg$c200;
  4194. peg$currPos++;
  4195. } else {
  4196. s0 = peg$FAILED;
  4197. if (peg$silentFails === 0) { peg$fail(peg$c201); }
  4198. }
  4199. if (s0 === peg$FAILED) {
  4200. s0 = peg$currPos;
  4201. s1 = peg$currPos;
  4202. s2 = peg$parseNonZeroDigit();
  4203. if (s2 !== peg$FAILED) {
  4204. s3 = peg$parseDecimalDigits();
  4205. if (s3 === peg$FAILED) {
  4206. s3 = null;
  4207. }
  4208. if (s3 !== peg$FAILED) {
  4209. s2 = [s2, s3];
  4210. s1 = s2;
  4211. } else {
  4212. peg$currPos = s1;
  4213. s1 = peg$FAILED;
  4214. }
  4215. } else {
  4216. peg$currPos = s1;
  4217. s1 = peg$FAILED;
  4218. }
  4219. if (s1 !== peg$FAILED) {
  4220. s0 = input.substring(s0, peg$currPos);
  4221. } else {
  4222. s0 = s1;
  4223. }
  4224. }
  4225. return s0;
  4226. }
  4227. function peg$parseDecimalDigits() {
  4228. var s0, s1, s2;
  4229. s0 = peg$currPos;
  4230. s1 = [];
  4231. s2 = peg$parseDecimalDigit();
  4232. if (s2 !== peg$FAILED) {
  4233. while (s2 !== peg$FAILED) {
  4234. s1.push(s2);
  4235. s2 = peg$parseDecimalDigit();
  4236. }
  4237. } else {
  4238. s1 = peg$FAILED;
  4239. }
  4240. if (s1 !== peg$FAILED) {
  4241. s0 = input.substring(s0, peg$currPos);
  4242. } else {
  4243. s0 = s1;
  4244. }
  4245. return s0;
  4246. }
  4247. function peg$parseExponentPart() {
  4248. var s0, s1, s2, s3;
  4249. s0 = peg$currPos;
  4250. s1 = peg$currPos;
  4251. s2 = peg$parseExponentIndicator();
  4252. if (s2 !== peg$FAILED) {
  4253. s3 = peg$parseSignedInteger();
  4254. if (s3 !== peg$FAILED) {
  4255. s2 = [s2, s3];
  4256. s1 = s2;
  4257. } else {
  4258. peg$currPos = s1;
  4259. s1 = peg$FAILED;
  4260. }
  4261. } else {
  4262. peg$currPos = s1;
  4263. s1 = peg$FAILED;
  4264. }
  4265. if (s1 !== peg$FAILED) {
  4266. s0 = input.substring(s0, peg$currPos);
  4267. } else {
  4268. s0 = s1;
  4269. }
  4270. return s0;
  4271. }
  4272. function peg$parseExponentIndicator() {
  4273. var s0;
  4274. if (peg$c202.test(input.charAt(peg$currPos))) {
  4275. s0 = input.charAt(peg$currPos);
  4276. peg$currPos++;
  4277. } else {
  4278. s0 = peg$FAILED;
  4279. if (peg$silentFails === 0) { peg$fail(peg$c203); }
  4280. }
  4281. return s0;
  4282. }
  4283. function peg$parseSignedInteger() {
  4284. var s0, s1, s2, s3;
  4285. s0 = peg$currPos;
  4286. s1 = peg$currPos;
  4287. if (peg$c204.test(input.charAt(peg$currPos))) {
  4288. s2 = input.charAt(peg$currPos);
  4289. peg$currPos++;
  4290. } else {
  4291. s2 = peg$FAILED;
  4292. if (peg$silentFails === 0) { peg$fail(peg$c205); }
  4293. }
  4294. if (s2 === peg$FAILED) {
  4295. s2 = null;
  4296. }
  4297. if (s2 !== peg$FAILED) {
  4298. s3 = peg$parseDecimalDigits();
  4299. if (s3 !== peg$FAILED) {
  4300. s2 = [s2, s3];
  4301. s1 = s2;
  4302. } else {
  4303. peg$currPos = s1;
  4304. s1 = peg$FAILED;
  4305. }
  4306. } else {
  4307. peg$currPos = s1;
  4308. s1 = peg$FAILED;
  4309. }
  4310. if (s1 !== peg$FAILED) {
  4311. s0 = input.substring(s0, peg$currPos);
  4312. } else {
  4313. s0 = s1;
  4314. }
  4315. return s0;
  4316. }
  4317. function peg$parseHexIntegerLiteral() {
  4318. var s0, s1, s2, s3, s4, s5;
  4319. s0 = peg$currPos;
  4320. if (input.charCodeAt(peg$currPos) === 48) {
  4321. s1 = peg$c200;
  4322. peg$currPos++;
  4323. } else {
  4324. s1 = peg$FAILED;
  4325. if (peg$silentFails === 0) { peg$fail(peg$c201); }
  4326. }
  4327. if (s1 !== peg$FAILED) {
  4328. if (peg$c206.test(input.charAt(peg$currPos))) {
  4329. s2 = input.charAt(peg$currPos);
  4330. peg$currPos++;
  4331. } else {
  4332. s2 = peg$FAILED;
  4333. if (peg$silentFails === 0) { peg$fail(peg$c207); }
  4334. }
  4335. if (s2 !== peg$FAILED) {
  4336. s3 = peg$currPos;
  4337. s4 = [];
  4338. s5 = peg$parseHexDigit();
  4339. if (s5 !== peg$FAILED) {
  4340. while (s5 !== peg$FAILED) {
  4341. s4.push(s5);
  4342. s5 = peg$parseHexDigit();
  4343. }
  4344. } else {
  4345. s4 = peg$FAILED;
  4346. }
  4347. if (s4 !== peg$FAILED) {
  4348. s3 = input.substring(s3, peg$currPos);
  4349. } else {
  4350. s3 = s4;
  4351. }
  4352. if (s3 !== peg$FAILED) {
  4353. peg$savedPos = s0;
  4354. s1 = peg$c208(s3);
  4355. s0 = s1;
  4356. } else {
  4357. peg$currPos = s0;
  4358. s0 = peg$FAILED;
  4359. }
  4360. } else {
  4361. peg$currPos = s0;
  4362. s0 = peg$FAILED;
  4363. }
  4364. } else {
  4365. peg$currPos = s0;
  4366. s0 = peg$FAILED;
  4367. }
  4368. return s0;
  4369. }
  4370. function peg$parseNullLiteral() {
  4371. var s0;
  4372. if (input.substr(peg$currPos, 4) === peg$c209) {
  4373. s0 = peg$c209;
  4374. peg$currPos += 4;
  4375. } else {
  4376. s0 = peg$FAILED;
  4377. if (peg$silentFails === 0) { peg$fail(peg$c210); }
  4378. }
  4379. return s0;
  4380. }
  4381. function peg$parseUndefinedLiteral() {
  4382. var s0;
  4383. if (input.substr(peg$currPos, 9) === peg$c211) {
  4384. s0 = peg$c211;
  4385. peg$currPos += 9;
  4386. } else {
  4387. s0 = peg$FAILED;
  4388. if (peg$silentFails === 0) { peg$fail(peg$c212); }
  4389. }
  4390. return s0;
  4391. }
  4392. function peg$parseUnknownLiteral() {
  4393. var s0, s1;
  4394. s0 = peg$currPos;
  4395. if (input.charCodeAt(peg$currPos) === 63) {
  4396. s1 = peg$c1;
  4397. peg$currPos++;
  4398. } else {
  4399. s1 = peg$FAILED;
  4400. if (peg$silentFails === 0) { peg$fail(peg$c2); }
  4401. }
  4402. if (s1 !== peg$FAILED) {
  4403. peg$savedPos = s0;
  4404. s1 = peg$c213();
  4405. }
  4406. s0 = s1;
  4407. return s0;
  4408. }
  4409. function peg$parseBooleanLiteral() {
  4410. var s0;
  4411. if (input.substr(peg$currPos, 4) === peg$c214) {
  4412. s0 = peg$c214;
  4413. peg$currPos += 4;
  4414. } else {
  4415. s0 = peg$FAILED;
  4416. if (peg$silentFails === 0) { peg$fail(peg$c215); }
  4417. }
  4418. if (s0 === peg$FAILED) {
  4419. if (input.substr(peg$currPos, 5) === peg$c216) {
  4420. s0 = peg$c216;
  4421. peg$currPos += 5;
  4422. } else {
  4423. s0 = peg$FAILED;
  4424. if (peg$silentFails === 0) { peg$fail(peg$c217); }
  4425. }
  4426. }
  4427. return s0;
  4428. }
  4429. function peg$parseFunctionLiteral() {
  4430. var s0;
  4431. s0 = peg$parseFunctionLiteralUc();
  4432. if (s0 === peg$FAILED) {
  4433. s0 = peg$parseFunctionLiteralLc();
  4434. }
  4435. return s0;
  4436. }
  4437. function peg$parseFunctionLiteralUc() {
  4438. var s0;
  4439. if (input.substr(peg$currPos, 8) === peg$c218) {
  4440. s0 = peg$c218;
  4441. peg$currPos += 8;
  4442. } else {
  4443. s0 = peg$FAILED;
  4444. if (peg$silentFails === 0) { peg$fail(peg$c219); }
  4445. }
  4446. return s0;
  4447. }
  4448. function peg$parseFunctionLiteralLc() {
  4449. var s0;
  4450. if (input.substr(peg$currPos, 8) === peg$c220) {
  4451. s0 = peg$c220;
  4452. peg$currPos += 8;
  4453. } else {
  4454. s0 = peg$FAILED;
  4455. if (peg$silentFails === 0) { peg$fail(peg$c221); }
  4456. }
  4457. return s0;
  4458. }
  4459. function peg$parseUnicodeLetter() {
  4460. var s0;
  4461. s0 = peg$parseUnicodeLu();
  4462. if (s0 === peg$FAILED) {
  4463. s0 = peg$parseUnicodeLl();
  4464. if (s0 === peg$FAILED) {
  4465. s0 = peg$parseUnicodeLt();
  4466. if (s0 === peg$FAILED) {
  4467. s0 = peg$parseUnicodeLm();
  4468. if (s0 === peg$FAILED) {
  4469. s0 = peg$parseUnicodeLo();
  4470. if (s0 === peg$FAILED) {
  4471. s0 = peg$parseUnicodeLn();
  4472. }
  4473. }
  4474. }
  4475. }
  4476. }
  4477. return s0;
  4478. }
  4479. function peg$parseUnicodeEscapeSequenceLiteral() {
  4480. var s0, s1, s2, s3;
  4481. s0 = peg$currPos;
  4482. s1 = peg$currPos;
  4483. if (input.charCodeAt(peg$currPos) === 92) {
  4484. s2 = peg$c222;
  4485. peg$currPos++;
  4486. } else {
  4487. s2 = peg$FAILED;
  4488. if (peg$silentFails === 0) { peg$fail(peg$c223); }
  4489. }
  4490. if (s2 !== peg$FAILED) {
  4491. s3 = peg$parseUnicodeEscapeSequence();
  4492. if (s3 !== peg$FAILED) {
  4493. s2 = [s2, s3];
  4494. s1 = s2;
  4495. } else {
  4496. peg$currPos = s1;
  4497. s1 = peg$FAILED;
  4498. }
  4499. } else {
  4500. peg$currPos = s1;
  4501. s1 = peg$FAILED;
  4502. }
  4503. if (s1 !== peg$FAILED) {
  4504. s0 = input.substring(s0, peg$currPos);
  4505. } else {
  4506. s0 = s1;
  4507. }
  4508. return s0;
  4509. }
  4510. function peg$parseUnicodeEscapeSequence() {
  4511. var s0, s1, s2, s3, s4, s5, s6, s7;
  4512. s0 = peg$currPos;
  4513. if (input.charCodeAt(peg$currPos) === 117) {
  4514. s1 = peg$c224;
  4515. peg$currPos++;
  4516. } else {
  4517. s1 = peg$FAILED;
  4518. if (peg$silentFails === 0) { peg$fail(peg$c225); }
  4519. }
  4520. if (s1 !== peg$FAILED) {
  4521. s2 = peg$currPos;
  4522. s3 = peg$currPos;
  4523. s4 = peg$parseHexDigit();
  4524. if (s4 !== peg$FAILED) {
  4525. s5 = peg$parseHexDigit();
  4526. if (s5 !== peg$FAILED) {
  4527. s6 = peg$parseHexDigit();
  4528. if (s6 !== peg$FAILED) {
  4529. s7 = peg$parseHexDigit();
  4530. if (s7 !== peg$FAILED) {
  4531. s4 = [s4, s5, s6, s7];
  4532. s3 = s4;
  4533. } else {
  4534. peg$currPos = s3;
  4535. s3 = peg$FAILED;
  4536. }
  4537. } else {
  4538. peg$currPos = s3;
  4539. s3 = peg$FAILED;
  4540. }
  4541. } else {
  4542. peg$currPos = s3;
  4543. s3 = peg$FAILED;
  4544. }
  4545. } else {
  4546. peg$currPos = s3;
  4547. s3 = peg$FAILED;
  4548. }
  4549. if (s3 !== peg$FAILED) {
  4550. s2 = input.substring(s2, peg$currPos);
  4551. } else {
  4552. s2 = s3;
  4553. }
  4554. if (s2 !== peg$FAILED) {
  4555. peg$savedPos = s0;
  4556. s1 = peg$c226(s2);
  4557. s0 = s1;
  4558. } else {
  4559. peg$currPos = s0;
  4560. s0 = peg$FAILED;
  4561. }
  4562. } else {
  4563. peg$currPos = s0;
  4564. s0 = peg$FAILED;
  4565. }
  4566. return s0;
  4567. }
  4568. function peg$parseDecimalDigit() {
  4569. var s0;
  4570. if (peg$c227.test(input.charAt(peg$currPos))) {
  4571. s0 = input.charAt(peg$currPos);
  4572. peg$currPos++;
  4573. } else {
  4574. s0 = peg$FAILED;
  4575. if (peg$silentFails === 0) { peg$fail(peg$c228); }
  4576. }
  4577. return s0;
  4578. }
  4579. function peg$parseNonZeroDigit() {
  4580. var s0;
  4581. if (peg$c229.test(input.charAt(peg$currPos))) {
  4582. s0 = input.charAt(peg$currPos);
  4583. peg$currPos++;
  4584. } else {
  4585. s0 = peg$FAILED;
  4586. if (peg$silentFails === 0) { peg$fail(peg$c230); }
  4587. }
  4588. return s0;
  4589. }
  4590. function peg$parseHexDigit() {
  4591. var s0;
  4592. if (peg$c231.test(input.charAt(peg$currPos))) {
  4593. s0 = input.charAt(peg$currPos);
  4594. peg$currPos++;
  4595. } else {
  4596. s0 = peg$FAILED;
  4597. if (peg$silentFails === 0) { peg$fail(peg$c232); }
  4598. }
  4599. return s0;
  4600. }
  4601. function peg$parseUnicodeMc() {
  4602. var s0, s1;
  4603. peg$silentFails++;
  4604. if (peg$c234.test(input.charAt(peg$currPos))) {
  4605. s0 = input.charAt(peg$currPos);
  4606. peg$currPos++;
  4607. } else {
  4608. s0 = peg$FAILED;
  4609. if (peg$silentFails === 0) { peg$fail(peg$c235); }
  4610. }
  4611. peg$silentFails--;
  4612. if (s0 === peg$FAILED) {
  4613. s1 = peg$FAILED;
  4614. if (peg$silentFails === 0) { peg$fail(peg$c233); }
  4615. }
  4616. return s0;
  4617. }
  4618. function peg$parseUnicodeNd() {
  4619. var s0, s1;
  4620. peg$silentFails++;
  4621. if (peg$c237.test(input.charAt(peg$currPos))) {
  4622. s0 = input.charAt(peg$currPos);
  4623. peg$currPos++;
  4624. } else {
  4625. s0 = peg$FAILED;
  4626. if (peg$silentFails === 0) { peg$fail(peg$c238); }
  4627. }
  4628. peg$silentFails--;
  4629. if (s0 === peg$FAILED) {
  4630. s1 = peg$FAILED;
  4631. if (peg$silentFails === 0) { peg$fail(peg$c236); }
  4632. }
  4633. return s0;
  4634. }
  4635. function peg$parseUnicodePc() {
  4636. var s0, s1;
  4637. peg$silentFails++;
  4638. if (peg$c240.test(input.charAt(peg$currPos))) {
  4639. s0 = input.charAt(peg$currPos);
  4640. peg$currPos++;
  4641. } else {
  4642. s0 = peg$FAILED;
  4643. if (peg$silentFails === 0) { peg$fail(peg$c241); }
  4644. }
  4645. peg$silentFails--;
  4646. if (s0 === peg$FAILED) {
  4647. s1 = peg$FAILED;
  4648. if (peg$silentFails === 0) { peg$fail(peg$c239); }
  4649. }
  4650. return s0;
  4651. }
  4652. function peg$parseUnicodeLu() {
  4653. var s0, s1;
  4654. peg$silentFails++;
  4655. if (peg$c243.test(input.charAt(peg$currPos))) {
  4656. s0 = input.charAt(peg$currPos);
  4657. peg$currPos++;
  4658. } else {
  4659. s0 = peg$FAILED;
  4660. if (peg$silentFails === 0) { peg$fail(peg$c244); }
  4661. }
  4662. peg$silentFails--;
  4663. if (s0 === peg$FAILED) {
  4664. s1 = peg$FAILED;
  4665. if (peg$silentFails === 0) { peg$fail(peg$c242); }
  4666. }
  4667. return s0;
  4668. }
  4669. function peg$parseUnicodeLl() {
  4670. var s0, s1;
  4671. peg$silentFails++;
  4672. if (peg$c246.test(input.charAt(peg$currPos))) {
  4673. s0 = input.charAt(peg$currPos);
  4674. peg$currPos++;
  4675. } else {
  4676. s0 = peg$FAILED;
  4677. if (peg$silentFails === 0) { peg$fail(peg$c247); }
  4678. }
  4679. peg$silentFails--;
  4680. if (s0 === peg$FAILED) {
  4681. s1 = peg$FAILED;
  4682. if (peg$silentFails === 0) { peg$fail(peg$c245); }
  4683. }
  4684. return s0;
  4685. }
  4686. function peg$parseUnicodeLt() {
  4687. var s0, s1;
  4688. peg$silentFails++;
  4689. if (peg$c249.test(input.charAt(peg$currPos))) {
  4690. s0 = input.charAt(peg$currPos);
  4691. peg$currPos++;
  4692. } else {
  4693. s0 = peg$FAILED;
  4694. if (peg$silentFails === 0) { peg$fail(peg$c250); }
  4695. }
  4696. peg$silentFails--;
  4697. if (s0 === peg$FAILED) {
  4698. s1 = peg$FAILED;
  4699. if (peg$silentFails === 0) { peg$fail(peg$c248); }
  4700. }
  4701. return s0;
  4702. }
  4703. function peg$parseUnicodeLm() {
  4704. var s0, s1;
  4705. peg$silentFails++;
  4706. if (peg$c252.test(input.charAt(peg$currPos))) {
  4707. s0 = input.charAt(peg$currPos);
  4708. peg$currPos++;
  4709. } else {
  4710. s0 = peg$FAILED;
  4711. if (peg$silentFails === 0) { peg$fail(peg$c253); }
  4712. }
  4713. peg$silentFails--;
  4714. if (s0 === peg$FAILED) {
  4715. s1 = peg$FAILED;
  4716. if (peg$silentFails === 0) { peg$fail(peg$c251); }
  4717. }
  4718. return s0;
  4719. }
  4720. function peg$parseUnicodeLo() {
  4721. var s0, s1;
  4722. peg$silentFails++;
  4723. if (peg$c255.test(input.charAt(peg$currPos))) {
  4724. s0 = input.charAt(peg$currPos);
  4725. peg$currPos++;
  4726. } else {
  4727. s0 = peg$FAILED;
  4728. if (peg$silentFails === 0) { peg$fail(peg$c256); }
  4729. }
  4730. peg$silentFails--;
  4731. if (s0 === peg$FAILED) {
  4732. s1 = peg$FAILED;
  4733. if (peg$silentFails === 0) { peg$fail(peg$c254); }
  4734. }
  4735. return s0;
  4736. }
  4737. function peg$parseUnicodeLn() {
  4738. var s0, s1;
  4739. peg$silentFails++;
  4740. if (peg$c258.test(input.charAt(peg$currPos))) {
  4741. s0 = input.charAt(peg$currPos);
  4742. peg$currPos++;
  4743. } else {
  4744. s0 = peg$FAILED;
  4745. if (peg$silentFails === 0) { peg$fail(peg$c259); }
  4746. }
  4747. peg$silentFails--;
  4748. if (s0 === peg$FAILED) {
  4749. s1 = peg$FAILED;
  4750. if (peg$silentFails === 0) { peg$fail(peg$c257); }
  4751. }
  4752. return s0;
  4753. }
  4754. function peg$parseUnicodeZs() {
  4755. var s0, s1;
  4756. peg$silentFails++;
  4757. if (peg$c261.test(input.charAt(peg$currPos))) {
  4758. s0 = input.charAt(peg$currPos);
  4759. peg$currPos++;
  4760. } else {
  4761. s0 = peg$FAILED;
  4762. if (peg$silentFails === 0) { peg$fail(peg$c262); }
  4763. }
  4764. peg$silentFails--;
  4765. if (s0 === peg$FAILED) {
  4766. s1 = peg$FAILED;
  4767. if (peg$silentFails === 0) { peg$fail(peg$c260); }
  4768. }
  4769. return s0;
  4770. }
  4771. function peg$parseDoubleStringCharacter() {
  4772. var s0, s1, s2;
  4773. s0 = peg$currPos;
  4774. s1 = peg$currPos;
  4775. peg$silentFails++;
  4776. if (input.charCodeAt(peg$currPos) === 34) {
  4777. s2 = peg$c192;
  4778. peg$currPos++;
  4779. } else {
  4780. s2 = peg$FAILED;
  4781. if (peg$silentFails === 0) { peg$fail(peg$c193); }
  4782. }
  4783. if (s2 === peg$FAILED) {
  4784. if (input.charCodeAt(peg$currPos) === 92) {
  4785. s2 = peg$c222;
  4786. peg$currPos++;
  4787. } else {
  4788. s2 = peg$FAILED;
  4789. if (peg$silentFails === 0) { peg$fail(peg$c223); }
  4790. }
  4791. if (s2 === peg$FAILED) {
  4792. s2 = peg$parseLineTerminator();
  4793. }
  4794. }
  4795. peg$silentFails--;
  4796. if (s2 === peg$FAILED) {
  4797. s1 = void 0;
  4798. } else {
  4799. peg$currPos = s1;
  4800. s1 = peg$FAILED;
  4801. }
  4802. if (s1 !== peg$FAILED) {
  4803. s2 = peg$parseSourceCharacter();
  4804. if (s2 !== peg$FAILED) {
  4805. peg$savedPos = s0;
  4806. s1 = peg$c263(s2);
  4807. s0 = s1;
  4808. } else {
  4809. peg$currPos = s0;
  4810. s0 = peg$FAILED;
  4811. }
  4812. } else {
  4813. peg$currPos = s0;
  4814. s0 = peg$FAILED;
  4815. }
  4816. if (s0 === peg$FAILED) {
  4817. s0 = peg$currPos;
  4818. if (input.charCodeAt(peg$currPos) === 92) {
  4819. s1 = peg$c222;
  4820. peg$currPos++;
  4821. } else {
  4822. s1 = peg$FAILED;
  4823. if (peg$silentFails === 0) { peg$fail(peg$c223); }
  4824. }
  4825. if (s1 !== peg$FAILED) {
  4826. s2 = peg$parseEscapeSequence();
  4827. if (s2 !== peg$FAILED) {
  4828. peg$savedPos = s0;
  4829. s1 = peg$c264(s2);
  4830. s0 = s1;
  4831. } else {
  4832. peg$currPos = s0;
  4833. s0 = peg$FAILED;
  4834. }
  4835. } else {
  4836. peg$currPos = s0;
  4837. s0 = peg$FAILED;
  4838. }
  4839. if (s0 === peg$FAILED) {
  4840. s0 = peg$parseLineContinuation();
  4841. }
  4842. }
  4843. return s0;
  4844. }
  4845. function peg$parseSingleStringCharacter() {
  4846. var s0, s1, s2;
  4847. s0 = peg$currPos;
  4848. s1 = peg$currPos;
  4849. peg$silentFails++;
  4850. if (input.charCodeAt(peg$currPos) === 39) {
  4851. s2 = peg$c195;
  4852. peg$currPos++;
  4853. } else {
  4854. s2 = peg$FAILED;
  4855. if (peg$silentFails === 0) { peg$fail(peg$c196); }
  4856. }
  4857. if (s2 === peg$FAILED) {
  4858. if (input.charCodeAt(peg$currPos) === 92) {
  4859. s2 = peg$c222;
  4860. peg$currPos++;
  4861. } else {
  4862. s2 = peg$FAILED;
  4863. if (peg$silentFails === 0) { peg$fail(peg$c223); }
  4864. }
  4865. if (s2 === peg$FAILED) {
  4866. s2 = peg$parseLineTerminator();
  4867. }
  4868. }
  4869. peg$silentFails--;
  4870. if (s2 === peg$FAILED) {
  4871. s1 = void 0;
  4872. } else {
  4873. peg$currPos = s1;
  4874. s1 = peg$FAILED;
  4875. }
  4876. if (s1 !== peg$FAILED) {
  4877. s2 = peg$parseSourceCharacter();
  4878. if (s2 !== peg$FAILED) {
  4879. peg$savedPos = s0;
  4880. s1 = peg$c263(s2);
  4881. s0 = s1;
  4882. } else {
  4883. peg$currPos = s0;
  4884. s0 = peg$FAILED;
  4885. }
  4886. } else {
  4887. peg$currPos = s0;
  4888. s0 = peg$FAILED;
  4889. }
  4890. if (s0 === peg$FAILED) {
  4891. s0 = peg$currPos;
  4892. if (input.charCodeAt(peg$currPos) === 92) {
  4893. s1 = peg$c222;
  4894. peg$currPos++;
  4895. } else {
  4896. s1 = peg$FAILED;
  4897. if (peg$silentFails === 0) { peg$fail(peg$c223); }
  4898. }
  4899. if (s1 !== peg$FAILED) {
  4900. s2 = peg$parseEscapeSequence();
  4901. if (s2 !== peg$FAILED) {
  4902. peg$savedPos = s0;
  4903. s1 = peg$c264(s2);
  4904. s0 = s1;
  4905. } else {
  4906. peg$currPos = s0;
  4907. s0 = peg$FAILED;
  4908. }
  4909. } else {
  4910. peg$currPos = s0;
  4911. s0 = peg$FAILED;
  4912. }
  4913. if (s0 === peg$FAILED) {
  4914. s0 = peg$parseLineContinuation();
  4915. }
  4916. }
  4917. return s0;
  4918. }
  4919. function peg$parseLineTerminatorSequence() {
  4920. var s0, s1, s2, s3;
  4921. if (input.charCodeAt(peg$currPos) === 10) {
  4922. s0 = peg$c265;
  4923. peg$currPos++;
  4924. } else {
  4925. s0 = peg$FAILED;
  4926. if (peg$silentFails === 0) { peg$fail(peg$c266); }
  4927. }
  4928. if (s0 === peg$FAILED) {
  4929. s0 = peg$currPos;
  4930. if (input.charCodeAt(peg$currPos) === 13) {
  4931. s1 = peg$c267;
  4932. peg$currPos++;
  4933. } else {
  4934. s1 = peg$FAILED;
  4935. if (peg$silentFails === 0) { peg$fail(peg$c268); }
  4936. }
  4937. if (s1 !== peg$FAILED) {
  4938. s2 = peg$currPos;
  4939. peg$silentFails++;
  4940. if (input.charCodeAt(peg$currPos) === 10) {
  4941. s3 = peg$c265;
  4942. peg$currPos++;
  4943. } else {
  4944. s3 = peg$FAILED;
  4945. if (peg$silentFails === 0) { peg$fail(peg$c266); }
  4946. }
  4947. peg$silentFails--;
  4948. if (s3 === peg$FAILED) {
  4949. s2 = void 0;
  4950. } else {
  4951. peg$currPos = s2;
  4952. s2 = peg$FAILED;
  4953. }
  4954. if (s2 !== peg$FAILED) {
  4955. s1 = [s1, s2];
  4956. s0 = s1;
  4957. } else {
  4958. peg$currPos = s0;
  4959. s0 = peg$FAILED;
  4960. }
  4961. } else {
  4962. peg$currPos = s0;
  4963. s0 = peg$FAILED;
  4964. }
  4965. if (s0 === peg$FAILED) {
  4966. if (input.charCodeAt(peg$currPos) === 8232) {
  4967. s0 = peg$c269;
  4968. peg$currPos++;
  4969. } else {
  4970. s0 = peg$FAILED;
  4971. if (peg$silentFails === 0) { peg$fail(peg$c270); }
  4972. }
  4973. if (s0 === peg$FAILED) {
  4974. if (input.charCodeAt(peg$currPos) === 8233) {
  4975. s0 = peg$c271;
  4976. peg$currPos++;
  4977. } else {
  4978. s0 = peg$FAILED;
  4979. if (peg$silentFails === 0) { peg$fail(peg$c272); }
  4980. }
  4981. if (s0 === peg$FAILED) {
  4982. if (input.substr(peg$currPos, 2) === peg$c273) {
  4983. s0 = peg$c273;
  4984. peg$currPos += 2;
  4985. } else {
  4986. s0 = peg$FAILED;
  4987. if (peg$silentFails === 0) { peg$fail(peg$c274); }
  4988. }
  4989. }
  4990. }
  4991. }
  4992. }
  4993. return s0;
  4994. }
  4995. function peg$parseLineTerminator() {
  4996. var s0;
  4997. if (input.charCodeAt(peg$currPos) === 10) {
  4998. s0 = peg$c265;
  4999. peg$currPos++;
  5000. } else {
  5001. s0 = peg$FAILED;
  5002. if (peg$silentFails === 0) { peg$fail(peg$c266); }
  5003. }
  5004. if (s0 === peg$FAILED) {
  5005. if (input.charCodeAt(peg$currPos) === 13) {
  5006. s0 = peg$c267;
  5007. peg$currPos++;
  5008. } else {
  5009. s0 = peg$FAILED;
  5010. if (peg$silentFails === 0) { peg$fail(peg$c268); }
  5011. }
  5012. if (s0 === peg$FAILED) {
  5013. if (input.charCodeAt(peg$currPos) === 8232) {
  5014. s0 = peg$c269;
  5015. peg$currPos++;
  5016. } else {
  5017. s0 = peg$FAILED;
  5018. if (peg$silentFails === 0) { peg$fail(peg$c270); }
  5019. }
  5020. if (s0 === peg$FAILED) {
  5021. if (input.charCodeAt(peg$currPos) === 8233) {
  5022. s0 = peg$c271;
  5023. peg$currPos++;
  5024. } else {
  5025. s0 = peg$FAILED;
  5026. if (peg$silentFails === 0) { peg$fail(peg$c272); }
  5027. }
  5028. }
  5029. }
  5030. }
  5031. return s0;
  5032. }
  5033. function peg$parseEscapeSequence() {
  5034. var s0, s1, s2, s3;
  5035. s0 = peg$parseCharacterEscapeSequence();
  5036. if (s0 === peg$FAILED) {
  5037. s0 = peg$currPos;
  5038. if (input.charCodeAt(peg$currPos) === 48) {
  5039. s1 = peg$c200;
  5040. peg$currPos++;
  5041. } else {
  5042. s1 = peg$FAILED;
  5043. if (peg$silentFails === 0) { peg$fail(peg$c201); }
  5044. }
  5045. if (s1 !== peg$FAILED) {
  5046. s2 = peg$currPos;
  5047. peg$silentFails++;
  5048. s3 = peg$parseDecimalDigit();
  5049. peg$silentFails--;
  5050. if (s3 === peg$FAILED) {
  5051. s2 = void 0;
  5052. } else {
  5053. peg$currPos = s2;
  5054. s2 = peg$FAILED;
  5055. }
  5056. if (s2 !== peg$FAILED) {
  5057. peg$savedPos = s0;
  5058. s1 = peg$c275();
  5059. s0 = s1;
  5060. } else {
  5061. peg$currPos = s0;
  5062. s0 = peg$FAILED;
  5063. }
  5064. } else {
  5065. peg$currPos = s0;
  5066. s0 = peg$FAILED;
  5067. }
  5068. if (s0 === peg$FAILED) {
  5069. s0 = peg$parseHexEscapeSequence();
  5070. if (s0 === peg$FAILED) {
  5071. s0 = peg$parseUnicodeEscapeSequence();
  5072. }
  5073. }
  5074. }
  5075. return s0;
  5076. }
  5077. function peg$parseCharacterEscapeSequence() {
  5078. var s0;
  5079. s0 = peg$parseSingleEscapeCharacter();
  5080. if (s0 === peg$FAILED) {
  5081. s0 = peg$parseNonEscapeCharacter();
  5082. }
  5083. return s0;
  5084. }
  5085. function peg$parseSingleEscapeCharacter() {
  5086. var s0;
  5087. if (peg$c276.test(input.charAt(peg$currPos))) {
  5088. s0 = input.charAt(peg$currPos);
  5089. peg$currPos++;
  5090. } else {
  5091. s0 = peg$FAILED;
  5092. if (peg$silentFails === 0) { peg$fail(peg$c277); }
  5093. }
  5094. return s0;
  5095. }
  5096. function peg$parseNonEscapeCharacter() {
  5097. var s0, s1, s2;
  5098. s0 = peg$currPos;
  5099. s1 = peg$currPos;
  5100. peg$silentFails++;
  5101. s2 = peg$parseEscapeCharacter();
  5102. if (s2 === peg$FAILED) {
  5103. s2 = peg$parseLineTerminator();
  5104. }
  5105. peg$silentFails--;
  5106. if (s2 === peg$FAILED) {
  5107. s1 = void 0;
  5108. } else {
  5109. peg$currPos = s1;
  5110. s1 = peg$FAILED;
  5111. }
  5112. if (s1 !== peg$FAILED) {
  5113. s2 = peg$parseSourceCharacter();
  5114. if (s2 !== peg$FAILED) {
  5115. peg$savedPos = s0;
  5116. s1 = peg$c263(s2);
  5117. s0 = s1;
  5118. } else {
  5119. peg$currPos = s0;
  5120. s0 = peg$FAILED;
  5121. }
  5122. } else {
  5123. peg$currPos = s0;
  5124. s0 = peg$FAILED;
  5125. }
  5126. return s0;
  5127. }
  5128. function peg$parseEscapeCharacter() {
  5129. var s0;
  5130. s0 = peg$parseSingleEscapeCharacter();
  5131. if (s0 === peg$FAILED) {
  5132. s0 = peg$parseDecimalDigit();
  5133. if (s0 === peg$FAILED) {
  5134. if (input.charCodeAt(peg$currPos) === 120) {
  5135. s0 = peg$c278;
  5136. peg$currPos++;
  5137. } else {
  5138. s0 = peg$FAILED;
  5139. if (peg$silentFails === 0) { peg$fail(peg$c279); }
  5140. }
  5141. if (s0 === peg$FAILED) {
  5142. if (input.charCodeAt(peg$currPos) === 117) {
  5143. s0 = peg$c224;
  5144. peg$currPos++;
  5145. } else {
  5146. s0 = peg$FAILED;
  5147. if (peg$silentFails === 0) { peg$fail(peg$c225); }
  5148. }
  5149. }
  5150. }
  5151. }
  5152. return s0;
  5153. }
  5154. function peg$parseSourceCharacter() {
  5155. var s0;
  5156. if (input.length > peg$currPos) {
  5157. s0 = input.charAt(peg$currPos);
  5158. peg$currPos++;
  5159. } else {
  5160. s0 = peg$FAILED;
  5161. if (peg$silentFails === 0) { peg$fail(peg$c280); }
  5162. }
  5163. return s0;
  5164. }
  5165. function peg$parseHexEscapeSequence() {
  5166. var s0, s1, s2, s3, s4, s5;
  5167. s0 = peg$currPos;
  5168. if (input.charCodeAt(peg$currPos) === 120) {
  5169. s1 = peg$c278;
  5170. peg$currPos++;
  5171. } else {
  5172. s1 = peg$FAILED;
  5173. if (peg$silentFails === 0) { peg$fail(peg$c279); }
  5174. }
  5175. if (s1 !== peg$FAILED) {
  5176. s2 = peg$currPos;
  5177. s3 = peg$currPos;
  5178. s4 = peg$parseHexDigit();
  5179. if (s4 !== peg$FAILED) {
  5180. s5 = peg$parseHexDigit();
  5181. if (s5 !== peg$FAILED) {
  5182. s4 = [s4, s5];
  5183. s3 = s4;
  5184. } else {
  5185. peg$currPos = s3;
  5186. s3 = peg$FAILED;
  5187. }
  5188. } else {
  5189. peg$currPos = s3;
  5190. s3 = peg$FAILED;
  5191. }
  5192. if (s3 !== peg$FAILED) {
  5193. s2 = input.substring(s2, peg$currPos);
  5194. } else {
  5195. s2 = s3;
  5196. }
  5197. if (s2 !== peg$FAILED) {
  5198. peg$savedPos = s0;
  5199. s1 = peg$c226(s2);
  5200. s0 = s1;
  5201. } else {
  5202. peg$currPos = s0;
  5203. s0 = peg$FAILED;
  5204. }
  5205. } else {
  5206. peg$currPos = s0;
  5207. s0 = peg$FAILED;
  5208. }
  5209. return s0;
  5210. }
  5211. function peg$parseLineContinuation() {
  5212. var s0, s1, s2;
  5213. s0 = peg$currPos;
  5214. if (input.charCodeAt(peg$currPos) === 92) {
  5215. s1 = peg$c222;
  5216. peg$currPos++;
  5217. } else {
  5218. s1 = peg$FAILED;
  5219. if (peg$silentFails === 0) { peg$fail(peg$c223); }
  5220. }
  5221. if (s1 !== peg$FAILED) {
  5222. s2 = peg$parseLineTerminatorSequence();
  5223. if (s2 !== peg$FAILED) {
  5224. peg$savedPos = s0;
  5225. s1 = peg$c264(s2);
  5226. s0 = s1;
  5227. } else {
  5228. peg$currPos = s0;
  5229. s0 = peg$FAILED;
  5230. }
  5231. } else {
  5232. peg$currPos = s0;
  5233. s0 = peg$FAILED;
  5234. }
  5235. return s0;
  5236. }
  5237. function peg$parse_() {
  5238. var s0, s1;
  5239. peg$silentFails++;
  5240. s0 = [];
  5241. s1 = peg$parseWhitespace();
  5242. while (s1 !== peg$FAILED) {
  5243. s0.push(s1);
  5244. s1 = peg$parseWhitespace();
  5245. }
  5246. peg$silentFails--;
  5247. if (s0 === peg$FAILED) {
  5248. s1 = peg$FAILED;
  5249. if (peg$silentFails === 0) { peg$fail(peg$c281); }
  5250. }
  5251. return s0;
  5252. }
  5253. function peg$parse__() {
  5254. var s0, s1;
  5255. peg$silentFails++;
  5256. s0 = peg$c283;
  5257. peg$silentFails--;
  5258. if (s0 === peg$FAILED) {
  5259. s1 = peg$FAILED;
  5260. if (peg$silentFails === 0) { peg$fail(peg$c282); }
  5261. }
  5262. return s0;
  5263. }
  5264. function peg$parseWhitespace() {
  5265. var s0;
  5266. if (peg$c284.test(input.charAt(peg$currPos))) {
  5267. s0 = input.charAt(peg$currPos);
  5268. peg$currPos++;
  5269. } else {
  5270. s0 = peg$FAILED;
  5271. if (peg$silentFails === 0) { peg$fail(peg$c285); }
  5272. }
  5273. if (s0 === peg$FAILED) {
  5274. s0 = peg$parseUnicodeZs();
  5275. }
  5276. return s0;
  5277. }
  5278. const Types = require('./types');
  5279. function optional(obj) {
  5280. obj.optional = true;
  5281. return obj;
  5282. }
  5283. function repeatable(obj) {
  5284. obj.repeatable = true;
  5285. return obj;
  5286. }
  5287. function nullable(obj, modifier) {
  5288. if (modifier) {
  5289. obj.nullable = (modifier === '?' ? true : false);
  5290. }
  5291. return obj;
  5292. }
  5293. peg$result = peg$startRuleFunction();
  5294. if (peg$result !== peg$FAILED && peg$currPos === input.length) {
  5295. return peg$result;
  5296. } else {
  5297. if (peg$result !== peg$FAILED && peg$currPos < input.length) {
  5298. peg$fail(peg$endExpectation());
  5299. }
  5300. throw peg$buildStructuredError(
  5301. peg$maxFailExpected,
  5302. peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
  5303. peg$maxFailPos < input.length
  5304. ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
  5305. : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
  5306. );
  5307. }
  5308. }
  5309. module.exports = {
  5310. SyntaxError: peg$SyntaxError,
  5311. parse: peg$parse
  5312. };