pmh_parser.c 346 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068
  1. /* A recursive-descent parser generated by greg 0.4.3 */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. struct _GREG;
  6. #define YYRULECOUNT 248
  7. /* PEG Markdown Highlight
  8. * Copyright 2011-2016 Ali Rantakari -- http://hasseg.org
  9. * Licensed under the GPL2+ and MIT licenses (see LICENSE for more info).
  10. *
  11. * pmh_grammar.leg
  12. *
  13. * This is a slightly adapted version of the PEG grammar from John MacFarlane's
  14. * peg-markdown compiler.
  15. */
  16. /* PEG Markdown Highlight
  17. * Copyright 2011-2016 Ali Rantakari -- http://hasseg.org
  18. * Licensed under the GPL2+ and MIT licenses (see LICENSE for more info).
  19. *
  20. * pmh_parser_head.c
  21. *
  22. * Code to be inserted into the beginning of the parser code generated
  23. * from the PEG grammar.
  24. */
  25. #include "pmh_parser.h"
  26. #ifndef pmh_DEBUG_OUTPUT
  27. #define pmh_DEBUG_OUTPUT 0
  28. #endif
  29. #if pmh_DEBUG_OUTPUT
  30. #define pmh_IF(x) if (x)
  31. #define pmh_PRINTF(x, ...) fprintf(stderr, x, ##__VA_ARGS__)
  32. #define pmh_PUTCHAR(x) putchar(x)
  33. #else
  34. #define pmh_IF(x)
  35. #define pmh_PRINTF(x, ...)
  36. #define pmh_PUTCHAR(x)
  37. #endif
  38. // Alias strdup to _strdup on MSVC:
  39. #ifdef _MSC_VER
  40. #define strdup _strdup
  41. #endif
  42. char *strdup_or_null(char *s)
  43. {
  44. return (s == NULL) ? NULL : strdup(s);
  45. }
  46. // Internal language element occurrence structure, containing
  47. // both public and private members:
  48. struct pmh_RealElement
  49. {
  50. // "Public" members:
  51. // (these must match what's defined in pmh_definitions.h)
  52. // -----------------------------------------------
  53. pmh_element_type type;
  54. unsigned long pos;
  55. unsigned long end;
  56. struct pmh_RealElement *next;
  57. char *label;
  58. char *address;
  59. // "Private" members for use by the parser itself:
  60. // -----------------------------------------------
  61. // next element in list of all elements:
  62. struct pmh_RealElement *all_elems_next;
  63. // offset to text (for elements of type pmh_EXTRA_TEXT, used when the
  64. // parser reads the value of 'text'):
  65. int text_offset;
  66. // text content (for elements of type pmh_EXTRA_TEXT):
  67. char *text;
  68. // children of element (for elements of type pmh_RAW_LIST)
  69. struct pmh_RealElement *children;
  70. };
  71. typedef struct pmh_RealElement pmh_realelement;
  72. // Parser state data:
  73. typedef struct
  74. {
  75. /* The original, unmodified UTF-8 input: */
  76. char *original_input;
  77. /* The offsets of the bytes we have stripped from original_input: */
  78. unsigned long *strip_positions;
  79. size_t strip_positions_len;
  80. /* Buffer of characters to be parsed: */
  81. char *charbuf;
  82. /* Linked list of {start, end} offset pairs determining which parts */
  83. /* of charbuf to actually parse: */
  84. pmh_realelement *current_elem;
  85. pmh_realelement *elem_head;
  86. /* Current parsing offset within charbuf: */
  87. unsigned long offset;
  88. /* The extensions to use for parsing (bitfield */
  89. /* of enum pmh_extensions): */
  90. int extensions;
  91. /* Array of parsing result elements, indexed by type: */
  92. pmh_realelement **head_elems;
  93. /* Whether we are parsing only references: */
  94. bool parsing_only_references;
  95. /* List of reference elements: */
  96. pmh_realelement *references;
  97. } parser_data;
  98. static parser_data *mk_parser_data(char *original_input,
  99. unsigned long *strip_positions,
  100. size_t strip_positions_len,
  101. char *charbuf,
  102. pmh_realelement *parsing_elems,
  103. unsigned long offset,
  104. int extensions,
  105. pmh_realelement **head_elems,
  106. pmh_realelement *references)
  107. {
  108. parser_data *p_data = (parser_data *)malloc(sizeof(parser_data));
  109. p_data->extensions = extensions;
  110. p_data->original_input = original_input;
  111. p_data->strip_positions = strip_positions;
  112. p_data->strip_positions_len = strip_positions_len;
  113. p_data->charbuf = charbuf;
  114. p_data->offset = offset;
  115. p_data->elem_head = p_data->current_elem = parsing_elems;
  116. p_data->references = references;
  117. p_data->parsing_only_references = false;
  118. if (head_elems != NULL)
  119. p_data->head_elems = head_elems;
  120. else {
  121. p_data->head_elems = (pmh_realelement **)
  122. malloc(sizeof(pmh_realelement *) * pmh_NUM_TYPES);
  123. int i;
  124. for (i = 0; i < pmh_NUM_TYPES; i++)
  125. p_data->head_elems[i] = NULL;
  126. }
  127. return p_data;
  128. }
  129. // Forward declarations
  130. static void parse_markdown(parser_data *p_data);
  131. static void parse_references(parser_data *p_data);
  132. static char **get_element_type_names()
  133. {
  134. static char **elem_type_names = NULL;
  135. if (elem_type_names == NULL)
  136. {
  137. elem_type_names = (char **)malloc(sizeof(char*) * pmh_NUM_LANG_TYPES);
  138. int i;
  139. for (i = 0; i < pmh_NUM_LANG_TYPES; i++)
  140. elem_type_names[i] = NULL;
  141. elem_type_names[pmh_LINK] = "LINK";
  142. elem_type_names[pmh_AUTO_LINK_URL] = "AUTO_LINK_URL";
  143. elem_type_names[pmh_AUTO_LINK_EMAIL] = "AUTO_LINK_EMAIL";
  144. elem_type_names[pmh_IMAGE] = "IMAGE";
  145. elem_type_names[pmh_CODE] = "CODE";
  146. elem_type_names[pmh_HTML] = "HTML";
  147. elem_type_names[pmh_HTML_ENTITY] = "HTML_ENTITY";
  148. elem_type_names[pmh_EMPH] = "EMPH";
  149. elem_type_names[pmh_STRONG] = "STRONG";
  150. elem_type_names[pmh_LIST_BULLET] = "LIST_BULLET";
  151. elem_type_names[pmh_LIST_ENUMERATOR] = "LIST_ENUMERATOR";
  152. elem_type_names[pmh_COMMENT] = "COMMENT";
  153. elem_type_names[pmh_H1] = "H1";
  154. elem_type_names[pmh_H2] = "H2";
  155. elem_type_names[pmh_H3] = "H3";
  156. elem_type_names[pmh_H4] = "H4";
  157. elem_type_names[pmh_H5] = "H5";
  158. elem_type_names[pmh_H6] = "H6";
  159. elem_type_names[pmh_BLOCKQUOTE] = "BLOCKQUOTE";
  160. elem_type_names[pmh_VERBATIM] = "VERBATIM";
  161. elem_type_names[pmh_HTMLBLOCK] = "HTMLBLOCK";
  162. elem_type_names[pmh_HRULE] = "HRULE";
  163. elem_type_names[pmh_REFERENCE] = "REFERENCE";
  164. elem_type_names[pmh_FENCEDCODEBLOCK] = "FENCEDCODEBLOCK";
  165. elem_type_names[pmh_NOTE] = "NOTE";
  166. elem_type_names[pmh_STRIKE] = "STRIKE";
  167. elem_type_names[pmh_FRONTMATTER] = "FRONTMATTER";
  168. elem_type_names[pmh_DISPLAYFORMULA] = "DISPLAYFORMULA";
  169. elem_type_names[pmh_INLINEEQUATION] = "INLINEEQUATION";
  170. elem_type_names[pmh_MARK] = "MARK";
  171. }
  172. return elem_type_names;
  173. }
  174. pmh_element_type pmh_element_type_from_name(char *name)
  175. {
  176. char **elem_type_names = get_element_type_names();
  177. int i;
  178. for (i = 0; i < pmh_NUM_LANG_TYPES; i++)
  179. {
  180. char *i_name = elem_type_names[i];
  181. if (i_name == NULL)
  182. continue;
  183. if (strcmp(i_name, name) == 0)
  184. return i;
  185. }
  186. return pmh_NO_TYPE;
  187. }
  188. char *pmh_element_name_from_type(pmh_element_type type)
  189. {
  190. char **elem_type_names = get_element_type_names();
  191. char* ret = elem_type_names[type];
  192. if (ret == NULL)
  193. return "unknown type";
  194. return ret;
  195. }
  196. /*
  197. Remove pmh_RAW elements with zero length; return pointer
  198. to new head.
  199. */
  200. static pmh_realelement *remove_zero_length_raw_spans(pmh_realelement *elem)
  201. {
  202. pmh_realelement *head = elem;
  203. pmh_realelement *parent = NULL;
  204. pmh_realelement *c = head;
  205. while (c != NULL)
  206. {
  207. if (c->type == pmh_RAW && c->pos >= c->end)
  208. {
  209. if (parent != NULL)
  210. parent->next = c->next;
  211. else
  212. head = c->next;
  213. parent = c;
  214. c = c->next;
  215. continue;
  216. }
  217. parent = c;
  218. c = c->next;
  219. }
  220. return head;
  221. }
  222. #if pmh_DEBUG_OUTPUT
  223. /*
  224. Print null-terminated string s.t. some characters are
  225. represented by their corresponding espace sequences
  226. */
  227. static void print_str_literal_escapes(char *str)
  228. {
  229. char *c = str;
  230. pmh_PRINTF("'");
  231. while (*c != '\0')
  232. {
  233. if (*c == '\n') pmh_PRINTF("\\n");
  234. else if (*c == '\t') pmh_PRINTF("\\t");
  235. else putchar(*c);
  236. c++;
  237. }
  238. pmh_PRINTF("'");
  239. }
  240. #endif
  241. #if pmh_DEBUG_OUTPUT
  242. /*
  243. Print elements in a linked list of
  244. pmh_RAW, pmh_SEPARATOR, pmh_EXTRA_TEXT elements
  245. */
  246. static void print_raw_spans_inline(pmh_realelement *elem)
  247. {
  248. pmh_realelement *cur = elem;
  249. while (cur != NULL)
  250. {
  251. if (cur->type == pmh_SEPARATOR)
  252. pmh_PRINTF("<pmh_SEP %ld> ", cur->pos);
  253. else if (cur->type == pmh_EXTRA_TEXT) {
  254. pmh_PRINTF("{pmh_ETEXT ");
  255. print_str_literal_escapes(cur->text);
  256. pmh_PRINTF("}");
  257. }
  258. else
  259. pmh_PRINTF("(%ld-%ld) ", cur->pos, cur->end);
  260. cur = cur->next;
  261. }
  262. }
  263. #endif
  264. /*
  265. Perform postprocessing parsing runs for pmh_RAW_LIST elements in `elem`,
  266. iteratively until no such elements exist.
  267. */
  268. static void process_raw_blocks(parser_data *p_data)
  269. {
  270. pmh_PRINTF("--------process_raw_blocks---------\n");
  271. while (p_data->head_elems[pmh_RAW_LIST] != NULL)
  272. {
  273. pmh_PRINTF("new iteration.\n");
  274. pmh_realelement *cursor = p_data->head_elems[pmh_RAW_LIST];
  275. p_data->head_elems[pmh_RAW_LIST] = NULL;
  276. while (cursor != NULL)
  277. {
  278. pmh_realelement *span_list = (pmh_realelement*)cursor->children;
  279. span_list = remove_zero_length_raw_spans(span_list);
  280. #if pmh_DEBUG_OUTPUT
  281. pmh_PRINTF(" process: ");
  282. print_raw_spans_inline(span_list);
  283. pmh_PRINTF("\n");
  284. #endif
  285. while (span_list != NULL)
  286. {
  287. pmh_PRINTF("next: span_list: %ld-%ld\n",
  288. span_list->pos, span_list->end);
  289. // Skip separators in the beginning, as well as
  290. // separators after another separator:
  291. if (span_list->type == pmh_SEPARATOR) {
  292. span_list = span_list->next;
  293. continue;
  294. }
  295. // Store list of spans until next separator in subspan_list:
  296. pmh_realelement *subspan_list = span_list;
  297. pmh_realelement *previous = NULL;
  298. while (span_list != NULL && span_list->type != pmh_SEPARATOR) {
  299. previous = span_list;
  300. span_list = span_list->next;
  301. }
  302. if (span_list != NULL && span_list->type == pmh_SEPARATOR) {
  303. span_list = span_list->next;
  304. previous->next = NULL;
  305. }
  306. #if pmh_DEBUG_OUTPUT
  307. pmh_PRINTF(" subspan process: ");
  308. print_raw_spans_inline(subspan_list);
  309. pmh_PRINTF("\n");
  310. #endif
  311. // Process subspan_list:
  312. parser_data *raw_p_data = mk_parser_data(
  313. p_data->original_input,
  314. p_data->strip_positions,
  315. p_data->strip_positions_len,
  316. p_data->charbuf,
  317. subspan_list,
  318. subspan_list->pos,
  319. p_data->extensions,
  320. p_data->head_elems,
  321. p_data->references
  322. );
  323. parse_markdown(raw_p_data);
  324. free(raw_p_data);
  325. pmh_PRINTF("parse over\n");
  326. }
  327. cursor = cursor->next;
  328. }
  329. }
  330. }
  331. #if pmh_DEBUG_OUTPUT
  332. static void print_raw_blocks(char *text, pmh_realelement *elem[])
  333. {
  334. pmh_PRINTF("--------print_raw_blocks---------\n");
  335. pmh_PRINTF("block:\n");
  336. pmh_realelement *cursor = elem[pmh_RAW_LIST];
  337. while (cursor != NULL)
  338. {
  339. print_raw_spans_inline(cursor->children);
  340. cursor = cursor->next;
  341. }
  342. }
  343. #endif
  344. /* Free all elements created while parsing */
  345. void pmh_free_elements(pmh_element **elems)
  346. {
  347. pmh_realelement *cursor = (pmh_realelement*)elems[pmh_ALL];
  348. while (cursor != NULL) {
  349. pmh_realelement *tofree = cursor;
  350. cursor = cursor->all_elems_next;
  351. if (tofree->text != NULL)
  352. free(tofree->text);
  353. if (tofree->label != NULL)
  354. free(tofree->label);
  355. if (tofree->address != NULL)
  356. free(tofree->address);
  357. free(tofree);
  358. }
  359. elems[pmh_ALL] = NULL;
  360. free(elems);
  361. }
  362. #define IS_CONTINUATION_BYTE(x) ((x & 0xC0) == 0x80)
  363. #define HAS_UTF8_BOM(x) ( ((*x & 0xFF) == 0xEF)\
  364. && ((*(x+1) & 0xFF) == 0xBB)\
  365. && ((*(x+2) & 0xFF) == 0xBF) )
  366. #define ADD_STRIP_POS(x) \
  367. /* reallocate more space for the array, if needed: */ \
  368. if (strip_positions_size <= strip_positions_pos) { \
  369. size_t new_size = strip_positions_size * 2; \
  370. unsigned long *new_arr = (unsigned long *) \
  371. calloc(new_size, \
  372. sizeof(unsigned long)); \
  373. memcpy(new_arr, strip_positions, \
  374. (sizeof(unsigned long) * strip_positions_size)); \
  375. strip_positions_size = new_size; \
  376. free(strip_positions); \
  377. strip_positions = new_arr; \
  378. } \
  379. strip_positions[strip_positions_pos] = x; \
  380. strip_positions_pos++;
  381. /*
  382. Copy `str` to `out`, while doing the following:
  383. - remove UTF-8 continuation bytes
  384. - remove possible UTF-8 BOM (byte order mark)
  385. - append two newlines to the end (like peg-markdown does)
  386. - keep track of which bytes we have stripped (in strip_positions)
  387. */
  388. static int strcpy_preformat(char *str, char **out,
  389. unsigned long **out_strip_positions,
  390. size_t *out_strip_positions_len)
  391. {
  392. size_t strip_positions_size = 1024;
  393. size_t strip_positions_pos = 0;
  394. unsigned long *strip_positions = (unsigned long *)
  395. calloc(strip_positions_size,
  396. sizeof(unsigned long));
  397. // +2 in the following is due to the "\n\n" suffix:
  398. char *new_str = (char *)malloc(sizeof(char) * strlen(str) + 1 + 2);
  399. char *c = str;
  400. int i = 0;
  401. if (HAS_UTF8_BOM(c)) {
  402. c += 3;
  403. ADD_STRIP_POS(0);
  404. ADD_STRIP_POS(1);
  405. ADD_STRIP_POS(2);
  406. }
  407. while (*c != '\0')
  408. {
  409. if (!IS_CONTINUATION_BYTE(*c)) {
  410. *(new_str+i) = *c, i++;
  411. } else {
  412. ADD_STRIP_POS((int)(c-str));
  413. }
  414. c++;
  415. }
  416. *(new_str+(i++)) = '\n';
  417. *(new_str+(i++)) = '\n';
  418. *(new_str+i) = '\0';
  419. *out = new_str;
  420. *out_strip_positions = strip_positions;
  421. *out_strip_positions_len = strip_positions_pos;
  422. return i;
  423. }
  424. void pmh_markdown_to_elements(char *text, int extensions,
  425. pmh_element **out_result[])
  426. {
  427. char *text_copy = NULL;
  428. unsigned long *strip_positions = NULL;
  429. size_t strip_positions_len = 0;
  430. int text_copy_len = strcpy_preformat(text, &text_copy, &strip_positions,
  431. &strip_positions_len);
  432. pmh_realelement *parsing_elem = (pmh_realelement *)
  433. malloc(sizeof(pmh_realelement));
  434. parsing_elem->type = pmh_RAW;
  435. parsing_elem->pos = 0;
  436. parsing_elem->end = text_copy_len;
  437. parsing_elem->next = NULL;
  438. parser_data *p_data = mk_parser_data(
  439. text,
  440. strip_positions,
  441. strip_positions_len,
  442. text_copy,
  443. parsing_elem,
  444. 0,
  445. extensions,
  446. NULL,
  447. NULL
  448. );
  449. pmh_realelement **result = p_data->head_elems;
  450. if (*text_copy != '\0')
  451. {
  452. // Get reference definitions into p_data->references
  453. parse_references(p_data);
  454. // Reset parser state to beginning of input
  455. p_data->offset = 0;
  456. p_data->current_elem = p_data->elem_head;
  457. // Parse whole document
  458. parse_markdown(p_data);
  459. #if pmh_DEBUG_OUTPUT
  460. print_raw_blocks(text_copy, result);
  461. #endif
  462. process_raw_blocks(p_data);
  463. }
  464. free(strip_positions);
  465. free(p_data);
  466. free(parsing_elem);
  467. free(text_copy);
  468. *out_result = (pmh_element**)result;
  469. }
  470. /*
  471. Mergesort linked list of elements (using comparison function `compare`),
  472. return new head. (Adapted slightly from Simon Tatham's algorithm.)
  473. */
  474. static pmh_element *ll_mergesort(pmh_element *list,
  475. int (*compare)(const pmh_element*,
  476. const pmh_element*))
  477. {
  478. if (!list)
  479. return NULL;
  480. pmh_element *out_head = list;
  481. /* Merge widths of doubling size until done */
  482. int merge_width = 1;
  483. while (1)
  484. {
  485. pmh_element *l, *r; /* left & right segment pointers */
  486. pmh_element *tail = NULL; /* tail of sorted section */
  487. l = out_head;
  488. out_head = NULL;
  489. int merge_count = 0;
  490. while (l)
  491. {
  492. merge_count++;
  493. /* Position r, determine lsize & rsize */
  494. r = l;
  495. int lsize = 0;
  496. int i;
  497. for (i = 0; i < merge_width; i++) {
  498. lsize++;
  499. r = r->next;
  500. if (!r)
  501. break;
  502. }
  503. int rsize = merge_width;
  504. /* Merge l & r */
  505. while (lsize > 0 || (rsize > 0 && r))
  506. {
  507. bool get_from_left = false;
  508. if (lsize == 0) get_from_left = false;
  509. else if (rsize == 0 || !r) get_from_left = true;
  510. else if (compare(l,r) <= 0) get_from_left = true;
  511. pmh_element *e;
  512. if (get_from_left) {
  513. e = l; l = l->next; lsize--;
  514. } else {
  515. e = r; r = r->next; rsize--;
  516. }
  517. /* add the next pmh_element to the merged list */
  518. if (tail)
  519. tail->next = e;
  520. else
  521. out_head = e;
  522. tail = e;
  523. }
  524. l = r;
  525. }
  526. tail->next = NULL;
  527. if (merge_count <= 1)
  528. return out_head;
  529. merge_width *= 2;
  530. }
  531. }
  532. static int elem_compare_by_pos(const pmh_element *a, const pmh_element *b)
  533. {
  534. return a->pos - b->pos;
  535. }
  536. void pmh_sort_elements_by_pos(pmh_element *element_lists[])
  537. {
  538. int i;
  539. for (i = 0; i < pmh_NUM_LANG_TYPES; i++)
  540. element_lists[i] = ll_mergesort(element_lists[i], &elem_compare_by_pos);
  541. }
  542. /* return true if extension is selected */
  543. static bool extension(parser_data *p_data, int ext)
  544. {
  545. return ((p_data->extensions & ext) != 0);
  546. }
  547. /* return reference pmh_realelement for a given label */
  548. static pmh_realelement *get_reference(parser_data *p_data, char *label)
  549. {
  550. if (!label)
  551. return NULL;
  552. pmh_realelement *cursor = p_data->references;
  553. while (cursor != NULL)
  554. {
  555. if (cursor->label && strcmp(label, cursor->label) == 0)
  556. return cursor;
  557. cursor = cursor->next;
  558. }
  559. return NULL;
  560. }
  561. /* cons an element/list onto a list, returning pointer to new head */
  562. static pmh_realelement *cons(pmh_realelement *elem, pmh_realelement *list)
  563. {
  564. assert(elem != NULL);
  565. pmh_realelement *cur = elem;
  566. while (cur->next != NULL) {
  567. cur = cur->next;
  568. }
  569. cur->next = list;
  570. return elem;
  571. }
  572. /* reverse a list, returning pointer to new list */
  573. static pmh_realelement *reverse(pmh_realelement *list)
  574. {
  575. pmh_realelement *new_head = NULL;
  576. pmh_realelement *next = NULL;
  577. while (list != NULL) {
  578. next = list->next;
  579. list->next = new_head;
  580. new_head = list;
  581. list = next;
  582. }
  583. return new_head;
  584. }
  585. /* construct pmh_realelement */
  586. static pmh_realelement *mk_element(parser_data *p_data, pmh_element_type type,
  587. long pos, long end)
  588. {
  589. pmh_realelement *result = (pmh_realelement *)malloc(sizeof(pmh_realelement));
  590. memset(result, 0, sizeof(*result));
  591. result->type = type;
  592. result->pos = pos;
  593. result->end = end;
  594. pmh_realelement *old_all_elements_head = p_data->head_elems[pmh_ALL];
  595. p_data->head_elems[pmh_ALL] = result;
  596. result->all_elems_next = old_all_elements_head;
  597. //pmh_PRINTF(" mk_element: %s [%ld - %ld]\n", pmh_element_name_from_type(type), pos, end);
  598. return result;
  599. }
  600. static pmh_realelement *copy_element(parser_data *p_data, pmh_realelement *elem)
  601. {
  602. pmh_realelement *result = mk_element(p_data, elem->type, elem->pos, elem->end);
  603. result->label = strdup_or_null(elem->label);
  604. result->text = strdup_or_null(elem->text);
  605. result->address = strdup_or_null(elem->address);
  606. return result;
  607. }
  608. /* construct pmh_EXTRA_TEXT pmh_realelement */
  609. static pmh_realelement *mk_etext(parser_data *p_data, char *string)
  610. {
  611. pmh_realelement *result;
  612. assert(string != NULL);
  613. result = mk_element(p_data, pmh_EXTRA_TEXT, 0,0);
  614. result->text = strdup_or_null(string);
  615. return result;
  616. }
  617. /*
  618. Given an element where the offsets {pos, end} represent
  619. locations in the *parsed text* (defined by the linked list of pmh_RAW and
  620. pmh_EXTRA_TEXT elements in p_data->current_elem), fix these offsets to represent
  621. corresponding offsets in the parse buffer (p_data->charbuf). Also split
  622. the given pmh_realelement into multiple parts if its offsets span multiple
  623. p_data->current_elem elements. Return the (list of) elements with real offsets.
  624. */
  625. static pmh_realelement *fix_offsets(parser_data *p_data, pmh_realelement *elem)
  626. {
  627. if (elem->type == pmh_EXTRA_TEXT)
  628. return mk_etext(p_data, elem->text);
  629. pmh_realelement *new_head = copy_element(p_data, elem);
  630. pmh_realelement *tail = new_head;
  631. pmh_realelement *prev = NULL;
  632. bool found_start = false;
  633. bool found_end = false;
  634. bool tail_needs_pos = false;
  635. unsigned long previous_end = 0;
  636. unsigned long c = 0;
  637. pmh_realelement *cursor = p_data->elem_head;
  638. while (cursor != NULL)
  639. {
  640. int thislen = (cursor->type == pmh_EXTRA_TEXT)
  641. ? strlen(cursor->text)
  642. : cursor->end - cursor->pos;
  643. if (tail_needs_pos && cursor->type != pmh_EXTRA_TEXT) {
  644. tail->pos = cursor->pos;
  645. tail_needs_pos = false;
  646. }
  647. unsigned int this_pos = cursor->pos;
  648. if (!found_start && (c <= elem->pos && elem->pos <= c+thislen)) {
  649. tail->pos = (cursor->type == pmh_EXTRA_TEXT)
  650. ? previous_end
  651. : cursor->pos + (elem->pos - c);
  652. this_pos = tail->pos;
  653. found_start = true;
  654. }
  655. if (!found_end && (c <= elem->end && elem->end <= c+thislen)) {
  656. tail->end = (cursor->type == pmh_EXTRA_TEXT)
  657. ? previous_end
  658. : cursor->pos + (elem->end - c);
  659. found_end = true;
  660. }
  661. if (found_start && found_end)
  662. break;
  663. if (cursor->type != pmh_EXTRA_TEXT)
  664. previous_end = cursor->end;
  665. if (found_start) {
  666. pmh_realelement *new_elem = copy_element(p_data, tail);
  667. new_elem->pos = this_pos;
  668. new_elem->end = cursor->end;
  669. new_elem->next = tail;
  670. if (prev != NULL)
  671. prev->next = new_elem;
  672. if (new_head == tail)
  673. new_head = new_elem;
  674. prev = new_elem;
  675. tail_needs_pos = true;
  676. }
  677. c += thislen;
  678. cursor = cursor->next;
  679. }
  680. return new_head;
  681. }
  682. /* Add an element to p_data->head_elems. */
  683. static void add(parser_data *p_data, pmh_realelement *elem)
  684. {
  685. if (elem->type != pmh_RAW_LIST)
  686. {
  687. pmh_PRINTF(" add: %s [%ld - %ld]\n",
  688. pmh_element_name_from_type(elem->type), elem->pos, elem->end);
  689. elem = fix_offsets(p_data, elem);
  690. pmh_PRINTF(" > %s [%ld - %ld]\n",
  691. pmh_element_name_from_type(elem->type), elem->pos, elem->end);
  692. }
  693. else
  694. {
  695. pmh_PRINTF(" add: pmh_RAW_LIST ");
  696. pmh_realelement *cursor = elem->children;
  697. pmh_realelement *previous = NULL;
  698. while (cursor != NULL)
  699. {
  700. pmh_realelement *next = cursor->next;
  701. pmh_PRINTF("(%ld-%ld)>", cursor->pos, cursor->end);
  702. pmh_realelement *new_cursor = fix_offsets(p_data, cursor);
  703. if (previous != NULL)
  704. previous->next = new_cursor;
  705. else
  706. elem->children = new_cursor;
  707. pmh_PRINTF("(%ld-%ld)", new_cursor->pos, new_cursor->end);
  708. while (new_cursor->next != NULL) {
  709. new_cursor = new_cursor->next;
  710. pmh_PRINTF("(%ld-%ld)", new_cursor->pos, new_cursor->end);
  711. }
  712. pmh_PRINTF(" ");
  713. if (next != NULL)
  714. new_cursor->next = next;
  715. previous = new_cursor;
  716. cursor = next;
  717. }
  718. pmh_PRINTF("\n");
  719. }
  720. if (p_data->head_elems[elem->type] == NULL)
  721. p_data->head_elems[elem->type] = elem;
  722. else
  723. {
  724. pmh_realelement *last = elem;
  725. while (last->next != NULL)
  726. last = last->next;
  727. last->next = p_data->head_elems[elem->type];
  728. p_data->head_elems[elem->type] = elem;
  729. }
  730. }
  731. // Given a range in the list of spans we use for parsing (pos, end), return
  732. // a copy of the corresponding section in the original input, with all of
  733. // the UTF-8 bytes intact:
  734. static char *copy_input_span(parser_data *p_data,
  735. unsigned long pos, unsigned long end)
  736. {
  737. if (end <= pos)
  738. return NULL;
  739. char *ret = NULL;
  740. // Adjust (pos,end) to match actual indexes in charbuf:
  741. pmh_realelement *dummy = mk_element(p_data, pmh_NO_TYPE, pos, end);
  742. pmh_realelement *fixed_dummies = fix_offsets(p_data, dummy);
  743. pmh_realelement *cursor = fixed_dummies;
  744. while (cursor != NULL)
  745. {
  746. if (cursor->end <= cursor->pos)
  747. {
  748. cursor = cursor->next;
  749. continue;
  750. }
  751. // Adjust cursor's span to take bytes stripped from the original
  752. // input into account (i.e. match the corresponding span in
  753. // p_data->original_input):
  754. unsigned long adjusted_pos = cursor->pos;
  755. unsigned long adjusted_end = cursor->end;
  756. size_t i;
  757. for (i = 0; i < p_data->strip_positions_len; i++)
  758. {
  759. unsigned long strip_position = p_data->strip_positions[i];
  760. if (strip_position <= adjusted_pos)
  761. adjusted_pos++;
  762. if (strip_position <= adjusted_end)
  763. adjusted_end++;
  764. else
  765. break;
  766. }
  767. // Copy span from original input:
  768. size_t adjusted_len = adjusted_end - adjusted_pos;
  769. char *str = (char *)malloc(sizeof(char)*adjusted_len + 1);
  770. *str = '\0';
  771. strncat(str, (p_data->original_input + adjusted_pos), adjusted_len);
  772. if (ret == NULL)
  773. ret = str;
  774. else
  775. {
  776. // append str to ret:
  777. char *new_ret = (char *)malloc(sizeof(char)
  778. *(strlen(str) + strlen(ret)) + 1);
  779. *new_ret = '\0';
  780. strcat(new_ret, ret);
  781. strcat(new_ret, str);
  782. free(ret);
  783. free(str);
  784. ret = new_ret;
  785. }
  786. cursor = cursor->next;
  787. }
  788. return ret;
  789. }
  790. # define YYSTYPE pmh_realelement *
  791. #ifdef __DEBUG__
  792. # define YY_DEBUG 1
  793. #endif
  794. #define YY_INPUT(buf, result, max_size)\
  795. yy_input_func(buf, &result, max_size, (parser_data *)G->data)
  796. static void yy_input_func(char *buf, int *result, int max_size,
  797. parser_data *p_data)
  798. {
  799. if (p_data->current_elem == NULL)
  800. {
  801. (*result) = 0;
  802. return;
  803. }
  804. if (p_data->current_elem->type == pmh_EXTRA_TEXT)
  805. {
  806. int yyc;
  807. bool moreToRead = (p_data->current_elem->text
  808. && *(p_data->current_elem->text
  809. + p_data->current_elem->text_offset) != '\0');
  810. if (moreToRead)
  811. {
  812. yyc = *(p_data->current_elem->text + p_data->current_elem->text_offset++);
  813. pmh_PRINTF("\e[47;30m"); pmh_PUTCHAR(yyc); pmh_PRINTF("\e[0m");
  814. pmh_IF(yyc == '\n') pmh_PRINTF("\e[47m \e[0m");
  815. }
  816. else
  817. {
  818. yyc = EOF;
  819. p_data->current_elem = p_data->current_elem->next;
  820. pmh_PRINTF("\e[41m \e[0m");
  821. if (p_data->current_elem != NULL)
  822. p_data->offset = p_data->current_elem->pos;
  823. }
  824. (*result) = (EOF == yyc) ? 0 : (*(buf) = yyc, 1);
  825. return;
  826. }
  827. *(buf) = *(p_data->charbuf + p_data->offset);
  828. (*result) = (*buf != '\0');
  829. p_data->offset++;
  830. pmh_PRINTF("\e[43;30m"); pmh_PUTCHAR(*buf); pmh_PRINTF("\e[0m");
  831. pmh_IF(*buf == '\n') pmh_PRINTF("\e[42m \e[0m");
  832. if (p_data->offset >= p_data->current_elem->end)
  833. {
  834. p_data->current_elem = p_data->current_elem->next;
  835. pmh_PRINTF("\e[41m \e[0m");
  836. if (p_data->current_elem != NULL)
  837. p_data->offset = p_data->current_elem->pos;
  838. }
  839. }
  840. #define elem(x) mk_element((parser_data *)G->data, x, thunk->begin, thunk->end)
  841. #define elem_s(x) mk_element((parser_data *)G->data, x, s->pos, thunk->end)
  842. #define mk_sep mk_element((parser_data *)G->data, pmh_SEPARATOR, 0,0)
  843. #define mk_notype mk_element((parser_data *)G->data, pmh_NO_TYPE, 0,0)
  844. #define etext(x) mk_etext((parser_data *)G->data, x)
  845. #define ADD(x) add((parser_data *)G->data, x)
  846. #define EXT(x) extension((parser_data *)G->data, x)
  847. #define REF_EXISTS(x) reference_exists((parser_data *)G->data, x)
  848. #define GET_REF(x) get_reference((parser_data *)G->data, x)
  849. #define PARSING_REFERENCES ((parser_data *)G->data)->parsing_only_references
  850. #define FREE_LABEL(l) { free(l->label); l->label = NULL; }
  851. #define FREE_ADDRESS(l) { free(l->address); l->address = NULL; }
  852. // This gives us the text matched with < > as it appears in the original input:
  853. #define COPY_YYTEXT_ORIG() copy_input_span((parser_data *)G->data, thunk->begin, thunk->end)
  854. // pos is the postition of next char to parse after matching one $
  855. // Do not allow $, digit, and \ before opening $
  856. bool inline_equation_predict_pre(char *buf, int pos)
  857. {
  858. if (pos < 2) {
  859. return true;
  860. }
  861. unsigned char ch = buf[pos - 2];
  862. return ch != '$' && (ch < '0' || ch > '9') && ch != '\\';
  863. }
  864. // Do not allow \, space before ending $
  865. bool inline_equation_predict_post(char *buf, int pos)
  866. {
  867. unsigned char ch = buf[pos - 2];
  868. return ch != '\\' && ch != ' ' && ch != '\t';
  869. }
  870. #define IEP_PRE inline_equation_predict_pre(G->buf, G->pos)
  871. #define IEP_POST inline_equation_predict_post(G->buf, G->pos)
  872. #ifndef YY_ALLOC
  873. #define YY_ALLOC(N, D) malloc(N)
  874. #endif
  875. #ifndef YY_CALLOC
  876. #define YY_CALLOC(N, S, D) calloc(N, S)
  877. #endif
  878. #ifndef YY_REALLOC
  879. #define YY_REALLOC(B, N, D) realloc(B, N)
  880. #endif
  881. #ifndef YY_FREE
  882. #define YY_FREE free
  883. #endif
  884. #ifndef YY_LOCAL
  885. #define YY_LOCAL(T) static T
  886. #endif
  887. #ifndef YY_ACTION
  888. #define YY_ACTION(T) static T
  889. #endif
  890. #ifndef YY_RULE
  891. #define YY_RULE(T) static T
  892. #endif
  893. #ifndef YY_PARSE
  894. #define YY_PARSE(T) T
  895. #endif
  896. #ifndef YY_NAME
  897. #define YY_NAME(N) yy##N
  898. #endif
  899. #ifndef YY_INPUT
  900. #define YY_INPUT(buf, result, max_size) \
  901. { \
  902. int yyc= getchar(); \
  903. result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \
  904. yyprintf((stderr, "<%c>", yyc)); \
  905. }
  906. #endif
  907. #ifndef YY_BEGIN
  908. #define YY_BEGIN ( G->begin= G->pos, 1)
  909. #endif
  910. #ifndef YY_END
  911. #define YY_END ( G->end= G->pos, 1)
  912. #endif
  913. #ifdef YY_DEBUG
  914. # define yyprintf(args) fprintf args
  915. #else
  916. # define yyprintf(args)
  917. #endif
  918. #ifndef YYSTYPE
  919. #define YYSTYPE int
  920. #endif
  921. #ifndef YY_XTYPE
  922. #define YY_XTYPE void *
  923. #endif
  924. #ifndef YY_XVAR
  925. #define YY_XVAR yyxvar
  926. #endif
  927. #ifndef YY_STACK_SIZE
  928. #define YY_STACK_SIZE 128
  929. #endif
  930. #ifndef YY_BUFFER_START_SIZE
  931. #define YY_BUFFER_START_SIZE 1024
  932. #endif
  933. #ifndef YY_PART
  934. #define yydata G->data
  935. #define yy G->ss
  936. struct _yythunk; // forward declaration
  937. typedef void (*yyaction)(struct _GREG *G, char *yytext, int yyleng, struct _yythunk *thunkpos, YY_XTYPE YY_XVAR);
  938. typedef struct _yythunk { int begin, end; yyaction action; struct _yythunk *next; } yythunk;
  939. typedef struct _GREG {
  940. char *buf;
  941. int buflen;
  942. int offset;
  943. int pos;
  944. int limit;
  945. char *text;
  946. int textlen;
  947. int begin;
  948. int end;
  949. yythunk *thunks;
  950. int thunkslen;
  951. int thunkpos;
  952. YYSTYPE ss;
  953. YYSTYPE *val;
  954. YYSTYPE *vals;
  955. int valslen;
  956. YY_XTYPE data;
  957. } GREG;
  958. YY_LOCAL(int) yyrefill(GREG *G)
  959. {
  960. int yyn;
  961. while (G->buflen - G->pos < 512)
  962. {
  963. G->buflen *= 2;
  964. G->buf= (char *)YY_REALLOC(G->buf, G->buflen, G->data);
  965. }
  966. YY_INPUT((G->buf + G->pos), yyn, (G->buflen - G->pos));
  967. if (!yyn) return 0;
  968. G->limit += yyn;
  969. return 1;
  970. }
  971. YY_LOCAL(int) yymatchDot(GREG *G)
  972. {
  973. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  974. ++G->pos;
  975. return 1;
  976. }
  977. YY_LOCAL(int) yymatchChar(GREG *G, int c)
  978. {
  979. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  980. if ((unsigned char)G->buf[G->pos] == c)
  981. {
  982. ++G->pos;
  983. yyprintf((stderr, " ok yymatchChar(%c) @ %s\n", c, G->buf+G->pos));
  984. return 1;
  985. }
  986. yyprintf((stderr, " fail yymatchChar(%c) @ %s\n", c, G->buf+G->pos));
  987. return 0;
  988. }
  989. YY_LOCAL(int) yymatchString(GREG *G, char *s)
  990. {
  991. int yysav= G->pos;
  992. while (*s)
  993. {
  994. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  995. if (G->buf[G->pos] != *s)
  996. {
  997. G->pos= yysav;
  998. return 0;
  999. }
  1000. ++s;
  1001. ++G->pos;
  1002. }
  1003. return 1;
  1004. }
  1005. YY_LOCAL(int) yymatchClass(GREG *G, unsigned char *bits)
  1006. {
  1007. int c;
  1008. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  1009. c= (unsigned char)G->buf[G->pos];
  1010. if (bits[c >> 3] & (1 << (c & 7)))
  1011. {
  1012. ++G->pos;
  1013. yyprintf((stderr, " ok yymatchClass @ %s\n", G->buf+G->pos));
  1014. return 1;
  1015. }
  1016. yyprintf((stderr, " fail yymatchClass @ %s\n", G->buf+G->pos));
  1017. return 0;
  1018. }
  1019. YY_LOCAL(void) yyDo(GREG *G, yyaction action, int begin, int end)
  1020. {
  1021. while (G->thunkpos >= G->thunkslen)
  1022. {
  1023. G->thunkslen *= 2;
  1024. G->thunks= (yythunk *)YY_REALLOC(G->thunks, sizeof(yythunk) * G->thunkslen, G->data);
  1025. }
  1026. G->thunks[G->thunkpos].begin= begin;
  1027. G->thunks[G->thunkpos].end= end;
  1028. G->thunks[G->thunkpos].action= action;
  1029. ++G->thunkpos;
  1030. }
  1031. YY_LOCAL(int) yyText(GREG *G, int begin, int end)
  1032. {
  1033. int yyleng= end - begin;
  1034. if (yyleng <= 0)
  1035. yyleng= 0;
  1036. else
  1037. {
  1038. while (G->textlen < (yyleng + 1))
  1039. {
  1040. G->textlen *= 2;
  1041. G->text= (char *)YY_REALLOC(G->text, G->textlen, G->data);
  1042. }
  1043. memcpy(G->text, G->buf + begin, yyleng);
  1044. }
  1045. G->text[yyleng]= '\0';
  1046. return yyleng;
  1047. }
  1048. YY_LOCAL(void) yyDone(GREG *G)
  1049. {
  1050. int pos;
  1051. for (pos= 0; pos < G->thunkpos; ++pos)
  1052. {
  1053. yythunk *thunk= &G->thunks[pos];
  1054. int yyleng= thunk->end ? yyText(G, thunk->begin, thunk->end) : thunk->begin;
  1055. yyprintf((stderr, "DO [%d] %p %s\n", pos, thunk->action, G->text));
  1056. thunk->action(G, G->text, yyleng, thunk, G->data);
  1057. }
  1058. G->thunkpos= 0;
  1059. }
  1060. YY_LOCAL(void) yyCommit(GREG *G)
  1061. {
  1062. if ((G->limit -= G->pos))
  1063. {
  1064. memmove(G->buf, G->buf + G->pos, G->limit);
  1065. }
  1066. G->offset += G->pos;
  1067. G->begin -= G->pos;
  1068. G->end -= G->pos;
  1069. G->pos= G->thunkpos= 0;
  1070. }
  1071. YY_LOCAL(int) yyAccept(GREG *G, int tp0)
  1072. {
  1073. if (tp0)
  1074. {
  1075. fprintf(stderr, "accept denied at %d\n", tp0);
  1076. return 0;
  1077. }
  1078. else
  1079. {
  1080. yyDone(G);
  1081. yyCommit(G);
  1082. }
  1083. return 1;
  1084. }
  1085. YY_LOCAL(void) yyPush(GREG *G, char *text, int count, yythunk *thunk, YY_XTYPE YY_XVAR) { G->val += count; }
  1086. YY_LOCAL(void) yyPop(GREG *G, char *text, int count, yythunk *thunk, YY_XTYPE YY_XVAR) { G->val -= count; }
  1087. YY_LOCAL(void) yySet(GREG *G, char *text, int count, yythunk *thunk, YY_XTYPE YY_XVAR) { G->val[count]= G->ss; }
  1088. #endif /* YY_PART */
  1089. #define YYACCEPT yyAccept(G, yythunkpos0)
  1090. YY_RULE(int) yy_RawNoteBlock(GREG *G); /* 248 */
  1091. YY_RULE(int) yy_RawNoteReference(GREG *G); /* 247 */
  1092. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G); /* 246 */
  1093. YY_RULE(int) yy_AlphanumericAscii(GREG *G); /* 245 */
  1094. YY_RULE(int) yy_Quoted(GREG *G); /* 244 */
  1095. YY_RULE(int) yy_HtmlTag(GREG *G); /* 243 */
  1096. YY_RULE(int) yy_MarkTagClose(GREG *G); /* 242 */
  1097. YY_RULE(int) yy_MarkTagText(GREG *G); /* 241 */
  1098. YY_RULE(int) yy_MarkTagOpen(GREG *G); /* 240 */
  1099. YY_RULE(int) yy_Ticks5(GREG *G); /* 239 */
  1100. YY_RULE(int) yy_Ticks4(GREG *G); /* 238 */
  1101. YY_RULE(int) yy_Ticks3(GREG *G); /* 237 */
  1102. YY_RULE(int) yy_Ticks2(GREG *G); /* 236 */
  1103. YY_RULE(int) yy_Ticks1(GREG *G); /* 235 */
  1104. YY_RULE(int) yy_SkipBlock(GREG *G); /* 234 */
  1105. YY_RULE(int) yy_References(GREG *G); /* 233 */
  1106. YY_RULE(int) yy_EmptyTitle(GREG *G); /* 232 */
  1107. YY_RULE(int) yy_RefTitleParens(GREG *G); /* 231 */
  1108. YY_RULE(int) yy_RefTitleDouble(GREG *G); /* 230 */
  1109. YY_RULE(int) yy_RefTitleSingle(GREG *G); /* 229 */
  1110. YY_RULE(int) yy_RefTitle(GREG *G); /* 228 */
  1111. YY_RULE(int) yy_RefSrc(GREG *G); /* 227 */
  1112. YY_RULE(int) yy_AutoLinkEmail(GREG *G); /* 226 */
  1113. YY_RULE(int) yy_AutoLinkUrl(GREG *G); /* 225 */
  1114. YY_RULE(int) yy_ImageSizeHeight(GREG *G); /* 224 */
  1115. YY_RULE(int) yy_ImageSizeWidth(GREG *G); /* 223 */
  1116. YY_RULE(int) yy_ImageSizeComplete(GREG *G); /* 222 */
  1117. YY_RULE(int) yy_TitleDoubleExt(GREG *G); /* 221 */
  1118. YY_RULE(int) yy_TitleSingleExt(GREG *G); /* 220 */
  1119. YY_RULE(int) yy_TitleDouble(GREG *G); /* 219 */
  1120. YY_RULE(int) yy_TitleSingle(GREG *G); /* 218 */
  1121. YY_RULE(int) yy_SourceContents(GREG *G); /* 217 */
  1122. YY_RULE(int) yy_ImageSize(GREG *G); /* 216 */
  1123. YY_RULE(int) yy_TitleExt(GREG *G); /* 215 */
  1124. YY_RULE(int) yy_Title(GREG *G); /* 214 */
  1125. YY_RULE(int) yy_Source(GREG *G); /* 213 */
  1126. YY_RULE(int) yy_Label(GREG *G); /* 212 */
  1127. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G); /* 211 */
  1128. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G); /* 210 */
  1129. YY_RULE(int) yy_AutoLink(GREG *G); /* 209 */
  1130. YY_RULE(int) yy_ReferenceLink(GREG *G); /* 208 */
  1131. YY_RULE(int) yy_ExplicitLinkSize(GREG *G); /* 207 */
  1132. YY_RULE(int) yy_ExplicitLink(GREG *G); /* 206 */
  1133. YY_RULE(int) yy_StrongUl(GREG *G); /* 205 */
  1134. YY_RULE(int) yy_StrongStar(GREG *G); /* 204 */
  1135. YY_RULE(int) yy_Whitespace(GREG *G); /* 203 */
  1136. YY_RULE(int) yy_EmphUl(GREG *G); /* 202 */
  1137. YY_RULE(int) yy_EmphStar(GREG *G); /* 201 */
  1138. YY_RULE(int) yy_StarLine(GREG *G); /* 200 */
  1139. YY_RULE(int) yy_UlLine(GREG *G); /* 199 */
  1140. YY_RULE(int) yy_SpecialChar(GREG *G); /* 198 */
  1141. YY_RULE(int) yy_Eof(GREG *G); /* 197 */
  1142. YY_RULE(int) yy_NormalEndline(GREG *G); /* 196 */
  1143. YY_RULE(int) yy_TerminalEndline(GREG *G); /* 195 */
  1144. YY_RULE(int) yy_LineBreak(GREG *G); /* 194 */
  1145. YY_RULE(int) yy_CharEntity(GREG *G); /* 193 */
  1146. YY_RULE(int) yy_DecEntity(GREG *G); /* 192 */
  1147. YY_RULE(int) yy_HexEntity(GREG *G); /* 191 */
  1148. YY_RULE(int) yy_Alphanumeric(GREG *G); /* 190 */
  1149. YY_RULE(int) yy_NormalChar(GREG *G); /* 189 */
  1150. YY_RULE(int) yy_Symbol(GREG *G); /* 188 */
  1151. YY_RULE(int) yy_EscapedChar(GREG *G); /* 187 */
  1152. YY_RULE(int) yy_Entity(GREG *G); /* 186 */
  1153. YY_RULE(int) yy_RawHtml(GREG *G); /* 185 */
  1154. YY_RULE(int) yy_Mark(GREG *G); /* 184 */
  1155. YY_RULE(int) yy_Code(GREG *G); /* 183 */
  1156. YY_RULE(int) yy_InlineNote(GREG *G); /* 182 */
  1157. YY_RULE(int) yy_NoteReference(GREG *G); /* 181 */
  1158. YY_RULE(int) yy_Link(GREG *G); /* 180 */
  1159. YY_RULE(int) yy_Image(GREG *G); /* 179 */
  1160. YY_RULE(int) yy_Strike(GREG *G); /* 178 */
  1161. YY_RULE(int) yy_Emph(GREG *G); /* 177 */
  1162. YY_RULE(int) yy_Strong(GREG *G); /* 176 */
  1163. YY_RULE(int) yy_UlOrStarLine(GREG *G); /* 175 */
  1164. YY_RULE(int) yy_Str(GREG *G); /* 174 */
  1165. YY_RULE(int) yy_InStyleTags(GREG *G); /* 173 */
  1166. YY_RULE(int) yy_StyleClose(GREG *G); /* 172 */
  1167. YY_RULE(int) yy_StyleOpen(GREG *G); /* 171 */
  1168. YY_RULE(int) yy_HtmlBlockType(GREG *G); /* 170 */
  1169. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G); /* 169 */
  1170. YY_RULE(int) yy_HtmlComment(GREG *G); /* 168 */
  1171. YY_RULE(int) yy_HtmlBlockInTags(GREG *G); /* 167 */
  1172. YY_RULE(int) yy_HtmlBlockHead(GREG *G); /* 166 */
  1173. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G); /* 165 */
  1174. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G); /* 164 */
  1175. YY_RULE(int) yy_HtmlBlockScript(GREG *G); /* 163 */
  1176. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G); /* 162 */
  1177. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G); /* 161 */
  1178. YY_RULE(int) yy_HtmlBlockTr(GREG *G); /* 160 */
  1179. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G); /* 159 */
  1180. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G); /* 158 */
  1181. YY_RULE(int) yy_HtmlBlockThead(GREG *G); /* 157 */
  1182. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G); /* 156 */
  1183. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G); /* 155 */
  1184. YY_RULE(int) yy_HtmlBlockTh(GREG *G); /* 154 */
  1185. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G); /* 153 */
  1186. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G); /* 152 */
  1187. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G); /* 151 */
  1188. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G); /* 150 */
  1189. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G); /* 149 */
  1190. YY_RULE(int) yy_HtmlBlockTd(GREG *G); /* 148 */
  1191. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G); /* 147 */
  1192. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G); /* 146 */
  1193. YY_RULE(int) yy_HtmlBlockTbody(GREG *G); /* 145 */
  1194. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G); /* 144 */
  1195. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G); /* 143 */
  1196. YY_RULE(int) yy_HtmlBlockLi(GREG *G); /* 142 */
  1197. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G); /* 141 */
  1198. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G); /* 140 */
  1199. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G); /* 139 */
  1200. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G); /* 138 */
  1201. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G); /* 137 */
  1202. YY_RULE(int) yy_HtmlBlockDt(GREG *G); /* 136 */
  1203. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G); /* 135 */
  1204. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G); /* 134 */
  1205. YY_RULE(int) yy_HtmlBlockDd(GREG *G); /* 133 */
  1206. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G); /* 132 */
  1207. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G); /* 131 */
  1208. YY_RULE(int) yy_HtmlBlockUl(GREG *G); /* 130 */
  1209. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G); /* 129 */
  1210. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G); /* 128 */
  1211. YY_RULE(int) yy_HtmlBlockTable(GREG *G); /* 127 */
  1212. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G); /* 126 */
  1213. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G); /* 125 */
  1214. YY_RULE(int) yy_HtmlBlockPre(GREG *G); /* 124 */
  1215. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G); /* 123 */
  1216. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G); /* 122 */
  1217. YY_RULE(int) yy_HtmlBlockP(GREG *G); /* 121 */
  1218. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G); /* 120 */
  1219. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G); /* 119 */
  1220. YY_RULE(int) yy_HtmlBlockOl(GREG *G); /* 118 */
  1221. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G); /* 117 */
  1222. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G); /* 116 */
  1223. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G); /* 115 */
  1224. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G); /* 114 */
  1225. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G); /* 113 */
  1226. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G); /* 112 */
  1227. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G); /* 111 */
  1228. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G); /* 110 */
  1229. YY_RULE(int) yy_HtmlBlockMenu(GREG *G); /* 109 */
  1230. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G); /* 108 */
  1231. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G); /* 107 */
  1232. YY_RULE(int) yy_HtmlBlockH6(GREG *G); /* 106 */
  1233. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G); /* 105 */
  1234. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G); /* 104 */
  1235. YY_RULE(int) yy_HtmlBlockH5(GREG *G); /* 103 */
  1236. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G); /* 102 */
  1237. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G); /* 101 */
  1238. YY_RULE(int) yy_HtmlBlockH4(GREG *G); /* 100 */
  1239. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G); /* 99 */
  1240. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G); /* 98 */
  1241. YY_RULE(int) yy_HtmlBlockH3(GREG *G); /* 97 */
  1242. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G); /* 96 */
  1243. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G); /* 95 */
  1244. YY_RULE(int) yy_HtmlBlockH2(GREG *G); /* 94 */
  1245. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G); /* 93 */
  1246. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G); /* 92 */
  1247. YY_RULE(int) yy_HtmlBlockH1(GREG *G); /* 91 */
  1248. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G); /* 90 */
  1249. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G); /* 89 */
  1250. YY_RULE(int) yy_HtmlBlockForm(GREG *G); /* 88 */
  1251. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G); /* 87 */
  1252. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G); /* 86 */
  1253. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G); /* 85 */
  1254. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G); /* 84 */
  1255. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G); /* 83 */
  1256. YY_RULE(int) yy_HtmlBlockDl(GREG *G); /* 82 */
  1257. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G); /* 81 */
  1258. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G); /* 80 */
  1259. YY_RULE(int) yy_HtmlBlockDiv(GREG *G); /* 79 */
  1260. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G); /* 78 */
  1261. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G); /* 77 */
  1262. YY_RULE(int) yy_HtmlBlockDir(GREG *G); /* 76 */
  1263. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G); /* 75 */
  1264. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G); /* 74 */
  1265. YY_RULE(int) yy_HtmlBlockCenter(GREG *G); /* 73 */
  1266. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G); /* 72 */
  1267. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G); /* 71 */
  1268. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G); /* 70 */
  1269. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G); /* 69 */
  1270. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G); /* 68 */
  1271. YY_RULE(int) yy_HtmlBlockAddress(GREG *G); /* 67 */
  1272. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G); /* 66 */
  1273. YY_RULE(int) yy_HtmlAttribute(GREG *G); /* 65 */
  1274. YY_RULE(int) yy_Spnl(GREG *G); /* 64 */
  1275. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G); /* 63 */
  1276. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G); /* 62 */
  1277. YY_RULE(int) yy_Indent(GREG *G); /* 61 */
  1278. YY_RULE(int) yy_ListBlockLine(GREG *G); /* 60 */
  1279. YY_RULE(int) yy_ListContinuationBlock(GREG *G); /* 59 */
  1280. YY_RULE(int) yy_ListBlock(GREG *G); /* 58 */
  1281. YY_RULE(int) yy_ListItem(GREG *G); /* 57 */
  1282. YY_RULE(int) yy_Enumerator(GREG *G); /* 56 */
  1283. YY_RULE(int) yy_ListItemTight(GREG *G); /* 55 */
  1284. YY_RULE(int) yy_ListLoose(GREG *G); /* 54 */
  1285. YY_RULE(int) yy_ListTight(GREG *G); /* 53 */
  1286. YY_RULE(int) yy_Bullet(GREG *G); /* 52 */
  1287. YY_RULE(int) yy_Nonspacechar(GREG *G); /* 51 */
  1288. YY_RULE(int) yy_InlineEquationMultiple(GREG *G); /* 50 */
  1289. YY_RULE(int) yy_InlineEquationSingle(GREG *G); /* 49 */
  1290. YY_RULE(int) yy_InlineEquation(GREG *G); /* 48 */
  1291. YY_RULE(int) yy_Spacechar(GREG *G); /* 47 */
  1292. YY_RULE(int) yy_FencedCodeBlockEnd(GREG *G); /* 46 */
  1293. YY_RULE(int) yy_FencedCodeBlockChunk(GREG *G); /* 45 */
  1294. YY_RULE(int) yy_FencedCodeBlockStart(GREG *G); /* 44 */
  1295. YY_RULE(int) yy_VerbatimChunk(GREG *G); /* 43 */
  1296. YY_RULE(int) yy_IndentedLine(GREG *G); /* 42 */
  1297. YY_RULE(int) yy_NonblankIndentedLine(GREG *G); /* 41 */
  1298. YY_RULE(int) yy_Line(GREG *G); /* 40 */
  1299. YY_RULE(int) yy_StartList(GREG *G); /* 39 */
  1300. YY_RULE(int) yy_BlockQuoteRaw(GREG *G); /* 38 */
  1301. YY_RULE(int) yy_Endline(GREG *G); /* 37 */
  1302. YY_RULE(int) yy_RawLine(GREG *G); /* 36 */
  1303. YY_RULE(int) yy_SetextBottom2(GREG *G); /* 35 */
  1304. YY_RULE(int) yy_SetextBottom1(GREG *G); /* 34 */
  1305. YY_RULE(int) yy_SetextHeading2(GREG *G); /* 33 */
  1306. YY_RULE(int) yy_SetextHeading1(GREG *G); /* 32 */
  1307. YY_RULE(int) yy_SetextHeading(GREG *G); /* 31 */
  1308. YY_RULE(int) yy_Space(GREG *G); /* 30 */
  1309. YY_RULE(int) yy_AtxHeading(GREG *G); /* 29 */
  1310. YY_RULE(int) yy_AtxStart(GREG *G); /* 28 */
  1311. YY_RULE(int) yy_Inline(GREG *G); /* 27 */
  1312. YY_RULE(int) yy_Sp(GREG *G); /* 26 */
  1313. YY_RULE(int) yy_AtxInline(GREG *G); /* 25 */
  1314. YY_RULE(int) yy_Inlines(GREG *G); /* 24 */
  1315. YY_RULE(int) yy_NonindentSpace(GREG *G); /* 23 */
  1316. YY_RULE(int) yy_Plain(GREG *G); /* 22 */
  1317. YY_RULE(int) yy_Para(GREG *G); /* 21 */
  1318. YY_RULE(int) yy_StyleBlock(GREG *G); /* 20 */
  1319. YY_RULE(int) yy_HtmlBlock(GREG *G); /* 19 */
  1320. YY_RULE(int) yy_BulletList(GREG *G); /* 18 */
  1321. YY_RULE(int) yy_OrderedList(GREG *G); /* 17 */
  1322. YY_RULE(int) yy_Heading(GREG *G); /* 16 */
  1323. YY_RULE(int) yy_HorizontalRule(GREG *G); /* 15 */
  1324. YY_RULE(int) yy_Reference(GREG *G); /* 14 */
  1325. YY_RULE(int) yy_Note(GREG *G); /* 13 */
  1326. YY_RULE(int) yy_DisplayFormula(GREG *G); /* 12 */
  1327. YY_RULE(int) yy_FencedCodeBlock(GREG *G); /* 11 */
  1328. YY_RULE(int) yy_Verbatim(GREG *G); /* 10 */
  1329. YY_RULE(int) yy_BlockQuote(GREG *G); /* 9 */
  1330. YY_RULE(int) yy_BlankLine(GREG *G); /* 8 */
  1331. YY_RULE(int) yy_FrontMatterEndMark(GREG *G); /* 7 */
  1332. YY_RULE(int) yy_FrontMatterBlock(GREG *G); /* 6 */
  1333. YY_RULE(int) yy_Newline(GREG *G); /* 5 */
  1334. YY_RULE(int) yy_LocMarker(GREG *G); /* 4 */
  1335. YY_RULE(int) yy_Block(GREG *G); /* 3 */
  1336. YY_RULE(int) yy_FrontMatter(GREG *G); /* 2 */
  1337. YY_RULE(int) yy_Doc(GREG *G); /* 1 */
  1338. YY_ACTION(void) yy_1_InlineNote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1339. {
  1340. #define s G->val[-1]
  1341. yyprintf((stderr, "do yy_1_InlineNote\n"));
  1342. ADD(elem_s(pmh_NOTE)); ;
  1343. #undef s
  1344. }
  1345. YY_ACTION(void) yy_1_Note(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1346. {
  1347. #define s G->val[-1]
  1348. yyprintf((stderr, "do yy_1_Note\n"));
  1349. ADD(elem_s(pmh_NOTE)); ;
  1350. #undef s
  1351. }
  1352. YY_ACTION(void) yy_1_NoteReference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1353. {
  1354. yyprintf((stderr, "do yy_1_NoteReference\n"));
  1355. ADD(elem(pmh_NOTE)); ;
  1356. }
  1357. YY_ACTION(void) yy_1_RawLine(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1358. {
  1359. yyprintf((stderr, "do yy_1_RawLine\n"));
  1360. yy = elem(pmh_RAW); ;
  1361. }
  1362. YY_ACTION(void) yy_1_Line(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1363. {
  1364. yyprintf((stderr, "do yy_1_Line\n"));
  1365. yy = mk_element((parser_data *)G->data, pmh_RAW, yy->pos, yy->end); ;
  1366. }
  1367. YY_ACTION(void) yy_1_StartList(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1368. {
  1369. yyprintf((stderr, "do yy_1_StartList\n"));
  1370. yy = NULL; ;
  1371. }
  1372. YY_ACTION(void) yy_1_HtmlComment(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1373. {
  1374. #define s G->val[-1]
  1375. yyprintf((stderr, "do yy_1_HtmlComment\n"));
  1376. ADD(elem_s(pmh_COMMENT)); ;
  1377. #undef s
  1378. }
  1379. YY_ACTION(void) yy_1_RawHtml(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1380. {
  1381. #define s G->val[-1]
  1382. yyprintf((stderr, "do yy_1_RawHtml\n"));
  1383. ADD(elem_s(pmh_HTML)); ;
  1384. #undef s
  1385. }
  1386. YY_ACTION(void) yy_1_MarkTagClose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1387. {
  1388. #define s G->val[-1]
  1389. yyprintf((stderr, "do yy_1_MarkTagClose\n"));
  1390. yy = elem_s(pmh_HTML); ;
  1391. #undef s
  1392. }
  1393. YY_ACTION(void) yy_1_MarkTagOpen(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1394. {
  1395. #define s G->val[-1]
  1396. yyprintf((stderr, "do yy_1_MarkTagOpen\n"));
  1397. yy = elem_s(pmh_HTML); ;
  1398. #undef s
  1399. }
  1400. YY_ACTION(void) yy_1_Mark(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1401. {
  1402. #define c G->val[-1]
  1403. #define o G->val[-2]
  1404. yyprintf((stderr, "do yy_1_Mark\n"));
  1405. ADD(o);
  1406. ADD(mk_element((parser_data *)G->data, pmh_MARK, o->end, c->pos));
  1407. ADD(c);
  1408. ;
  1409. #undef c
  1410. #undef o
  1411. }
  1412. YY_ACTION(void) yy_1_Code(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1413. {
  1414. #define s G->val[-1]
  1415. yyprintf((stderr, "do yy_1_Code\n"));
  1416. ADD(elem_s(pmh_CODE)); ;
  1417. #undef s
  1418. }
  1419. YY_ACTION(void) yy_1_Ticks5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1420. {
  1421. yyprintf((stderr, "do yy_1_Ticks5\n"));
  1422. yy = elem(pmh_NO_TYPE); ;
  1423. }
  1424. YY_ACTION(void) yy_1_Ticks4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1425. {
  1426. yyprintf((stderr, "do yy_1_Ticks4\n"));
  1427. yy = elem(pmh_NO_TYPE); ;
  1428. }
  1429. YY_ACTION(void) yy_1_Ticks3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1430. {
  1431. yyprintf((stderr, "do yy_1_Ticks3\n"));
  1432. yy = elem(pmh_NO_TYPE); ;
  1433. }
  1434. YY_ACTION(void) yy_1_Ticks2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1435. {
  1436. yyprintf((stderr, "do yy_1_Ticks2\n"));
  1437. yy = elem(pmh_NO_TYPE); ;
  1438. }
  1439. YY_ACTION(void) yy_1_Ticks1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1440. {
  1441. yyprintf((stderr, "do yy_1_Ticks1\n"));
  1442. yy = elem(pmh_NO_TYPE); ;
  1443. }
  1444. YY_ACTION(void) yy_1_RefSrc(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1445. {
  1446. yyprintf((stderr, "do yy_1_RefSrc\n"));
  1447. yy = mk_notype; yy->address = COPY_YYTEXT_ORIG(); ;
  1448. }
  1449. YY_ACTION(void) yy_2_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1450. {
  1451. #define s G->val[-1]
  1452. yyprintf((stderr, "do yy_2_Label\n"));
  1453. s->pos = s->pos;
  1454. s->end = thunk->end;
  1455. yy = s;
  1456. ;
  1457. #undef s
  1458. }
  1459. YY_ACTION(void) yy_1_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1460. {
  1461. #define s G->val[-1]
  1462. yyprintf((stderr, "do yy_1_Label\n"));
  1463. s->label = COPY_YYTEXT_ORIG(); ;
  1464. #undef s
  1465. }
  1466. YY_ACTION(void) yy_1_Reference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1467. {
  1468. #define r G->val[-1]
  1469. #define l G->val[-2]
  1470. #define s G->val[-3]
  1471. yyprintf((stderr, "do yy_1_Reference\n"));
  1472. pmh_realelement *el = elem_s(pmh_REFERENCE);
  1473. el->label = strdup_or_null(l->label);
  1474. el->address = strdup_or_null(r->address);
  1475. ADD(el);
  1476. FREE_LABEL(l);
  1477. FREE_ADDRESS(r);
  1478. ;
  1479. #undef r
  1480. #undef l
  1481. #undef s
  1482. }
  1483. YY_ACTION(void) yy_3_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1484. {
  1485. #define s G->val[-1]
  1486. yyprintf((stderr, "do yy_3_AutoLinkEmail\n"));
  1487. s->end = thunk->end;
  1488. ADD(s);
  1489. ;
  1490. #undef s
  1491. }
  1492. YY_ACTION(void) yy_2_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1493. {
  1494. #define s G->val[-1]
  1495. yyprintf((stderr, "do yy_2_AutoLinkEmail\n"));
  1496. s->address = COPY_YYTEXT_ORIG(); ;
  1497. #undef s
  1498. }
  1499. YY_ACTION(void) yy_1_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1500. {
  1501. #define s G->val[-1]
  1502. yyprintf((stderr, "do yy_1_AutoLinkEmail\n"));
  1503. s->type = pmh_AUTO_LINK_EMAIL; ;
  1504. #undef s
  1505. }
  1506. YY_ACTION(void) yy_3_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1507. {
  1508. #define s G->val[-1]
  1509. yyprintf((stderr, "do yy_3_AutoLinkUrl\n"));
  1510. s->end = thunk->end;
  1511. ADD(s);
  1512. ;
  1513. #undef s
  1514. }
  1515. YY_ACTION(void) yy_2_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1516. {
  1517. #define s G->val[-1]
  1518. yyprintf((stderr, "do yy_2_AutoLinkUrl\n"));
  1519. s->address = COPY_YYTEXT_ORIG(); ;
  1520. #undef s
  1521. }
  1522. YY_ACTION(void) yy_1_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1523. {
  1524. #define s G->val[-1]
  1525. yyprintf((stderr, "do yy_1_AutoLinkUrl\n"));
  1526. s->type = pmh_AUTO_LINK_URL; ;
  1527. #undef s
  1528. }
  1529. YY_ACTION(void) yy_3_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1530. {
  1531. yyprintf((stderr, "do yy_3_Source\n"));
  1532. yy->address = COPY_YYTEXT_ORIG(); ;
  1533. }
  1534. YY_ACTION(void) yy_2_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1535. {
  1536. yyprintf((stderr, "do yy_2_Source\n"));
  1537. yy->address = COPY_YYTEXT_ORIG(); ;
  1538. }
  1539. YY_ACTION(void) yy_1_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1540. {
  1541. yyprintf((stderr, "do yy_1_Source\n"));
  1542. yy = mk_notype; ;
  1543. }
  1544. YY_ACTION(void) yy_1_ExplicitLinkSize(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1545. {
  1546. #define l G->val[-1]
  1547. #define s G->val[-2]
  1548. yyprintf((stderr, "do yy_1_ExplicitLinkSize\n"));
  1549. yy = elem_s(pmh_LINK);
  1550. if (l->address != NULL)
  1551. yy->address = strdup_or_null(l->address);
  1552. FREE_LABEL(s);
  1553. FREE_ADDRESS(l);
  1554. ;
  1555. #undef l
  1556. #undef s
  1557. }
  1558. YY_ACTION(void) yy_1_ExplicitLink(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1559. {
  1560. #define l G->val[-1]
  1561. #define s G->val[-2]
  1562. yyprintf((stderr, "do yy_1_ExplicitLink\n"));
  1563. yy = elem_s(pmh_LINK);
  1564. if (l->address != NULL)
  1565. yy->address = strdup_or_null(l->address);
  1566. FREE_LABEL(s);
  1567. FREE_ADDRESS(l);
  1568. ;
  1569. #undef l
  1570. #undef s
  1571. }
  1572. YY_ACTION(void) yy_1_ReferenceLinkSingle(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1573. {
  1574. #define s G->val[-1]
  1575. yyprintf((stderr, "do yy_1_ReferenceLinkSingle\n"));
  1576. pmh_realelement *reference = GET_REF(s->label);
  1577. if (reference) {
  1578. yy = elem_s(pmh_LINK);
  1579. yy->label = strdup_or_null(s->label);
  1580. yy->address = strdup_or_null(reference->address);
  1581. } else
  1582. yy = NULL;
  1583. FREE_LABEL(s);
  1584. ;
  1585. #undef s
  1586. }
  1587. YY_ACTION(void) yy_1_ReferenceLinkDouble(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1588. {
  1589. #define l G->val[-1]
  1590. #define s G->val[-2]
  1591. yyprintf((stderr, "do yy_1_ReferenceLinkDouble\n"));
  1592. pmh_realelement *reference = GET_REF(l->label);
  1593. if (reference) {
  1594. yy = elem_s(pmh_LINK);
  1595. yy->label = strdup_or_null(l->label);
  1596. yy->address = strdup_or_null(reference->address);
  1597. } else
  1598. yy = NULL;
  1599. FREE_LABEL(s);
  1600. FREE_LABEL(l);
  1601. ;
  1602. #undef l
  1603. #undef s
  1604. }
  1605. YY_ACTION(void) yy_1_Link(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1606. {
  1607. yyprintf((stderr, "do yy_1_Link\n"));
  1608. if (yy) ADD(yy); ;
  1609. }
  1610. YY_ACTION(void) yy_1_Image(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1611. {
  1612. yyprintf((stderr, "do yy_1_Image\n"));
  1613. if (yy != NULL) {
  1614. yy->type = pmh_IMAGE;
  1615. yy->pos -= 1;
  1616. ADD(yy);
  1617. }
  1618. ;
  1619. }
  1620. YY_ACTION(void) yy_1_Strike(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1621. {
  1622. #define s G->val[-1]
  1623. yyprintf((stderr, "do yy_1_Strike\n"));
  1624. ADD(elem_s(pmh_STRIKE)); ;
  1625. #undef s
  1626. }
  1627. YY_ACTION(void) yy_1_StrongUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1628. {
  1629. #define s G->val[-1]
  1630. yyprintf((stderr, "do yy_1_StrongUl\n"));
  1631. ADD(elem_s(pmh_STRONG)); ;
  1632. #undef s
  1633. }
  1634. YY_ACTION(void) yy_1_StrongStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1635. {
  1636. #define s G->val[-1]
  1637. yyprintf((stderr, "do yy_1_StrongStar\n"));
  1638. ADD(elem_s(pmh_STRONG)); ;
  1639. #undef s
  1640. }
  1641. YY_ACTION(void) yy_1_EmphUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1642. {
  1643. #define s G->val[-1]
  1644. yyprintf((stderr, "do yy_1_EmphUl\n"));
  1645. ADD(elem_s(pmh_EMPH)); ;
  1646. #undef s
  1647. }
  1648. YY_ACTION(void) yy_1_EmphStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1649. {
  1650. #define s G->val[-1]
  1651. yyprintf((stderr, "do yy_1_EmphStar\n"));
  1652. ADD(elem_s(pmh_EMPH)); ;
  1653. #undef s
  1654. }
  1655. YY_ACTION(void) yy_1_Entity(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1656. {
  1657. #define s G->val[-1]
  1658. yyprintf((stderr, "do yy_1_Entity\n"));
  1659. ADD(elem_s(pmh_HTML_ENTITY)); ;
  1660. #undef s
  1661. }
  1662. YY_ACTION(void) yy_1_StyleBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1663. {
  1664. #define s G->val[-1]
  1665. yyprintf((stderr, "do yy_1_StyleBlock\n"));
  1666. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1667. #undef s
  1668. }
  1669. YY_ACTION(void) yy_1_HtmlBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1670. {
  1671. #define s G->val[-1]
  1672. yyprintf((stderr, "do yy_1_HtmlBlock\n"));
  1673. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1674. #undef s
  1675. }
  1676. YY_ACTION(void) yy_1_HtmlBlockH6(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1677. {
  1678. #define s G->val[-1]
  1679. yyprintf((stderr, "do yy_1_HtmlBlockH6\n"));
  1680. ADD(elem_s(pmh_H6)); ;
  1681. #undef s
  1682. }
  1683. YY_ACTION(void) yy_1_HtmlBlockH5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1684. {
  1685. #define s G->val[-1]
  1686. yyprintf((stderr, "do yy_1_HtmlBlockH5\n"));
  1687. ADD(elem_s(pmh_H5)); ;
  1688. #undef s
  1689. }
  1690. YY_ACTION(void) yy_1_HtmlBlockH4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1691. {
  1692. #define s G->val[-1]
  1693. yyprintf((stderr, "do yy_1_HtmlBlockH4\n"));
  1694. ADD(elem_s(pmh_H4)); ;
  1695. #undef s
  1696. }
  1697. YY_ACTION(void) yy_1_HtmlBlockH3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1698. {
  1699. #define s G->val[-1]
  1700. yyprintf((stderr, "do yy_1_HtmlBlockH3\n"));
  1701. ADD(elem_s(pmh_H3)); ;
  1702. #undef s
  1703. }
  1704. YY_ACTION(void) yy_1_HtmlBlockH2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1705. {
  1706. #define s G->val[-1]
  1707. yyprintf((stderr, "do yy_1_HtmlBlockH2\n"));
  1708. ADD(elem_s(pmh_H2)); ;
  1709. #undef s
  1710. }
  1711. YY_ACTION(void) yy_1_HtmlBlockH1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1712. {
  1713. #define s G->val[-1]
  1714. yyprintf((stderr, "do yy_1_HtmlBlockH1\n"));
  1715. ADD(elem_s(pmh_H1)); ;
  1716. #undef s
  1717. }
  1718. YY_ACTION(void) yy_1_Enumerator(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1719. {
  1720. yyprintf((stderr, "do yy_1_Enumerator\n"));
  1721. ADD(elem(pmh_LIST_ENUMERATOR)); ;
  1722. }
  1723. YY_ACTION(void) yy_3_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1724. {
  1725. #define a G->val[-1]
  1726. yyprintf((stderr, "do yy_3_ListContinuationBlock\n"));
  1727. yy = a; ;
  1728. #undef a
  1729. }
  1730. YY_ACTION(void) yy_2_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1731. {
  1732. #define a G->val[-1]
  1733. yyprintf((stderr, "do yy_2_ListContinuationBlock\n"));
  1734. a = cons(yy, a); ;
  1735. #undef a
  1736. }
  1737. YY_ACTION(void) yy_1_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1738. {
  1739. #define a G->val[-1]
  1740. yyprintf((stderr, "do yy_1_ListContinuationBlock\n"));
  1741. if (*yytext == '\0') /* if strlen(yytext) == 0 */
  1742. a = cons(elem(pmh_SEPARATOR), a);
  1743. else
  1744. a = cons(elem(pmh_RAW), a);
  1745. ;
  1746. #undef a
  1747. }
  1748. YY_ACTION(void) yy_3_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1749. {
  1750. #define a G->val[-1]
  1751. yyprintf((stderr, "do yy_3_ListBlock\n"));
  1752. yy = a; ;
  1753. #undef a
  1754. }
  1755. YY_ACTION(void) yy_2_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1756. {
  1757. #define a G->val[-1]
  1758. yyprintf((stderr, "do yy_2_ListBlock\n"));
  1759. a = cons(elem(pmh_RAW), a); ;
  1760. #undef a
  1761. }
  1762. YY_ACTION(void) yy_1_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1763. {
  1764. #define a G->val[-1]
  1765. yyprintf((stderr, "do yy_1_ListBlock\n"));
  1766. a = cons(yy, a); ;
  1767. #undef a
  1768. }
  1769. YY_ACTION(void) yy_3_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1770. {
  1771. #define a G->val[-1]
  1772. yyprintf((stderr, "do yy_3_ListItemTight\n"));
  1773. yy = a; ;
  1774. #undef a
  1775. }
  1776. YY_ACTION(void) yy_2_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1777. {
  1778. #define a G->val[-1]
  1779. yyprintf((stderr, "do yy_2_ListItemTight\n"));
  1780. a = cons(yy, a); ;
  1781. #undef a
  1782. }
  1783. YY_ACTION(void) yy_1_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1784. {
  1785. #define a G->val[-1]
  1786. yyprintf((stderr, "do yy_1_ListItemTight\n"));
  1787. a = cons(yy, a); ;
  1788. #undef a
  1789. }
  1790. YY_ACTION(void) yy_3_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1791. {
  1792. #define a G->val[-1]
  1793. yyprintf((stderr, "do yy_3_ListItem\n"));
  1794. yy = a; ;
  1795. #undef a
  1796. }
  1797. YY_ACTION(void) yy_2_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1798. {
  1799. #define a G->val[-1]
  1800. yyprintf((stderr, "do yy_2_ListItem\n"));
  1801. a = cons(yy, a); ;
  1802. #undef a
  1803. }
  1804. YY_ACTION(void) yy_1_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1805. {
  1806. #define a G->val[-1]
  1807. yyprintf((stderr, "do yy_1_ListItem\n"));
  1808. a = cons(yy, a); ;
  1809. #undef a
  1810. }
  1811. YY_ACTION(void) yy_2_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1812. {
  1813. #define b G->val[-1]
  1814. #define a G->val[-2]
  1815. yyprintf((stderr, "do yy_2_ListLoose\n"));
  1816. pmh_realelement *cur = a;
  1817. while (cur != NULL) {
  1818. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1819. rawlist->children = reverse(cur->children);
  1820. ADD(rawlist);
  1821. cur = cur->next;
  1822. }
  1823. ;
  1824. #undef b
  1825. #undef a
  1826. }
  1827. YY_ACTION(void) yy_1_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1828. {
  1829. #define b G->val[-1]
  1830. #define a G->val[-2]
  1831. yyprintf((stderr, "do yy_1_ListLoose\n"));
  1832. b = cons(etext("\n\n"), b); /* In loose list, \n\n added to end of each element */
  1833. pmh_realelement *el = mk_notype;
  1834. el->children = b;
  1835. a = cons(el, a);
  1836. ;
  1837. #undef b
  1838. #undef a
  1839. }
  1840. YY_ACTION(void) yy_2_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1841. {
  1842. #define a G->val[-1]
  1843. yyprintf((stderr, "do yy_2_ListTight\n"));
  1844. pmh_realelement *cur = a;
  1845. while (cur != NULL) {
  1846. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1847. rawlist->children = reverse(cur->children);
  1848. ADD(rawlist);
  1849. cur = cur->next;
  1850. }
  1851. ;
  1852. #undef a
  1853. }
  1854. YY_ACTION(void) yy_1_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1855. {
  1856. #define a G->val[-1]
  1857. yyprintf((stderr, "do yy_1_ListTight\n"));
  1858. pmh_realelement *el = mk_notype;
  1859. el->children = yy;
  1860. a = cons(el, a);
  1861. ;
  1862. #undef a
  1863. }
  1864. YY_ACTION(void) yy_1_Bullet(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1865. {
  1866. yyprintf((stderr, "do yy_1_Bullet\n"));
  1867. ADD(elem(pmh_LIST_BULLET)); ;
  1868. }
  1869. YY_ACTION(void) yy_1_HorizontalRule(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1870. {
  1871. yyprintf((stderr, "do yy_1_HorizontalRule\n"));
  1872. ADD(elem(pmh_HRULE)); ;
  1873. }
  1874. YY_ACTION(void) yy_1_InlineEquation(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1875. {
  1876. yyprintf((stderr, "do yy_1_InlineEquation\n"));
  1877. ADD(elem(pmh_INLINEEQUATION)); ;
  1878. }
  1879. YY_ACTION(void) yy_1_DisplayFormula(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1880. {
  1881. yyprintf((stderr, "do yy_1_DisplayFormula\n"));
  1882. ADD(elem(pmh_DISPLAYFORMULA)); ;
  1883. }
  1884. YY_ACTION(void) yy_1_FencedCodeBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1885. {
  1886. #define s G->val[-1]
  1887. yyprintf((stderr, "do yy_1_FencedCodeBlock\n"));
  1888. ADD(elem(pmh_FENCEDCODEBLOCK)); ;
  1889. #undef s
  1890. }
  1891. YY_ACTION(void) yy_1_Verbatim(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1892. {
  1893. #define s G->val[-1]
  1894. yyprintf((stderr, "do yy_1_Verbatim\n"));
  1895. ADD(elem_s(pmh_VERBATIM)); ;
  1896. #undef s
  1897. }
  1898. YY_ACTION(void) yy_5_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1899. {
  1900. #define a G->val[-1]
  1901. yyprintf((stderr, "do yy_5_BlockQuoteRaw\n"));
  1902. yy = a; ;
  1903. #undef a
  1904. }
  1905. YY_ACTION(void) yy_4_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1906. {
  1907. #define a G->val[-1]
  1908. yyprintf((stderr, "do yy_4_BlockQuoteRaw\n"));
  1909. a = cons(etext("\n"), a); ;
  1910. #undef a
  1911. }
  1912. YY_ACTION(void) yy_3_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1913. {
  1914. #define a G->val[-1]
  1915. yyprintf((stderr, "do yy_3_BlockQuoteRaw\n"));
  1916. a = cons(yy, a); ;
  1917. #undef a
  1918. }
  1919. YY_ACTION(void) yy_2_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1920. {
  1921. #define a G->val[-1]
  1922. yyprintf((stderr, "do yy_2_BlockQuoteRaw\n"));
  1923. a = cons(yy, a); ;
  1924. #undef a
  1925. }
  1926. YY_ACTION(void) yy_1_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1927. {
  1928. #define a G->val[-1]
  1929. yyprintf((stderr, "do yy_1_BlockQuoteRaw\n"));
  1930. ADD(elem(pmh_BLOCKQUOTE)); ;
  1931. #undef a
  1932. }
  1933. YY_ACTION(void) yy_1_BlockQuote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1934. {
  1935. #define a G->val[-1]
  1936. yyprintf((stderr, "do yy_1_BlockQuote\n"));
  1937. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1938. rawlist->children = reverse(a);
  1939. ADD(rawlist);
  1940. ;
  1941. #undef a
  1942. }
  1943. YY_ACTION(void) yy_1_SetextHeading2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1944. {
  1945. #define s G->val[-1]
  1946. yyprintf((stderr, "do yy_1_SetextHeading2\n"));
  1947. ADD(elem_s(pmh_H2)); ;
  1948. #undef s
  1949. }
  1950. YY_ACTION(void) yy_1_SetextHeading1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1951. {
  1952. #define s G->val[-1]
  1953. yyprintf((stderr, "do yy_1_SetextHeading1\n"));
  1954. ADD(elem_s(pmh_H1)); ;
  1955. #undef s
  1956. }
  1957. YY_ACTION(void) yy_1_AtxHeading(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1958. {
  1959. #define s G->val[-1]
  1960. yyprintf((stderr, "do yy_1_AtxHeading\n"));
  1961. ADD(elem_s(s->type)); ;
  1962. #undef s
  1963. }
  1964. YY_ACTION(void) yy_1_AtxStart(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1965. {
  1966. yyprintf((stderr, "do yy_1_AtxStart\n"));
  1967. yy = elem((pmh_element_type)(pmh_H1 + (strlen(yytext) - 1))); ;
  1968. }
  1969. YY_ACTION(void) yy_1_FrontMatter(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1970. {
  1971. #define s G->val[-1]
  1972. yyprintf((stderr, "do yy_1_FrontMatter\n"));
  1973. ADD(elem(pmh_FRONTMATTER));
  1974. ;
  1975. #undef s
  1976. }
  1977. YY_ACTION(void) yy_1_LocMarker(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1978. {
  1979. yyprintf((stderr, "do yy_1_LocMarker\n"));
  1980. yy = elem(pmh_NO_TYPE); ;
  1981. }
  1982. YY_RULE(int) yy_RawNoteBlock(GREG *G)
  1983. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  1984. yyprintf((stderr, "%s\n", "RawNoteBlock"));
  1985. { int yypos4= G->pos, yythunkpos4= G->thunkpos; if (!yy_BlankLine(G)) { goto l4; } goto l1;
  1986. l4:; G->pos= yypos4; G->thunkpos= yythunkpos4;
  1987. } if (!yy_OptionallyIndentedLine(G)) { goto l1; }
  1988. l2:;
  1989. { int yypos3= G->pos, yythunkpos3= G->thunkpos;
  1990. { int yypos5= G->pos, yythunkpos5= G->thunkpos; if (!yy_BlankLine(G)) { goto l5; } goto l3;
  1991. l5:; G->pos= yypos5; G->thunkpos= yythunkpos5;
  1992. } if (!yy_OptionallyIndentedLine(G)) { goto l3; } goto l2;
  1993. l3:; G->pos= yypos3; G->thunkpos= yythunkpos3;
  1994. }
  1995. l6:;
  1996. { int yypos7= G->pos, yythunkpos7= G->thunkpos; if (!yy_BlankLine(G)) { goto l7; } goto l6;
  1997. l7:; G->pos= yypos7; G->thunkpos= yythunkpos7;
  1998. }
  1999. yyprintf((stderr, " ok %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2000. return 1;
  2001. l1:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2002. yyprintf((stderr, " fail %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2003. return 0;
  2004. }
  2005. YY_RULE(int) yy_RawNoteReference(GREG *G)
  2006. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2007. yyprintf((stderr, "%s\n", "RawNoteReference")); if (!yymatchString(G, "[^")) goto l8;
  2008. { int yypos11= G->pos, yythunkpos11= G->thunkpos; if (!yy_Newline(G)) { goto l11; } goto l8;
  2009. l11:; G->pos= yypos11; G->thunkpos= yythunkpos11;
  2010. }
  2011. { int yypos12= G->pos, yythunkpos12= G->thunkpos; if (!yymatchChar(G, ']')) goto l12; goto l8;
  2012. l12:; G->pos= yypos12; G->thunkpos= yythunkpos12;
  2013. } if (!yymatchDot(G)) goto l8;
  2014. l9:;
  2015. { int yypos10= G->pos, yythunkpos10= G->thunkpos;
  2016. { int yypos13= G->pos, yythunkpos13= G->thunkpos; if (!yy_Newline(G)) { goto l13; } goto l10;
  2017. l13:; G->pos= yypos13; G->thunkpos= yythunkpos13;
  2018. }
  2019. { int yypos14= G->pos, yythunkpos14= G->thunkpos; if (!yymatchChar(G, ']')) goto l14; goto l10;
  2020. l14:; G->pos= yypos14; G->thunkpos= yythunkpos14;
  2021. } if (!yymatchDot(G)) goto l10; goto l9;
  2022. l10:; G->pos= yypos10; G->thunkpos= yythunkpos10;
  2023. } if (!yymatchChar(G, ']')) goto l8;
  2024. yyprintf((stderr, " ok %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2025. return 1;
  2026. l8:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2027. yyprintf((stderr, " fail %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2028. return 0;
  2029. }
  2030. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G)
  2031. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2032. yyprintf((stderr, "%s\n", "ExtendedSpecialChar"));
  2033. { int yypos16= G->pos, yythunkpos16= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l17; if (!yymatchChar(G, '^')) goto l17; goto l16;
  2034. l17:; G->pos= yypos16; G->thunkpos= yythunkpos16; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l15; if (!yymatchChar(G, '$')) goto l15;
  2035. }
  2036. l16:;
  2037. yyprintf((stderr, " ok %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  2038. return 1;
  2039. l15:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2040. yyprintf((stderr, " fail %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  2041. return 0;
  2042. }
  2043. YY_RULE(int) yy_AlphanumericAscii(GREG *G)
  2044. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2045. yyprintf((stderr, "%s\n", "AlphanumericAscii")); if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l18;
  2046. yyprintf((stderr, " ok %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2047. return 1;
  2048. l18:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2049. yyprintf((stderr, " fail %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2050. return 0;
  2051. }
  2052. YY_RULE(int) yy_Quoted(GREG *G)
  2053. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2054. yyprintf((stderr, "%s\n", "Quoted"));
  2055. { int yypos20= G->pos, yythunkpos20= G->thunkpos; if (!yymatchChar(G, '"')) goto l21;
  2056. l22:;
  2057. { int yypos23= G->pos, yythunkpos23= G->thunkpos;
  2058. { int yypos24= G->pos, yythunkpos24= G->thunkpos; if (!yymatchChar(G, '"')) goto l24; goto l23;
  2059. l24:; G->pos= yypos24; G->thunkpos= yythunkpos24;
  2060. } if (!yymatchDot(G)) goto l23; goto l22;
  2061. l23:; G->pos= yypos23; G->thunkpos= yythunkpos23;
  2062. } if (!yymatchChar(G, '"')) goto l21; goto l20;
  2063. l21:; G->pos= yypos20; G->thunkpos= yythunkpos20; if (!yymatchChar(G, '\'')) goto l19;
  2064. l25:;
  2065. { int yypos26= G->pos, yythunkpos26= G->thunkpos;
  2066. { int yypos27= G->pos, yythunkpos27= G->thunkpos; if (!yymatchChar(G, '\'')) goto l27; goto l26;
  2067. l27:; G->pos= yypos27; G->thunkpos= yythunkpos27;
  2068. } if (!yymatchDot(G)) goto l26; goto l25;
  2069. l26:; G->pos= yypos26; G->thunkpos= yythunkpos26;
  2070. } if (!yymatchChar(G, '\'')) goto l19;
  2071. }
  2072. l20:;
  2073. yyprintf((stderr, " ok %s @ %s\n", "Quoted", G->buf+G->pos));
  2074. return 1;
  2075. l19:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2076. yyprintf((stderr, " fail %s @ %s\n", "Quoted", G->buf+G->pos));
  2077. return 0;
  2078. }
  2079. YY_RULE(int) yy_HtmlTag(GREG *G)
  2080. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2081. yyprintf((stderr, "%s\n", "HtmlTag")); if (!yymatchChar(G, '<')) goto l28; if (!yy_Spnl(G)) { goto l28; }
  2082. { int yypos29= G->pos, yythunkpos29= G->thunkpos; if (!yymatchChar(G, '/')) goto l29; goto l30;
  2083. l29:; G->pos= yypos29; G->thunkpos= yythunkpos29;
  2084. }
  2085. l30:; if (!yy_AlphanumericAscii(G)) { goto l28; }
  2086. l31:;
  2087. { int yypos32= G->pos, yythunkpos32= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l32; } goto l31;
  2088. l32:; G->pos= yypos32; G->thunkpos= yythunkpos32;
  2089. } if (!yy_Spnl(G)) { goto l28; }
  2090. l33:;
  2091. { int yypos34= G->pos, yythunkpos34= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l34; } goto l33;
  2092. l34:; G->pos= yypos34; G->thunkpos= yythunkpos34;
  2093. }
  2094. { int yypos35= G->pos, yythunkpos35= G->thunkpos; if (!yymatchChar(G, '/')) goto l35; goto l36;
  2095. l35:; G->pos= yypos35; G->thunkpos= yythunkpos35;
  2096. }
  2097. l36:; if (!yy_Spnl(G)) { goto l28; } if (!yymatchChar(G, '>')) goto l28;
  2098. yyprintf((stderr, " ok %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2099. return 1;
  2100. l28:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2101. yyprintf((stderr, " fail %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2102. return 0;
  2103. }
  2104. YY_RULE(int) yy_MarkTagClose(GREG *G)
  2105. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2106. yyprintf((stderr, "%s\n", "MarkTagClose")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l37; if (!yy_LocMarker(G)) { goto l37; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '<')) goto l37; if (!yy_Spnl(G)) { goto l37; } if (!yymatchChar(G, '/')) goto l37;
  2107. { int yypos38= G->pos, yythunkpos38= G->thunkpos; if (!yymatchString(G, "mark")) goto l39; goto l38;
  2108. l39:; G->pos= yypos38; G->thunkpos= yythunkpos38; if (!yymatchString(G, "MARK")) goto l37;
  2109. }
  2110. l38:; if (!yy_Spnl(G)) { goto l37; } if (!yymatchChar(G, '>')) goto l37; yyText(G, G->begin, G->end); if (!(YY_END)) goto l37; yyDo(G, yy_1_MarkTagClose, G->begin, G->end);
  2111. yyprintf((stderr, " ok %s @ %s\n", "MarkTagClose", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2112. return 1;
  2113. l37:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2114. yyprintf((stderr, " fail %s @ %s\n", "MarkTagClose", G->buf+G->pos));
  2115. return 0;
  2116. }
  2117. YY_RULE(int) yy_MarkTagText(GREG *G)
  2118. {
  2119. yyprintf((stderr, "%s\n", "MarkTagText"));
  2120. l41:;
  2121. { int yypos42= G->pos, yythunkpos42= G->thunkpos;
  2122. { int yypos43= G->pos, yythunkpos43= G->thunkpos; if (!yy_MarkTagClose(G)) { goto l43; } goto l42;
  2123. l43:; G->pos= yypos43; G->thunkpos= yythunkpos43;
  2124. }
  2125. { int yypos44= G->pos, yythunkpos44= G->thunkpos; if (!yy_RawHtml(G)) { goto l45; } goto l44;
  2126. l45:; G->pos= yypos44; G->thunkpos= yythunkpos44; if (!yymatchDot(G)) goto l42;
  2127. }
  2128. l44:; goto l41;
  2129. l42:; G->pos= yypos42; G->thunkpos= yythunkpos42;
  2130. }
  2131. yyprintf((stderr, " ok %s @ %s\n", "MarkTagText", G->buf+G->pos));
  2132. return 1;
  2133. }
  2134. YY_RULE(int) yy_MarkTagOpen(GREG *G)
  2135. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2136. yyprintf((stderr, "%s\n", "MarkTagOpen")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l46; if (!yy_LocMarker(G)) { goto l46; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '<')) goto l46; if (!yy_Spnl(G)) { goto l46; }
  2137. { int yypos47= G->pos, yythunkpos47= G->thunkpos; if (!yymatchString(G, "mark")) goto l48; goto l47;
  2138. l48:; G->pos= yypos47; G->thunkpos= yythunkpos47; if (!yymatchString(G, "MARK")) goto l46;
  2139. }
  2140. l47:; if (!yy_Spnl(G)) { goto l46; }
  2141. l49:;
  2142. { int yypos50= G->pos, yythunkpos50= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l50; } goto l49;
  2143. l50:; G->pos= yypos50; G->thunkpos= yythunkpos50;
  2144. } if (!yymatchChar(G, '>')) goto l46; yyText(G, G->begin, G->end); if (!(YY_END)) goto l46; yyDo(G, yy_1_MarkTagOpen, G->begin, G->end);
  2145. yyprintf((stderr, " ok %s @ %s\n", "MarkTagOpen", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2146. return 1;
  2147. l46:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2148. yyprintf((stderr, " fail %s @ %s\n", "MarkTagOpen", G->buf+G->pos));
  2149. return 0;
  2150. }
  2151. YY_RULE(int) yy_Ticks5(GREG *G)
  2152. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2153. yyprintf((stderr, "%s\n", "Ticks5")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l51; if (!yymatchString(G, "`````")) goto l51; yyText(G, G->begin, G->end); if (!(YY_END)) goto l51;
  2154. { int yypos52= G->pos, yythunkpos52= G->thunkpos; if (!yymatchChar(G, '`')) goto l52; goto l51;
  2155. l52:; G->pos= yypos52; G->thunkpos= yythunkpos52;
  2156. } yyDo(G, yy_1_Ticks5, G->begin, G->end);
  2157. yyprintf((stderr, " ok %s @ %s\n", "Ticks5", G->buf+G->pos));
  2158. return 1;
  2159. l51:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2160. yyprintf((stderr, " fail %s @ %s\n", "Ticks5", G->buf+G->pos));
  2161. return 0;
  2162. }
  2163. YY_RULE(int) yy_Ticks4(GREG *G)
  2164. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2165. yyprintf((stderr, "%s\n", "Ticks4")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l53; if (!yymatchString(G, "````")) goto l53; yyText(G, G->begin, G->end); if (!(YY_END)) goto l53;
  2166. { int yypos54= G->pos, yythunkpos54= G->thunkpos; if (!yymatchChar(G, '`')) goto l54; goto l53;
  2167. l54:; G->pos= yypos54; G->thunkpos= yythunkpos54;
  2168. } yyDo(G, yy_1_Ticks4, G->begin, G->end);
  2169. yyprintf((stderr, " ok %s @ %s\n", "Ticks4", G->buf+G->pos));
  2170. return 1;
  2171. l53:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2172. yyprintf((stderr, " fail %s @ %s\n", "Ticks4", G->buf+G->pos));
  2173. return 0;
  2174. }
  2175. YY_RULE(int) yy_Ticks3(GREG *G)
  2176. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2177. yyprintf((stderr, "%s\n", "Ticks3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l55; if (!yymatchString(G, "```")) goto l55; yyText(G, G->begin, G->end); if (!(YY_END)) goto l55;
  2178. { int yypos56= G->pos, yythunkpos56= G->thunkpos; if (!yymatchChar(G, '`')) goto l56; goto l55;
  2179. l56:; G->pos= yypos56; G->thunkpos= yythunkpos56;
  2180. } yyDo(G, yy_1_Ticks3, G->begin, G->end);
  2181. yyprintf((stderr, " ok %s @ %s\n", "Ticks3", G->buf+G->pos));
  2182. return 1;
  2183. l55:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2184. yyprintf((stderr, " fail %s @ %s\n", "Ticks3", G->buf+G->pos));
  2185. return 0;
  2186. }
  2187. YY_RULE(int) yy_Ticks2(GREG *G)
  2188. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2189. yyprintf((stderr, "%s\n", "Ticks2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l57; if (!yymatchString(G, "``")) goto l57; yyText(G, G->begin, G->end); if (!(YY_END)) goto l57;
  2190. { int yypos58= G->pos, yythunkpos58= G->thunkpos; if (!yymatchChar(G, '`')) goto l58; goto l57;
  2191. l58:; G->pos= yypos58; G->thunkpos= yythunkpos58;
  2192. } yyDo(G, yy_1_Ticks2, G->begin, G->end);
  2193. yyprintf((stderr, " ok %s @ %s\n", "Ticks2", G->buf+G->pos));
  2194. return 1;
  2195. l57:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2196. yyprintf((stderr, " fail %s @ %s\n", "Ticks2", G->buf+G->pos));
  2197. return 0;
  2198. }
  2199. YY_RULE(int) yy_Ticks1(GREG *G)
  2200. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2201. yyprintf((stderr, "%s\n", "Ticks1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l59; if (!yymatchChar(G, '`')) goto l59; yyText(G, G->begin, G->end); if (!(YY_END)) goto l59;
  2202. { int yypos60= G->pos, yythunkpos60= G->thunkpos; if (!yymatchChar(G, '`')) goto l60; goto l59;
  2203. l60:; G->pos= yypos60; G->thunkpos= yythunkpos60;
  2204. } yyDo(G, yy_1_Ticks1, G->begin, G->end);
  2205. yyprintf((stderr, " ok %s @ %s\n", "Ticks1", G->buf+G->pos));
  2206. return 1;
  2207. l59:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2208. yyprintf((stderr, " fail %s @ %s\n", "Ticks1", G->buf+G->pos));
  2209. return 0;
  2210. }
  2211. YY_RULE(int) yy_SkipBlock(GREG *G)
  2212. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2213. yyprintf((stderr, "%s\n", "SkipBlock"));
  2214. { int yypos62= G->pos, yythunkpos62= G->thunkpos;
  2215. { int yypos66= G->pos, yythunkpos66= G->thunkpos; if (!yy_BlankLine(G)) { goto l66; } goto l63;
  2216. l66:; G->pos= yypos66; G->thunkpos= yythunkpos66;
  2217. } if (!yy_RawLine(G)) { goto l63; }
  2218. l64:;
  2219. { int yypos65= G->pos, yythunkpos65= G->thunkpos;
  2220. { int yypos67= G->pos, yythunkpos67= G->thunkpos; if (!yy_BlankLine(G)) { goto l67; } goto l65;
  2221. l67:; G->pos= yypos67; G->thunkpos= yythunkpos67;
  2222. } if (!yy_RawLine(G)) { goto l65; } goto l64;
  2223. l65:; G->pos= yypos65; G->thunkpos= yythunkpos65;
  2224. }
  2225. l68:;
  2226. { int yypos69= G->pos, yythunkpos69= G->thunkpos; if (!yy_BlankLine(G)) { goto l69; } goto l68;
  2227. l69:; G->pos= yypos69; G->thunkpos= yythunkpos69;
  2228. } goto l62;
  2229. l63:; G->pos= yypos62; G->thunkpos= yythunkpos62; if (!yy_BlankLine(G)) { goto l61; }
  2230. l70:;
  2231. { int yypos71= G->pos, yythunkpos71= G->thunkpos; if (!yy_BlankLine(G)) { goto l71; } goto l70;
  2232. l71:; G->pos= yypos71; G->thunkpos= yythunkpos71;
  2233. }
  2234. }
  2235. l62:;
  2236. yyprintf((stderr, " ok %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2237. return 1;
  2238. l61:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2239. yyprintf((stderr, " fail %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2240. return 0;
  2241. }
  2242. YY_RULE(int) yy_References(GREG *G)
  2243. {
  2244. yyprintf((stderr, "%s\n", "References"));
  2245. l73:;
  2246. { int yypos74= G->pos, yythunkpos74= G->thunkpos;
  2247. { int yypos75= G->pos, yythunkpos75= G->thunkpos; if (!yy_Reference(G)) { goto l76; } goto l75;
  2248. l76:; G->pos= yypos75; G->thunkpos= yythunkpos75; if (!yy_SkipBlock(G)) { goto l74; }
  2249. }
  2250. l75:; goto l73;
  2251. l74:; G->pos= yypos74; G->thunkpos= yythunkpos74;
  2252. }
  2253. yyprintf((stderr, " ok %s @ %s\n", "References", G->buf+G->pos));
  2254. return 1;
  2255. }
  2256. YY_RULE(int) yy_EmptyTitle(GREG *G)
  2257. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2258. yyprintf((stderr, "%s\n", "EmptyTitle")); if (!yymatchString(G, "")) goto l77;
  2259. yyprintf((stderr, " ok %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2260. return 1;
  2261. l77:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2262. yyprintf((stderr, " fail %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2263. return 0;
  2264. }
  2265. YY_RULE(int) yy_RefTitleParens(GREG *G)
  2266. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2267. yyprintf((stderr, "%s\n", "RefTitleParens")); if (!yy_Spnl(G)) { goto l78; } if (!yymatchChar(G, '(')) goto l78;
  2268. l79:;
  2269. { int yypos80= G->pos, yythunkpos80= G->thunkpos;
  2270. { int yypos81= G->pos, yythunkpos81= G->thunkpos;
  2271. { int yypos82= G->pos, yythunkpos82= G->thunkpos; if (!yymatchChar(G, ')')) goto l83; if (!yy_Sp(G)) { goto l83; } if (!yy_Newline(G)) { goto l83; } goto l82;
  2272. l83:; G->pos= yypos82; G->thunkpos= yythunkpos82; if (!yy_Newline(G)) { goto l81; }
  2273. }
  2274. l82:; goto l80;
  2275. l81:; G->pos= yypos81; G->thunkpos= yythunkpos81;
  2276. } if (!yymatchDot(G)) goto l80; goto l79;
  2277. l80:; G->pos= yypos80; G->thunkpos= yythunkpos80;
  2278. } if (!yymatchChar(G, ')')) goto l78;
  2279. yyprintf((stderr, " ok %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2280. return 1;
  2281. l78:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2282. yyprintf((stderr, " fail %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2283. return 0;
  2284. }
  2285. YY_RULE(int) yy_RefTitleDouble(GREG *G)
  2286. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2287. yyprintf((stderr, "%s\n", "RefTitleDouble")); if (!yy_Spnl(G)) { goto l84; } if (!yymatchChar(G, '"')) goto l84;
  2288. l85:;
  2289. { int yypos86= G->pos, yythunkpos86= G->thunkpos;
  2290. { int yypos87= G->pos, yythunkpos87= G->thunkpos;
  2291. { int yypos88= G->pos, yythunkpos88= G->thunkpos; if (!yymatchChar(G, '"')) goto l89; if (!yy_Sp(G)) { goto l89; } if (!yy_Newline(G)) { goto l89; } goto l88;
  2292. l89:; G->pos= yypos88; G->thunkpos= yythunkpos88; if (!yy_Newline(G)) { goto l87; }
  2293. }
  2294. l88:; goto l86;
  2295. l87:; G->pos= yypos87; G->thunkpos= yythunkpos87;
  2296. } if (!yymatchDot(G)) goto l86; goto l85;
  2297. l86:; G->pos= yypos86; G->thunkpos= yythunkpos86;
  2298. } if (!yymatchChar(G, '"')) goto l84;
  2299. yyprintf((stderr, " ok %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2300. return 1;
  2301. l84:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2302. yyprintf((stderr, " fail %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2303. return 0;
  2304. }
  2305. YY_RULE(int) yy_RefTitleSingle(GREG *G)
  2306. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2307. yyprintf((stderr, "%s\n", "RefTitleSingle")); if (!yy_Spnl(G)) { goto l90; } if (!yymatchChar(G, '\'')) goto l90;
  2308. l91:;
  2309. { int yypos92= G->pos, yythunkpos92= G->thunkpos;
  2310. { int yypos93= G->pos, yythunkpos93= G->thunkpos;
  2311. { int yypos94= G->pos, yythunkpos94= G->thunkpos; if (!yymatchChar(G, '\'')) goto l95; if (!yy_Sp(G)) { goto l95; } if (!yy_Newline(G)) { goto l95; } goto l94;
  2312. l95:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_Newline(G)) { goto l93; }
  2313. }
  2314. l94:; goto l92;
  2315. l93:; G->pos= yypos93; G->thunkpos= yythunkpos93;
  2316. } if (!yymatchDot(G)) goto l92; goto l91;
  2317. l92:; G->pos= yypos92; G->thunkpos= yythunkpos92;
  2318. } if (!yymatchChar(G, '\'')) goto l90;
  2319. yyprintf((stderr, " ok %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2320. return 1;
  2321. l90:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2322. yyprintf((stderr, " fail %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2323. return 0;
  2324. }
  2325. YY_RULE(int) yy_RefTitle(GREG *G)
  2326. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2327. yyprintf((stderr, "%s\n", "RefTitle"));
  2328. { int yypos97= G->pos, yythunkpos97= G->thunkpos; if (!yy_RefTitleSingle(G)) { goto l98; } goto l97;
  2329. l98:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_RefTitleDouble(G)) { goto l99; } goto l97;
  2330. l99:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_RefTitleParens(G)) { goto l100; } goto l97;
  2331. l100:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_EmptyTitle(G)) { goto l96; }
  2332. }
  2333. l97:;
  2334. yyprintf((stderr, " ok %s @ %s\n", "RefTitle", G->buf+G->pos));
  2335. return 1;
  2336. l96:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2337. yyprintf((stderr, " fail %s @ %s\n", "RefTitle", G->buf+G->pos));
  2338. return 0;
  2339. }
  2340. YY_RULE(int) yy_RefSrc(GREG *G)
  2341. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2342. yyprintf((stderr, "%s\n", "RefSrc")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l101; if (!yy_Nonspacechar(G)) { goto l101; }
  2343. l102:;
  2344. { int yypos103= G->pos, yythunkpos103= G->thunkpos; if (!yy_Nonspacechar(G)) { goto l103; } goto l102;
  2345. l103:; G->pos= yypos103; G->thunkpos= yythunkpos103;
  2346. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l101; yyDo(G, yy_1_RefSrc, G->begin, G->end);
  2347. yyprintf((stderr, " ok %s @ %s\n", "RefSrc", G->buf+G->pos));
  2348. return 1;
  2349. l101:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2350. yyprintf((stderr, " fail %s @ %s\n", "RefSrc", G->buf+G->pos));
  2351. return 0;
  2352. }
  2353. YY_RULE(int) yy_AutoLinkEmail(GREG *G)
  2354. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2355. yyprintf((stderr, "%s\n", "AutoLinkEmail")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l104; if (!yy_LocMarker(G)) { goto l104; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '<')) goto l104;
  2356. { int yypos105= G->pos, yythunkpos105= G->thunkpos; if (!yymatchString(G, "mailto:")) goto l105; goto l106;
  2357. l105:; G->pos= yypos105; G->thunkpos= yythunkpos105;
  2358. }
  2359. l106:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l104; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\062\350\377\003\376\377\377\207\376\377\377\107\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l104;
  2360. l107:;
  2361. { int yypos108= G->pos, yythunkpos108= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\062\350\377\003\376\377\377\207\376\377\377\107\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l108; goto l107;
  2362. l108:; G->pos= yypos108; G->thunkpos= yythunkpos108;
  2363. } if (!yymatchChar(G, '@')) goto l104;
  2364. { int yypos111= G->pos, yythunkpos111= G->thunkpos; if (!yy_Newline(G)) { goto l111; } goto l104;
  2365. l111:; G->pos= yypos111; G->thunkpos= yythunkpos111;
  2366. }
  2367. { int yypos112= G->pos, yythunkpos112= G->thunkpos; if (!yymatchChar(G, '>')) goto l112; goto l104;
  2368. l112:; G->pos= yypos112; G->thunkpos= yythunkpos112;
  2369. } if (!yymatchDot(G)) goto l104;
  2370. l109:;
  2371. { int yypos110= G->pos, yythunkpos110= G->thunkpos;
  2372. { int yypos113= G->pos, yythunkpos113= G->thunkpos; if (!yy_Newline(G)) { goto l113; } goto l110;
  2373. l113:; G->pos= yypos113; G->thunkpos= yythunkpos113;
  2374. }
  2375. { int yypos114= G->pos, yythunkpos114= G->thunkpos; if (!yymatchChar(G, '>')) goto l114; goto l110;
  2376. l114:; G->pos= yypos114; G->thunkpos= yythunkpos114;
  2377. } if (!yymatchDot(G)) goto l110; goto l109;
  2378. l110:; G->pos= yypos110; G->thunkpos= yythunkpos110;
  2379. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l104; yyDo(G, yy_2_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '>')) goto l104; yyText(G, G->begin, G->end); if (!(YY_END)) goto l104; yyDo(G, yy_3_AutoLinkEmail, G->begin, G->end);
  2380. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkEmail", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2381. return 1;
  2382. l104:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2383. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkEmail", G->buf+G->pos));
  2384. return 0;
  2385. }
  2386. YY_RULE(int) yy_AutoLinkUrl(GREG *G)
  2387. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2388. yyprintf((stderr, "%s\n", "AutoLinkUrl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l115; if (!yy_LocMarker(G)) { goto l115; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '<')) goto l115; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l115; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l115;
  2389. l116:;
  2390. { int yypos117= G->pos, yythunkpos117= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l117; goto l116;
  2391. l117:; G->pos= yypos117; G->thunkpos= yythunkpos117;
  2392. } if (!yymatchString(G, "://")) goto l115;
  2393. { int yypos120= G->pos, yythunkpos120= G->thunkpos; if (!yy_Newline(G)) { goto l120; } goto l115;
  2394. l120:; G->pos= yypos120; G->thunkpos= yythunkpos120;
  2395. }
  2396. { int yypos121= G->pos, yythunkpos121= G->thunkpos; if (!yymatchChar(G, '>')) goto l121; goto l115;
  2397. l121:; G->pos= yypos121; G->thunkpos= yythunkpos121;
  2398. } if (!yymatchDot(G)) goto l115;
  2399. l118:;
  2400. { int yypos119= G->pos, yythunkpos119= G->thunkpos;
  2401. { int yypos122= G->pos, yythunkpos122= G->thunkpos; if (!yy_Newline(G)) { goto l122; } goto l119;
  2402. l122:; G->pos= yypos122; G->thunkpos= yythunkpos122;
  2403. }
  2404. { int yypos123= G->pos, yythunkpos123= G->thunkpos; if (!yymatchChar(G, '>')) goto l123; goto l119;
  2405. l123:; G->pos= yypos123; G->thunkpos= yythunkpos123;
  2406. } if (!yymatchDot(G)) goto l119; goto l118;
  2407. l119:; G->pos= yypos119; G->thunkpos= yythunkpos119;
  2408. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l115; yyDo(G, yy_2_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '>')) goto l115; yyText(G, G->begin, G->end); if (!(YY_END)) goto l115; yyDo(G, yy_3_AutoLinkUrl, G->begin, G->end);
  2409. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkUrl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2410. return 1;
  2411. l115:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2412. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkUrl", G->buf+G->pos));
  2413. return 0;
  2414. }
  2415. YY_RULE(int) yy_ImageSizeHeight(GREG *G)
  2416. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2417. yyprintf((stderr, "%s\n", "ImageSizeHeight")); if (!yymatchString(G, "=x")) goto l124; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l124;
  2418. l125:;
  2419. { int yypos126= G->pos, yythunkpos126= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l126; goto l125;
  2420. l126:; G->pos= yypos126; G->thunkpos= yythunkpos126;
  2421. }
  2422. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2423. return 1;
  2424. l124:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2425. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2426. return 0;
  2427. }
  2428. YY_RULE(int) yy_ImageSizeWidth(GREG *G)
  2429. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2430. yyprintf((stderr, "%s\n", "ImageSizeWidth")); if (!yymatchChar(G, '=')) goto l127; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l127;
  2431. l128:;
  2432. { int yypos129= G->pos, yythunkpos129= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l129; goto l128;
  2433. l129:; G->pos= yypos129; G->thunkpos= yythunkpos129;
  2434. } if (!yymatchChar(G, 'x')) goto l127;
  2435. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2436. return 1;
  2437. l127:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2438. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2439. return 0;
  2440. }
  2441. YY_RULE(int) yy_ImageSizeComplete(GREG *G)
  2442. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2443. yyprintf((stderr, "%s\n", "ImageSizeComplete")); if (!yymatchChar(G, '=')) goto l130; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l130;
  2444. l131:;
  2445. { int yypos132= G->pos, yythunkpos132= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l132; goto l131;
  2446. l132:; G->pos= yypos132; G->thunkpos= yythunkpos132;
  2447. } if (!yymatchChar(G, 'x')) goto l130; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l130;
  2448. l133:;
  2449. { int yypos134= G->pos, yythunkpos134= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l134; goto l133;
  2450. l134:; G->pos= yypos134; G->thunkpos= yythunkpos134;
  2451. }
  2452. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2453. return 1;
  2454. l130:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2455. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2456. return 0;
  2457. }
  2458. YY_RULE(int) yy_TitleDoubleExt(GREG *G)
  2459. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2460. yyprintf((stderr, "%s\n", "TitleDoubleExt")); if (!yymatchChar(G, '"')) goto l135;
  2461. l136:;
  2462. { int yypos137= G->pos, yythunkpos137= G->thunkpos;
  2463. { int yypos138= G->pos, yythunkpos138= G->thunkpos;
  2464. { int yypos139= G->pos, yythunkpos139= G->thunkpos; if (!yymatchChar(G, '"')) goto l140; goto l139;
  2465. l140:; G->pos= yypos139; G->thunkpos= yythunkpos139; if (!yy_Newline(G)) { goto l138; }
  2466. }
  2467. l139:; goto l137;
  2468. l138:; G->pos= yypos138; G->thunkpos= yythunkpos138;
  2469. } if (!yymatchDot(G)) goto l137; goto l136;
  2470. l137:; G->pos= yypos137; G->thunkpos= yythunkpos137;
  2471. } if (!yymatchChar(G, '"')) goto l135;
  2472. yyprintf((stderr, " ok %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2473. return 1;
  2474. l135:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2475. yyprintf((stderr, " fail %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2476. return 0;
  2477. }
  2478. YY_RULE(int) yy_TitleSingleExt(GREG *G)
  2479. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2480. yyprintf((stderr, "%s\n", "TitleSingleExt")); if (!yymatchChar(G, '\'')) goto l141;
  2481. l142:;
  2482. { int yypos143= G->pos, yythunkpos143= G->thunkpos;
  2483. { int yypos144= G->pos, yythunkpos144= G->thunkpos;
  2484. { int yypos145= G->pos, yythunkpos145= G->thunkpos; if (!yymatchChar(G, '\'')) goto l146; goto l145;
  2485. l146:; G->pos= yypos145; G->thunkpos= yythunkpos145; if (!yy_Newline(G)) { goto l144; }
  2486. }
  2487. l145:; goto l143;
  2488. l144:; G->pos= yypos144; G->thunkpos= yythunkpos144;
  2489. } if (!yymatchDot(G)) goto l143; goto l142;
  2490. l143:; G->pos= yypos143; G->thunkpos= yythunkpos143;
  2491. } if (!yymatchChar(G, '\'')) goto l141;
  2492. yyprintf((stderr, " ok %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2493. return 1;
  2494. l141:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2495. yyprintf((stderr, " fail %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2496. return 0;
  2497. }
  2498. YY_RULE(int) yy_TitleDouble(GREG *G)
  2499. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2500. yyprintf((stderr, "%s\n", "TitleDouble")); if (!yymatchChar(G, '"')) goto l147;
  2501. l148:;
  2502. { int yypos149= G->pos, yythunkpos149= G->thunkpos;
  2503. { int yypos150= G->pos, yythunkpos150= G->thunkpos; if (!yymatchChar(G, '"')) goto l150; if (!yy_Sp(G)) { goto l150; }
  2504. { int yypos151= G->pos, yythunkpos151= G->thunkpos; if (!yymatchChar(G, ')')) goto l152; goto l151;
  2505. l152:; G->pos= yypos151; G->thunkpos= yythunkpos151; if (!yy_Newline(G)) { goto l150; }
  2506. }
  2507. l151:; goto l149;
  2508. l150:; G->pos= yypos150; G->thunkpos= yythunkpos150;
  2509. } if (!yymatchDot(G)) goto l149; goto l148;
  2510. l149:; G->pos= yypos149; G->thunkpos= yythunkpos149;
  2511. } if (!yymatchChar(G, '"')) goto l147;
  2512. yyprintf((stderr, " ok %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2513. return 1;
  2514. l147:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2515. yyprintf((stderr, " fail %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2516. return 0;
  2517. }
  2518. YY_RULE(int) yy_TitleSingle(GREG *G)
  2519. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2520. yyprintf((stderr, "%s\n", "TitleSingle")); if (!yymatchChar(G, '\'')) goto l153;
  2521. l154:;
  2522. { int yypos155= G->pos, yythunkpos155= G->thunkpos;
  2523. { int yypos156= G->pos, yythunkpos156= G->thunkpos; if (!yymatchChar(G, '\'')) goto l156; if (!yy_Sp(G)) { goto l156; }
  2524. { int yypos157= G->pos, yythunkpos157= G->thunkpos; if (!yymatchChar(G, ')')) goto l158; goto l157;
  2525. l158:; G->pos= yypos157; G->thunkpos= yythunkpos157; if (!yy_Newline(G)) { goto l156; }
  2526. }
  2527. l157:; goto l155;
  2528. l156:; G->pos= yypos156; G->thunkpos= yythunkpos156;
  2529. } if (!yymatchDot(G)) goto l155; goto l154;
  2530. l155:; G->pos= yypos155; G->thunkpos= yythunkpos155;
  2531. } if (!yymatchChar(G, '\'')) goto l153;
  2532. yyprintf((stderr, " ok %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2533. return 1;
  2534. l153:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2535. yyprintf((stderr, " fail %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2536. return 0;
  2537. }
  2538. YY_RULE(int) yy_SourceContents(GREG *G)
  2539. {
  2540. yyprintf((stderr, "%s\n", "SourceContents"));
  2541. l160:;
  2542. { int yypos161= G->pos, yythunkpos161= G->thunkpos;
  2543. { int yypos162= G->pos, yythunkpos162= G->thunkpos;
  2544. { int yypos166= G->pos, yythunkpos166= G->thunkpos; if (!yymatchChar(G, '(')) goto l166; goto l163;
  2545. l166:; G->pos= yypos166; G->thunkpos= yythunkpos166;
  2546. }
  2547. { int yypos167= G->pos, yythunkpos167= G->thunkpos; if (!yymatchChar(G, ')')) goto l167; goto l163;
  2548. l167:; G->pos= yypos167; G->thunkpos= yythunkpos167;
  2549. }
  2550. { int yypos168= G->pos, yythunkpos168= G->thunkpos; if (!yymatchChar(G, '>')) goto l168; goto l163;
  2551. l168:; G->pos= yypos168; G->thunkpos= yythunkpos168;
  2552. } if (!yy_Nonspacechar(G)) { goto l163; }
  2553. l164:;
  2554. { int yypos165= G->pos, yythunkpos165= G->thunkpos;
  2555. { int yypos169= G->pos, yythunkpos169= G->thunkpos; if (!yymatchChar(G, '(')) goto l169; goto l165;
  2556. l169:; G->pos= yypos169; G->thunkpos= yythunkpos169;
  2557. }
  2558. { int yypos170= G->pos, yythunkpos170= G->thunkpos; if (!yymatchChar(G, ')')) goto l170; goto l165;
  2559. l170:; G->pos= yypos170; G->thunkpos= yythunkpos170;
  2560. }
  2561. { int yypos171= G->pos, yythunkpos171= G->thunkpos; if (!yymatchChar(G, '>')) goto l171; goto l165;
  2562. l171:; G->pos= yypos171; G->thunkpos= yythunkpos171;
  2563. } if (!yy_Nonspacechar(G)) { goto l165; } goto l164;
  2564. l165:; G->pos= yypos165; G->thunkpos= yythunkpos165;
  2565. } goto l162;
  2566. l163:; G->pos= yypos162; G->thunkpos= yythunkpos162; if (!yymatchChar(G, '(')) goto l161; if (!yy_SourceContents(G)) { goto l161; } if (!yymatchChar(G, ')')) goto l161;
  2567. }
  2568. l162:; goto l160;
  2569. l161:; G->pos= yypos161; G->thunkpos= yythunkpos161;
  2570. }
  2571. yyprintf((stderr, " ok %s @ %s\n", "SourceContents", G->buf+G->pos));
  2572. return 1;
  2573. }
  2574. YY_RULE(int) yy_ImageSize(GREG *G)
  2575. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2576. yyprintf((stderr, "%s\n", "ImageSize"));
  2577. { int yypos173= G->pos, yythunkpos173= G->thunkpos; if (!yy_ImageSizeComplete(G)) { goto l174; } goto l173;
  2578. l174:; G->pos= yypos173; G->thunkpos= yythunkpos173; if (!yy_ImageSizeWidth(G)) { goto l175; } goto l173;
  2579. l175:; G->pos= yypos173; G->thunkpos= yythunkpos173; if (!yy_ImageSizeHeight(G)) { goto l176; } goto l173;
  2580. l176:; G->pos= yypos173; G->thunkpos= yythunkpos173; if (!yymatchString(G, "")) goto l172;
  2581. }
  2582. l173:;
  2583. yyprintf((stderr, " ok %s @ %s\n", "ImageSize", G->buf+G->pos));
  2584. return 1;
  2585. l172:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2586. yyprintf((stderr, " fail %s @ %s\n", "ImageSize", G->buf+G->pos));
  2587. return 0;
  2588. }
  2589. YY_RULE(int) yy_TitleExt(GREG *G)
  2590. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2591. yyprintf((stderr, "%s\n", "TitleExt"));
  2592. { int yypos178= G->pos, yythunkpos178= G->thunkpos; if (!yy_TitleSingleExt(G)) { goto l179; } goto l178;
  2593. l179:; G->pos= yypos178; G->thunkpos= yythunkpos178; if (!yy_TitleDoubleExt(G)) { goto l180; } goto l178;
  2594. l180:; G->pos= yypos178; G->thunkpos= yythunkpos178; if (!yymatchString(G, "")) goto l177;
  2595. }
  2596. l178:;
  2597. yyprintf((stderr, " ok %s @ %s\n", "TitleExt", G->buf+G->pos));
  2598. return 1;
  2599. l177:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2600. yyprintf((stderr, " fail %s @ %s\n", "TitleExt", G->buf+G->pos));
  2601. return 0;
  2602. }
  2603. YY_RULE(int) yy_Title(GREG *G)
  2604. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2605. yyprintf((stderr, "%s\n", "Title"));
  2606. { int yypos182= G->pos, yythunkpos182= G->thunkpos; if (!yy_TitleSingle(G)) { goto l183; } goto l182;
  2607. l183:; G->pos= yypos182; G->thunkpos= yythunkpos182; if (!yy_TitleDouble(G)) { goto l184; } goto l182;
  2608. l184:; G->pos= yypos182; G->thunkpos= yythunkpos182; if (!yymatchString(G, "")) goto l181;
  2609. }
  2610. l182:;
  2611. yyprintf((stderr, " ok %s @ %s\n", "Title", G->buf+G->pos));
  2612. return 1;
  2613. l181:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2614. yyprintf((stderr, " fail %s @ %s\n", "Title", G->buf+G->pos));
  2615. return 0;
  2616. }
  2617. YY_RULE(int) yy_Source(GREG *G)
  2618. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2619. yyprintf((stderr, "%s\n", "Source")); yyDo(G, yy_1_Source, G->begin, G->end);
  2620. { int yypos186= G->pos, yythunkpos186= G->thunkpos; if (!yymatchChar(G, '<')) goto l187; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l187; if (!yy_SourceContents(G)) { goto l187; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l187; yyDo(G, yy_2_Source, G->begin, G->end); if (!yymatchChar(G, '>')) goto l187; goto l186;
  2621. l187:; G->pos= yypos186; G->thunkpos= yythunkpos186; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l185; if (!yy_SourceContents(G)) { goto l185; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l185; yyDo(G, yy_3_Source, G->begin, G->end);
  2622. }
  2623. l186:;
  2624. yyprintf((stderr, " ok %s @ %s\n", "Source", G->buf+G->pos));
  2625. return 1;
  2626. l185:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2627. yyprintf((stderr, " fail %s @ %s\n", "Source", G->buf+G->pos));
  2628. return 0;
  2629. }
  2630. YY_RULE(int) yy_Label(GREG *G)
  2631. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2632. yyprintf((stderr, "%s\n", "Label")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l188; if (!yy_LocMarker(G)) { goto l188; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '[')) goto l188;
  2633. { int yypos189= G->pos, yythunkpos189= G->thunkpos;
  2634. { int yypos191= G->pos, yythunkpos191= G->thunkpos; if (!yymatchChar(G, '^')) goto l191; goto l190;
  2635. l191:; G->pos= yypos191; G->thunkpos= yythunkpos191;
  2636. } yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l190; goto l189;
  2637. l190:; G->pos= yypos189; G->thunkpos= yythunkpos189;
  2638. { int yypos192= G->pos, yythunkpos192= G->thunkpos; if (!yymatchDot(G)) goto l188; G->pos= yypos192; G->thunkpos= yythunkpos192;
  2639. } yyText(G, G->begin, G->end); if (!( !EXT(pmh_EXT_NOTES) )) goto l188;
  2640. }
  2641. l189:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l188;
  2642. l193:;
  2643. { int yypos194= G->pos, yythunkpos194= G->thunkpos;
  2644. { int yypos195= G->pos, yythunkpos195= G->thunkpos; if (!yymatchChar(G, ']')) goto l195; goto l194;
  2645. l195:; G->pos= yypos195; G->thunkpos= yythunkpos195;
  2646. } if (!yy_Inline(G)) { goto l194; } goto l193;
  2647. l194:; G->pos= yypos194; G->thunkpos= yythunkpos194;
  2648. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l188; yyDo(G, yy_1_Label, G->begin, G->end); if (!yymatchChar(G, ']')) goto l188; yyText(G, G->begin, G->end); if (!(YY_END)) goto l188; yyDo(G, yy_2_Label, G->begin, G->end);
  2649. yyprintf((stderr, " ok %s @ %s\n", "Label", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2650. return 1;
  2651. l188:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2652. yyprintf((stderr, " fail %s @ %s\n", "Label", G->buf+G->pos));
  2653. return 0;
  2654. }
  2655. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G)
  2656. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2657. yyprintf((stderr, "%s\n", "ReferenceLinkSingle")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l196; if (!yy_Label(G)) { goto l196; } yyDo(G, yySet, -1, 0);
  2658. { int yypos197= G->pos, yythunkpos197= G->thunkpos; if (!yy_Spnl(G)) { goto l197; } if (!yymatchString(G, "[]")) goto l197; goto l198;
  2659. l197:; G->pos= yypos197; G->thunkpos= yythunkpos197;
  2660. }
  2661. l198:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l196; yyDo(G, yy_1_ReferenceLinkSingle, G->begin, G->end);
  2662. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2663. return 1;
  2664. l196:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2665. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos));
  2666. return 0;
  2667. }
  2668. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G)
  2669. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2670. yyprintf((stderr, "%s\n", "ReferenceLinkDouble")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l199; if (!yy_Label(G)) { goto l199; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l199; }
  2671. { int yypos200= G->pos, yythunkpos200= G->thunkpos; if (!yymatchString(G, "[]")) goto l200; goto l199;
  2672. l200:; G->pos= yypos200; G->thunkpos= yythunkpos200;
  2673. } if (!yy_Label(G)) { goto l199; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_END)) goto l199; yyDo(G, yy_1_ReferenceLinkDouble, G->begin, G->end);
  2674. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2675. return 1;
  2676. l199:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2677. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos));
  2678. return 0;
  2679. }
  2680. YY_RULE(int) yy_AutoLink(GREG *G)
  2681. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2682. yyprintf((stderr, "%s\n", "AutoLink"));
  2683. { int yypos202= G->pos, yythunkpos202= G->thunkpos; if (!yy_AutoLinkUrl(G)) { goto l203; } goto l202;
  2684. l203:; G->pos= yypos202; G->thunkpos= yythunkpos202; if (!yy_AutoLinkEmail(G)) { goto l201; }
  2685. }
  2686. l202:;
  2687. yyprintf((stderr, " ok %s @ %s\n", "AutoLink", G->buf+G->pos));
  2688. return 1;
  2689. l201:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2690. yyprintf((stderr, " fail %s @ %s\n", "AutoLink", G->buf+G->pos));
  2691. return 0;
  2692. }
  2693. YY_RULE(int) yy_ReferenceLink(GREG *G)
  2694. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2695. yyprintf((stderr, "%s\n", "ReferenceLink"));
  2696. { int yypos205= G->pos, yythunkpos205= G->thunkpos; if (!yy_ReferenceLinkDouble(G)) { goto l206; } goto l205;
  2697. l206:; G->pos= yypos205; G->thunkpos= yythunkpos205; if (!yy_ReferenceLinkSingle(G)) { goto l204; }
  2698. }
  2699. l205:;
  2700. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2701. return 1;
  2702. l204:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2703. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2704. return 0;
  2705. }
  2706. YY_RULE(int) yy_ExplicitLinkSize(GREG *G)
  2707. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2708. yyprintf((stderr, "%s\n", "ExplicitLinkSize")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l207; if (!yy_Label(G)) { goto l207; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l207; } if (!yymatchChar(G, '(')) goto l207; if (!yy_Sp(G)) { goto l207; } if (!yy_Source(G)) { goto l207; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l207; } if (!yy_TitleExt(G)) { goto l207; } if (!yy_Sp(G)) { goto l207; } if (!yy_ImageSize(G)) { goto l207; } if (!yy_Sp(G)) { goto l207; } if (!yymatchChar(G, ')')) goto l207; yyText(G, G->begin, G->end); if (!(YY_END)) goto l207; yyDo(G, yy_1_ExplicitLinkSize, G->begin, G->end);
  2709. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2710. return 1;
  2711. l207:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2712. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos));
  2713. return 0;
  2714. }
  2715. YY_RULE(int) yy_ExplicitLink(GREG *G)
  2716. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2717. yyprintf((stderr, "%s\n", "ExplicitLink")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l208; if (!yy_Label(G)) { goto l208; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l208; } if (!yymatchChar(G, '(')) goto l208; if (!yy_Sp(G)) { goto l208; } if (!yy_Source(G)) { goto l208; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l208; } if (!yy_Title(G)) { goto l208; } if (!yy_Sp(G)) { goto l208; } if (!yymatchChar(G, ')')) goto l208; yyText(G, G->begin, G->end); if (!(YY_END)) goto l208; yyDo(G, yy_1_ExplicitLink, G->begin, G->end);
  2718. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLink", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2719. return 1;
  2720. l208:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2721. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLink", G->buf+G->pos));
  2722. return 0;
  2723. }
  2724. YY_RULE(int) yy_StrongUl(GREG *G)
  2725. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2726. yyprintf((stderr, "%s\n", "StrongUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l209; if (!yy_LocMarker(G)) { goto l209; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "__")) goto l209;
  2727. { int yypos210= G->pos, yythunkpos210= G->thunkpos; if (!yy_Whitespace(G)) { goto l210; } goto l209;
  2728. l210:; G->pos= yypos210; G->thunkpos= yythunkpos210;
  2729. }
  2730. { int yypos213= G->pos, yythunkpos213= G->thunkpos; if (!yymatchString(G, "__")) goto l213; goto l209;
  2731. l213:; G->pos= yypos213; G->thunkpos= yythunkpos213;
  2732. } if (!yy_Inline(G)) { goto l209; }
  2733. l211:;
  2734. { int yypos212= G->pos, yythunkpos212= G->thunkpos;
  2735. { int yypos214= G->pos, yythunkpos214= G->thunkpos; if (!yymatchString(G, "__")) goto l214; goto l212;
  2736. l214:; G->pos= yypos214; G->thunkpos= yythunkpos214;
  2737. } if (!yy_Inline(G)) { goto l212; } goto l211;
  2738. l212:; G->pos= yypos212; G->thunkpos= yythunkpos212;
  2739. } if (!yymatchString(G, "__")) goto l209; yyText(G, G->begin, G->end); if (!(YY_END)) goto l209; yyDo(G, yy_1_StrongUl, G->begin, G->end);
  2740. yyprintf((stderr, " ok %s @ %s\n", "StrongUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2741. return 1;
  2742. l209:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2743. yyprintf((stderr, " fail %s @ %s\n", "StrongUl", G->buf+G->pos));
  2744. return 0;
  2745. }
  2746. YY_RULE(int) yy_StrongStar(GREG *G)
  2747. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2748. yyprintf((stderr, "%s\n", "StrongStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l215; if (!yy_LocMarker(G)) { goto l215; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "**")) goto l215;
  2749. { int yypos216= G->pos, yythunkpos216= G->thunkpos; if (!yy_Whitespace(G)) { goto l216; } goto l215;
  2750. l216:; G->pos= yypos216; G->thunkpos= yythunkpos216;
  2751. }
  2752. { int yypos219= G->pos, yythunkpos219= G->thunkpos; if (!yymatchString(G, "**")) goto l219; goto l215;
  2753. l219:; G->pos= yypos219; G->thunkpos= yythunkpos219;
  2754. } if (!yy_Inline(G)) { goto l215; }
  2755. l217:;
  2756. { int yypos218= G->pos, yythunkpos218= G->thunkpos;
  2757. { int yypos220= G->pos, yythunkpos220= G->thunkpos; if (!yymatchString(G, "**")) goto l220; goto l218;
  2758. l220:; G->pos= yypos220; G->thunkpos= yythunkpos220;
  2759. } if (!yy_Inline(G)) { goto l218; } goto l217;
  2760. l218:; G->pos= yypos218; G->thunkpos= yythunkpos218;
  2761. } if (!yymatchString(G, "**")) goto l215; yyText(G, G->begin, G->end); if (!(YY_END)) goto l215; yyDo(G, yy_1_StrongStar, G->begin, G->end);
  2762. yyprintf((stderr, " ok %s @ %s\n", "StrongStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2763. return 1;
  2764. l215:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2765. yyprintf((stderr, " fail %s @ %s\n", "StrongStar", G->buf+G->pos));
  2766. return 0;
  2767. }
  2768. YY_RULE(int) yy_Whitespace(GREG *G)
  2769. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2770. yyprintf((stderr, "%s\n", "Whitespace"));
  2771. { int yypos222= G->pos, yythunkpos222= G->thunkpos; if (!yy_Spacechar(G)) { goto l223; } goto l222;
  2772. l223:; G->pos= yypos222; G->thunkpos= yythunkpos222; if (!yy_Newline(G)) { goto l221; }
  2773. }
  2774. l222:;
  2775. yyprintf((stderr, " ok %s @ %s\n", "Whitespace", G->buf+G->pos));
  2776. return 1;
  2777. l221:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2778. yyprintf((stderr, " fail %s @ %s\n", "Whitespace", G->buf+G->pos));
  2779. return 0;
  2780. }
  2781. YY_RULE(int) yy_EmphUl(GREG *G)
  2782. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2783. yyprintf((stderr, "%s\n", "EmphUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l224; if (!yy_LocMarker(G)) { goto l224; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '_')) goto l224;
  2784. { int yypos225= G->pos, yythunkpos225= G->thunkpos; if (!yy_Whitespace(G)) { goto l225; } goto l224;
  2785. l225:; G->pos= yypos225; G->thunkpos= yythunkpos225;
  2786. }
  2787. { int yypos228= G->pos, yythunkpos228= G->thunkpos;
  2788. { int yypos230= G->pos, yythunkpos230= G->thunkpos; if (!yymatchChar(G, '_')) goto l230; goto l229;
  2789. l230:; G->pos= yypos230; G->thunkpos= yythunkpos230;
  2790. } if (!yy_Inline(G)) { goto l229; } goto l228;
  2791. l229:; G->pos= yypos228; G->thunkpos= yythunkpos228; if (!yy_StrongUl(G)) { goto l224; }
  2792. }
  2793. l228:;
  2794. l226:;
  2795. { int yypos227= G->pos, yythunkpos227= G->thunkpos;
  2796. { int yypos231= G->pos, yythunkpos231= G->thunkpos;
  2797. { int yypos233= G->pos, yythunkpos233= G->thunkpos; if (!yymatchChar(G, '_')) goto l233; goto l232;
  2798. l233:; G->pos= yypos233; G->thunkpos= yythunkpos233;
  2799. } if (!yy_Inline(G)) { goto l232; } goto l231;
  2800. l232:; G->pos= yypos231; G->thunkpos= yythunkpos231; if (!yy_StrongUl(G)) { goto l227; }
  2801. }
  2802. l231:; goto l226;
  2803. l227:; G->pos= yypos227; G->thunkpos= yythunkpos227;
  2804. } if (!yymatchChar(G, '_')) goto l224; yyText(G, G->begin, G->end); if (!(YY_END)) goto l224; yyDo(G, yy_1_EmphUl, G->begin, G->end);
  2805. yyprintf((stderr, " ok %s @ %s\n", "EmphUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2806. return 1;
  2807. l224:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2808. yyprintf((stderr, " fail %s @ %s\n", "EmphUl", G->buf+G->pos));
  2809. return 0;
  2810. }
  2811. YY_RULE(int) yy_EmphStar(GREG *G)
  2812. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2813. yyprintf((stderr, "%s\n", "EmphStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l234; if (!yy_LocMarker(G)) { goto l234; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '*')) goto l234;
  2814. { int yypos235= G->pos, yythunkpos235= G->thunkpos; if (!yy_Whitespace(G)) { goto l235; } goto l234;
  2815. l235:; G->pos= yypos235; G->thunkpos= yythunkpos235;
  2816. }
  2817. { int yypos238= G->pos, yythunkpos238= G->thunkpos;
  2818. { int yypos240= G->pos, yythunkpos240= G->thunkpos; if (!yymatchChar(G, '*')) goto l240; goto l239;
  2819. l240:; G->pos= yypos240; G->thunkpos= yythunkpos240;
  2820. } if (!yy_Inline(G)) { goto l239; } goto l238;
  2821. l239:; G->pos= yypos238; G->thunkpos= yythunkpos238; if (!yy_StrongStar(G)) { goto l234; }
  2822. }
  2823. l238:;
  2824. l236:;
  2825. { int yypos237= G->pos, yythunkpos237= G->thunkpos;
  2826. { int yypos241= G->pos, yythunkpos241= G->thunkpos;
  2827. { int yypos243= G->pos, yythunkpos243= G->thunkpos; if (!yymatchChar(G, '*')) goto l243; goto l242;
  2828. l243:; G->pos= yypos243; G->thunkpos= yythunkpos243;
  2829. } if (!yy_Inline(G)) { goto l242; } goto l241;
  2830. l242:; G->pos= yypos241; G->thunkpos= yythunkpos241; if (!yy_StrongStar(G)) { goto l237; }
  2831. }
  2832. l241:; goto l236;
  2833. l237:; G->pos= yypos237; G->thunkpos= yythunkpos237;
  2834. } if (!yymatchChar(G, '*')) goto l234; yyText(G, G->begin, G->end); if (!(YY_END)) goto l234; yyDo(G, yy_1_EmphStar, G->begin, G->end);
  2835. yyprintf((stderr, " ok %s @ %s\n", "EmphStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2836. return 1;
  2837. l234:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2838. yyprintf((stderr, " fail %s @ %s\n", "EmphStar", G->buf+G->pos));
  2839. return 0;
  2840. }
  2841. YY_RULE(int) yy_StarLine(GREG *G)
  2842. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2843. yyprintf((stderr, "%s\n", "StarLine"));
  2844. { int yypos245= G->pos, yythunkpos245= G->thunkpos; if (!yymatchString(G, "****")) goto l246;
  2845. l247:;
  2846. { int yypos248= G->pos, yythunkpos248= G->thunkpos; if (!yymatchChar(G, '*')) goto l248; goto l247;
  2847. l248:; G->pos= yypos248; G->thunkpos= yythunkpos248;
  2848. } goto l245;
  2849. l246:; G->pos= yypos245; G->thunkpos= yythunkpos245; if (!yy_Spacechar(G)) { goto l244; } if (!yymatchChar(G, '*')) goto l244;
  2850. l249:;
  2851. { int yypos250= G->pos, yythunkpos250= G->thunkpos; if (!yymatchChar(G, '*')) goto l250; goto l249;
  2852. l250:; G->pos= yypos250; G->thunkpos= yythunkpos250;
  2853. }
  2854. { int yypos251= G->pos, yythunkpos251= G->thunkpos; if (!yy_Spacechar(G)) { goto l244; } G->pos= yypos251; G->thunkpos= yythunkpos251;
  2855. }
  2856. }
  2857. l245:;
  2858. yyprintf((stderr, " ok %s @ %s\n", "StarLine", G->buf+G->pos));
  2859. return 1;
  2860. l244:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2861. yyprintf((stderr, " fail %s @ %s\n", "StarLine", G->buf+G->pos));
  2862. return 0;
  2863. }
  2864. YY_RULE(int) yy_UlLine(GREG *G)
  2865. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2866. yyprintf((stderr, "%s\n", "UlLine"));
  2867. { int yypos253= G->pos, yythunkpos253= G->thunkpos; if (!yymatchString(G, "____")) goto l254;
  2868. l255:;
  2869. { int yypos256= G->pos, yythunkpos256= G->thunkpos; if (!yymatchChar(G, '_')) goto l256; goto l255;
  2870. l256:; G->pos= yypos256; G->thunkpos= yythunkpos256;
  2871. } goto l253;
  2872. l254:; G->pos= yypos253; G->thunkpos= yythunkpos253; if (!yy_Spacechar(G)) { goto l252; } if (!yymatchChar(G, '_')) goto l252;
  2873. l257:;
  2874. { int yypos258= G->pos, yythunkpos258= G->thunkpos; if (!yymatchChar(G, '_')) goto l258; goto l257;
  2875. l258:; G->pos= yypos258; G->thunkpos= yythunkpos258;
  2876. }
  2877. { int yypos259= G->pos, yythunkpos259= G->thunkpos; if (!yy_Spacechar(G)) { goto l252; } G->pos= yypos259; G->thunkpos= yythunkpos259;
  2878. }
  2879. }
  2880. l253:;
  2881. yyprintf((stderr, " ok %s @ %s\n", "UlLine", G->buf+G->pos));
  2882. return 1;
  2883. l252:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2884. yyprintf((stderr, " fail %s @ %s\n", "UlLine", G->buf+G->pos));
  2885. return 0;
  2886. }
  2887. YY_RULE(int) yy_SpecialChar(GREG *G)
  2888. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2889. yyprintf((stderr, "%s\n", "SpecialChar"));
  2890. { int yypos261= G->pos, yythunkpos261= G->thunkpos; if (!yymatchChar(G, '~')) goto l262; goto l261;
  2891. l262:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '*')) goto l263; goto l261;
  2892. l263:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '_')) goto l264; goto l261;
  2893. l264:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '`')) goto l265; goto l261;
  2894. l265:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '&')) goto l266; goto l261;
  2895. l266:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '[')) goto l267; goto l261;
  2896. l267:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, ']')) goto l268; goto l261;
  2897. l268:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '(')) goto l269; goto l261;
  2898. l269:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, ')')) goto l270; goto l261;
  2899. l270:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '<')) goto l271; goto l261;
  2900. l271:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '!')) goto l272; goto l261;
  2901. l272:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '#')) goto l273; goto l261;
  2902. l273:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '\\')) goto l274; goto l261;
  2903. l274:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '\'')) goto l275; goto l261;
  2904. l275:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yymatchChar(G, '"')) goto l276; goto l261;
  2905. l276:; G->pos= yypos261; G->thunkpos= yythunkpos261; if (!yy_ExtendedSpecialChar(G)) { goto l260; }
  2906. }
  2907. l261:;
  2908. yyprintf((stderr, " ok %s @ %s\n", "SpecialChar", G->buf+G->pos));
  2909. return 1;
  2910. l260:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2911. yyprintf((stderr, " fail %s @ %s\n", "SpecialChar", G->buf+G->pos));
  2912. return 0;
  2913. }
  2914. YY_RULE(int) yy_Eof(GREG *G)
  2915. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2916. yyprintf((stderr, "%s\n", "Eof"));
  2917. { int yypos278= G->pos, yythunkpos278= G->thunkpos; if (!yymatchDot(G)) goto l278; goto l277;
  2918. l278:; G->pos= yypos278; G->thunkpos= yythunkpos278;
  2919. }
  2920. yyprintf((stderr, " ok %s @ %s\n", "Eof", G->buf+G->pos));
  2921. return 1;
  2922. l277:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2923. yyprintf((stderr, " fail %s @ %s\n", "Eof", G->buf+G->pos));
  2924. return 0;
  2925. }
  2926. YY_RULE(int) yy_NormalEndline(GREG *G)
  2927. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2928. yyprintf((stderr, "%s\n", "NormalEndline")); if (!yy_Sp(G)) { goto l279; } if (!yy_Newline(G)) { goto l279; }
  2929. { int yypos280= G->pos, yythunkpos280= G->thunkpos; if (!yy_BlankLine(G)) { goto l280; } goto l279;
  2930. l280:; G->pos= yypos280; G->thunkpos= yythunkpos280;
  2931. }
  2932. { int yypos281= G->pos, yythunkpos281= G->thunkpos; if (!yymatchChar(G, '>')) goto l281; goto l279;
  2933. l281:; G->pos= yypos281; G->thunkpos= yythunkpos281;
  2934. }
  2935. { int yypos282= G->pos, yythunkpos282= G->thunkpos; if (!yy_AtxStart(G)) { goto l282; } goto l279;
  2936. l282:; G->pos= yypos282; G->thunkpos= yythunkpos282;
  2937. }
  2938. { int yypos283= G->pos, yythunkpos283= G->thunkpos; if (!yy_Line(G)) { goto l283; }
  2939. { int yypos284= G->pos, yythunkpos284= G->thunkpos; if (!yymatchChar(G, '=')) goto l285;
  2940. l286:;
  2941. { int yypos287= G->pos, yythunkpos287= G->thunkpos; if (!yymatchChar(G, '=')) goto l287; goto l286;
  2942. l287:; G->pos= yypos287; G->thunkpos= yythunkpos287;
  2943. } goto l284;
  2944. l285:; G->pos= yypos284; G->thunkpos= yythunkpos284; if (!yymatchChar(G, '-')) goto l283;
  2945. l288:;
  2946. { int yypos289= G->pos, yythunkpos289= G->thunkpos; if (!yymatchChar(G, '-')) goto l289; goto l288;
  2947. l289:; G->pos= yypos289; G->thunkpos= yythunkpos289;
  2948. }
  2949. }
  2950. l284:; if (!yy_Newline(G)) { goto l283; } goto l279;
  2951. l283:; G->pos= yypos283; G->thunkpos= yythunkpos283;
  2952. }
  2953. yyprintf((stderr, " ok %s @ %s\n", "NormalEndline", G->buf+G->pos));
  2954. return 1;
  2955. l279:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2956. yyprintf((stderr, " fail %s @ %s\n", "NormalEndline", G->buf+G->pos));
  2957. return 0;
  2958. }
  2959. YY_RULE(int) yy_TerminalEndline(GREG *G)
  2960. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2961. yyprintf((stderr, "%s\n", "TerminalEndline")); if (!yy_Sp(G)) { goto l290; } if (!yy_Newline(G)) { goto l290; } if (!yy_Eof(G)) { goto l290; }
  2962. yyprintf((stderr, " ok %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  2963. return 1;
  2964. l290:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2965. yyprintf((stderr, " fail %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  2966. return 0;
  2967. }
  2968. YY_RULE(int) yy_LineBreak(GREG *G)
  2969. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2970. yyprintf((stderr, "%s\n", "LineBreak")); if (!yymatchString(G, " ")) goto l291; if (!yy_NormalEndline(G)) { goto l291; }
  2971. yyprintf((stderr, " ok %s @ %s\n", "LineBreak", G->buf+G->pos));
  2972. return 1;
  2973. l291:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2974. yyprintf((stderr, " fail %s @ %s\n", "LineBreak", G->buf+G->pos));
  2975. return 0;
  2976. }
  2977. YY_RULE(int) yy_CharEntity(GREG *G)
  2978. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2979. yyprintf((stderr, "%s\n", "CharEntity")); if (!yymatchChar(G, '&')) goto l292; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l292;
  2980. l293:;
  2981. { int yypos294= G->pos, yythunkpos294= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l294; goto l293;
  2982. l294:; G->pos= yypos294; G->thunkpos= yythunkpos294;
  2983. } if (!yymatchChar(G, ';')) goto l292;
  2984. yyprintf((stderr, " ok %s @ %s\n", "CharEntity", G->buf+G->pos));
  2985. return 1;
  2986. l292:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2987. yyprintf((stderr, " fail %s @ %s\n", "CharEntity", G->buf+G->pos));
  2988. return 0;
  2989. }
  2990. YY_RULE(int) yy_DecEntity(GREG *G)
  2991. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2992. yyprintf((stderr, "%s\n", "DecEntity")); if (!yymatchChar(G, '&')) goto l295; if (!yymatchChar(G, '#')) goto l295; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l295;
  2993. l296:;
  2994. { int yypos297= G->pos, yythunkpos297= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l297; goto l296;
  2995. l297:; G->pos= yypos297; G->thunkpos= yythunkpos297;
  2996. } if (!yymatchChar(G, ';')) goto l295;
  2997. yyprintf((stderr, " ok %s @ %s\n", "DecEntity", G->buf+G->pos));
  2998. return 1;
  2999. l295:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3000. yyprintf((stderr, " fail %s @ %s\n", "DecEntity", G->buf+G->pos));
  3001. return 0;
  3002. }
  3003. YY_RULE(int) yy_HexEntity(GREG *G)
  3004. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3005. yyprintf((stderr, "%s\n", "HexEntity")); if (!yymatchChar(G, '&')) goto l298; if (!yymatchChar(G, '#')) goto l298; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l298; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\176\000\000\000\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l298;
  3006. l299:;
  3007. { int yypos300= G->pos, yythunkpos300= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\176\000\000\000\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l300; goto l299;
  3008. l300:; G->pos= yypos300; G->thunkpos= yythunkpos300;
  3009. } if (!yymatchChar(G, ';')) goto l298;
  3010. yyprintf((stderr, " ok %s @ %s\n", "HexEntity", G->buf+G->pos));
  3011. return 1;
  3012. l298:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3013. yyprintf((stderr, " fail %s @ %s\n", "HexEntity", G->buf+G->pos));
  3014. return 0;
  3015. }
  3016. YY_RULE(int) yy_Alphanumeric(GREG *G)
  3017. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3018. yyprintf((stderr, "%s\n", "Alphanumeric"));
  3019. { int yypos302= G->pos, yythunkpos302= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l303; goto l302;
  3020. l303:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\200")) goto l304; goto l302;
  3021. l304:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\201")) goto l305; goto l302;
  3022. l305:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\202")) goto l306; goto l302;
  3023. l306:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\203")) goto l307; goto l302;
  3024. l307:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\204")) goto l308; goto l302;
  3025. l308:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\205")) goto l309; goto l302;
  3026. l309:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\206")) goto l310; goto l302;
  3027. l310:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\207")) goto l311; goto l302;
  3028. l311:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\210")) goto l312; goto l302;
  3029. l312:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\211")) goto l313; goto l302;
  3030. l313:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\212")) goto l314; goto l302;
  3031. l314:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\213")) goto l315; goto l302;
  3032. l315:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\214")) goto l316; goto l302;
  3033. l316:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\215")) goto l317; goto l302;
  3034. l317:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\216")) goto l318; goto l302;
  3035. l318:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\217")) goto l319; goto l302;
  3036. l319:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\220")) goto l320; goto l302;
  3037. l320:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\221")) goto l321; goto l302;
  3038. l321:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\222")) goto l322; goto l302;
  3039. l322:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\223")) goto l323; goto l302;
  3040. l323:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\224")) goto l324; goto l302;
  3041. l324:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\225")) goto l325; goto l302;
  3042. l325:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\226")) goto l326; goto l302;
  3043. l326:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\227")) goto l327; goto l302;
  3044. l327:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\230")) goto l328; goto l302;
  3045. l328:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\231")) goto l329; goto l302;
  3046. l329:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\232")) goto l330; goto l302;
  3047. l330:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\233")) goto l331; goto l302;
  3048. l331:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\234")) goto l332; goto l302;
  3049. l332:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\235")) goto l333; goto l302;
  3050. l333:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\236")) goto l334; goto l302;
  3051. l334:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\237")) goto l335; goto l302;
  3052. l335:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\240")) goto l336; goto l302;
  3053. l336:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\241")) goto l337; goto l302;
  3054. l337:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\242")) goto l338; goto l302;
  3055. l338:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\243")) goto l339; goto l302;
  3056. l339:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\244")) goto l340; goto l302;
  3057. l340:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\245")) goto l341; goto l302;
  3058. l341:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\246")) goto l342; goto l302;
  3059. l342:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\247")) goto l343; goto l302;
  3060. l343:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\250")) goto l344; goto l302;
  3061. l344:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\251")) goto l345; goto l302;
  3062. l345:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\252")) goto l346; goto l302;
  3063. l346:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\253")) goto l347; goto l302;
  3064. l347:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\254")) goto l348; goto l302;
  3065. l348:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\255")) goto l349; goto l302;
  3066. l349:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\256")) goto l350; goto l302;
  3067. l350:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\257")) goto l351; goto l302;
  3068. l351:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\260")) goto l352; goto l302;
  3069. l352:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\261")) goto l353; goto l302;
  3070. l353:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\262")) goto l354; goto l302;
  3071. l354:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\263")) goto l355; goto l302;
  3072. l355:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\264")) goto l356; goto l302;
  3073. l356:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\265")) goto l357; goto l302;
  3074. l357:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\266")) goto l358; goto l302;
  3075. l358:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\267")) goto l359; goto l302;
  3076. l359:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\270")) goto l360; goto l302;
  3077. l360:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\271")) goto l361; goto l302;
  3078. l361:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\272")) goto l362; goto l302;
  3079. l362:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\273")) goto l363; goto l302;
  3080. l363:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\274")) goto l364; goto l302;
  3081. l364:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\275")) goto l365; goto l302;
  3082. l365:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\276")) goto l366; goto l302;
  3083. l366:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\277")) goto l367; goto l302;
  3084. l367:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\300")) goto l368; goto l302;
  3085. l368:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\301")) goto l369; goto l302;
  3086. l369:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\302")) goto l370; goto l302;
  3087. l370:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\303")) goto l371; goto l302;
  3088. l371:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\304")) goto l372; goto l302;
  3089. l372:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\305")) goto l373; goto l302;
  3090. l373:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\306")) goto l374; goto l302;
  3091. l374:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\307")) goto l375; goto l302;
  3092. l375:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\310")) goto l376; goto l302;
  3093. l376:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\311")) goto l377; goto l302;
  3094. l377:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\312")) goto l378; goto l302;
  3095. l378:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\313")) goto l379; goto l302;
  3096. l379:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\314")) goto l380; goto l302;
  3097. l380:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\315")) goto l381; goto l302;
  3098. l381:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\316")) goto l382; goto l302;
  3099. l382:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\317")) goto l383; goto l302;
  3100. l383:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\320")) goto l384; goto l302;
  3101. l384:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\321")) goto l385; goto l302;
  3102. l385:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\322")) goto l386; goto l302;
  3103. l386:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\323")) goto l387; goto l302;
  3104. l387:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\324")) goto l388; goto l302;
  3105. l388:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\325")) goto l389; goto l302;
  3106. l389:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\326")) goto l390; goto l302;
  3107. l390:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\327")) goto l391; goto l302;
  3108. l391:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\330")) goto l392; goto l302;
  3109. l392:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\331")) goto l393; goto l302;
  3110. l393:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\332")) goto l394; goto l302;
  3111. l394:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\333")) goto l395; goto l302;
  3112. l395:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\334")) goto l396; goto l302;
  3113. l396:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\335")) goto l397; goto l302;
  3114. l397:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\336")) goto l398; goto l302;
  3115. l398:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\337")) goto l399; goto l302;
  3116. l399:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\340")) goto l400; goto l302;
  3117. l400:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\341")) goto l401; goto l302;
  3118. l401:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\342")) goto l402; goto l302;
  3119. l402:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\343")) goto l403; goto l302;
  3120. l403:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\344")) goto l404; goto l302;
  3121. l404:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\345")) goto l405; goto l302;
  3122. l405:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\346")) goto l406; goto l302;
  3123. l406:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\347")) goto l407; goto l302;
  3124. l407:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\350")) goto l408; goto l302;
  3125. l408:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\351")) goto l409; goto l302;
  3126. l409:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\352")) goto l410; goto l302;
  3127. l410:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\353")) goto l411; goto l302;
  3128. l411:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\354")) goto l412; goto l302;
  3129. l412:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\355")) goto l413; goto l302;
  3130. l413:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\356")) goto l414; goto l302;
  3131. l414:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\357")) goto l415; goto l302;
  3132. l415:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\360")) goto l416; goto l302;
  3133. l416:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\361")) goto l417; goto l302;
  3134. l417:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\362")) goto l418; goto l302;
  3135. l418:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\363")) goto l419; goto l302;
  3136. l419:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\364")) goto l420; goto l302;
  3137. l420:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\365")) goto l421; goto l302;
  3138. l421:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\366")) goto l422; goto l302;
  3139. l422:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\367")) goto l423; goto l302;
  3140. l423:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\370")) goto l424; goto l302;
  3141. l424:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\371")) goto l425; goto l302;
  3142. l425:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\372")) goto l426; goto l302;
  3143. l426:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\373")) goto l427; goto l302;
  3144. l427:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\374")) goto l428; goto l302;
  3145. l428:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\375")) goto l429; goto l302;
  3146. l429:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\376")) goto l430; goto l302;
  3147. l430:; G->pos= yypos302; G->thunkpos= yythunkpos302; if (!yymatchString(G, "\377")) goto l301;
  3148. }
  3149. l302:;
  3150. yyprintf((stderr, " ok %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3151. return 1;
  3152. l301:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3153. yyprintf((stderr, " fail %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3154. return 0;
  3155. }
  3156. YY_RULE(int) yy_NormalChar(GREG *G)
  3157. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3158. yyprintf((stderr, "%s\n", "NormalChar"));
  3159. { int yypos432= G->pos, yythunkpos432= G->thunkpos;
  3160. { int yypos433= G->pos, yythunkpos433= G->thunkpos; if (!yy_SpecialChar(G)) { goto l434; } goto l433;
  3161. l434:; G->pos= yypos433; G->thunkpos= yythunkpos433; if (!yy_Spacechar(G)) { goto l435; } goto l433;
  3162. l435:; G->pos= yypos433; G->thunkpos= yythunkpos433; if (!yy_Newline(G)) { goto l432; }
  3163. }
  3164. l433:; goto l431;
  3165. l432:; G->pos= yypos432; G->thunkpos= yythunkpos432;
  3166. } if (!yymatchDot(G)) goto l431;
  3167. yyprintf((stderr, " ok %s @ %s\n", "NormalChar", G->buf+G->pos));
  3168. return 1;
  3169. l431:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3170. yyprintf((stderr, " fail %s @ %s\n", "NormalChar", G->buf+G->pos));
  3171. return 0;
  3172. }
  3173. YY_RULE(int) yy_Symbol(GREG *G)
  3174. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3175. yyprintf((stderr, "%s\n", "Symbol")); if (!yy_SpecialChar(G)) { goto l436; }
  3176. yyprintf((stderr, " ok %s @ %s\n", "Symbol", G->buf+G->pos));
  3177. return 1;
  3178. l436:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3179. yyprintf((stderr, " fail %s @ %s\n", "Symbol", G->buf+G->pos));
  3180. return 0;
  3181. }
  3182. YY_RULE(int) yy_EscapedChar(GREG *G)
  3183. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3184. yyprintf((stderr, "%s\n", "EscapedChar")); if (!yymatchChar(G, '\\')) goto l437;
  3185. { int yypos438= G->pos, yythunkpos438= G->thunkpos; if (!yy_Newline(G)) { goto l438; } goto l437;
  3186. l438:; G->pos= yypos438; G->thunkpos= yythunkpos438;
  3187. } if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\012\157\000\120\000\000\000\270\001\000\000\070\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l437;
  3188. yyprintf((stderr, " ok %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3189. return 1;
  3190. l437:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3191. yyprintf((stderr, " fail %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3192. return 0;
  3193. }
  3194. YY_RULE(int) yy_Entity(GREG *G)
  3195. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3196. yyprintf((stderr, "%s\n", "Entity")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l439; if (!yy_LocMarker(G)) { goto l439; } yyDo(G, yySet, -1, 0);
  3197. { int yypos440= G->pos, yythunkpos440= G->thunkpos; if (!yy_HexEntity(G)) { goto l441; } goto l440;
  3198. l441:; G->pos= yypos440; G->thunkpos= yythunkpos440; if (!yy_DecEntity(G)) { goto l442; } goto l440;
  3199. l442:; G->pos= yypos440; G->thunkpos= yythunkpos440; if (!yy_CharEntity(G)) { goto l439; }
  3200. }
  3201. l440:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l439; yyDo(G, yy_1_Entity, G->begin, G->end);
  3202. yyprintf((stderr, " ok %s @ %s\n", "Entity", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3203. return 1;
  3204. l439:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3205. yyprintf((stderr, " fail %s @ %s\n", "Entity", G->buf+G->pos));
  3206. return 0;
  3207. }
  3208. YY_RULE(int) yy_RawHtml(GREG *G)
  3209. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3210. yyprintf((stderr, "%s\n", "RawHtml")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l443; if (!yy_LocMarker(G)) { goto l443; } yyDo(G, yySet, -1, 0);
  3211. { int yypos444= G->pos, yythunkpos444= G->thunkpos; if (!yy_HtmlComment(G)) { goto l445; } goto l444;
  3212. l445:; G->pos= yypos444; G->thunkpos= yythunkpos444; if (!yy_HtmlBlockScript(G)) { goto l446; } goto l444;
  3213. l446:; G->pos= yypos444; G->thunkpos= yythunkpos444; if (!yy_HtmlTag(G)) { goto l443; }
  3214. }
  3215. l444:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l443; yyDo(G, yy_1_RawHtml, G->begin, G->end);
  3216. yyprintf((stderr, " ok %s @ %s\n", "RawHtml", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3217. return 1;
  3218. l443:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3219. yyprintf((stderr, " fail %s @ %s\n", "RawHtml", G->buf+G->pos));
  3220. return 0;
  3221. }
  3222. YY_RULE(int) yy_Mark(GREG *G)
  3223. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  3224. yyprintf((stderr, "%s\n", "Mark")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MARK) )) goto l447; if (!yy_MarkTagOpen(G)) { goto l447; } yyDo(G, yySet, -2, 0); if (!yy_MarkTagText(G)) { goto l447; } if (!yy_MarkTagClose(G)) { goto l447; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_Mark, G->begin, G->end);
  3225. yyprintf((stderr, " ok %s @ %s\n", "Mark", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  3226. return 1;
  3227. l447:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3228. yyprintf((stderr, " fail %s @ %s\n", "Mark", G->buf+G->pos));
  3229. return 0;
  3230. }
  3231. YY_RULE(int) yy_Code(GREG *G)
  3232. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3233. yyprintf((stderr, "%s\n", "Code")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l448;
  3234. { int yypos449= G->pos, yythunkpos449= G->thunkpos; if (!yy_Ticks1(G)) { goto l450; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l450; }
  3235. { int yypos453= G->pos, yythunkpos453= G->thunkpos;
  3236. { int yypos457= G->pos, yythunkpos457= G->thunkpos; if (!yymatchChar(G, '`')) goto l457; goto l454;
  3237. l457:; G->pos= yypos457; G->thunkpos= yythunkpos457;
  3238. } if (!yy_Nonspacechar(G)) { goto l454; }
  3239. l455:;
  3240. { int yypos456= G->pos, yythunkpos456= G->thunkpos;
  3241. { int yypos458= G->pos, yythunkpos458= G->thunkpos; if (!yymatchChar(G, '`')) goto l458; goto l456;
  3242. l458:; G->pos= yypos458; G->thunkpos= yythunkpos458;
  3243. } if (!yy_Nonspacechar(G)) { goto l456; } goto l455;
  3244. l456:; G->pos= yypos456; G->thunkpos= yythunkpos456;
  3245. } goto l453;
  3246. l454:; G->pos= yypos453; G->thunkpos= yythunkpos453;
  3247. { int yypos460= G->pos, yythunkpos460= G->thunkpos; if (!yy_Ticks1(G)) { goto l460; } goto l459;
  3248. l460:; G->pos= yypos460; G->thunkpos= yythunkpos460;
  3249. } if (!yymatchChar(G, '`')) goto l459;
  3250. l461:;
  3251. { int yypos462= G->pos, yythunkpos462= G->thunkpos; if (!yymatchChar(G, '`')) goto l462; goto l461;
  3252. l462:; G->pos= yypos462; G->thunkpos= yythunkpos462;
  3253. } goto l453;
  3254. l459:; G->pos= yypos453; G->thunkpos= yythunkpos453;
  3255. { int yypos463= G->pos, yythunkpos463= G->thunkpos; if (!yy_Sp(G)) { goto l463; } if (!yy_Ticks1(G)) { goto l463; } goto l450;
  3256. l463:; G->pos= yypos463; G->thunkpos= yythunkpos463;
  3257. }
  3258. { int yypos464= G->pos, yythunkpos464= G->thunkpos; if (!yy_Spacechar(G)) { goto l465; } goto l464;
  3259. l465:; G->pos= yypos464; G->thunkpos= yythunkpos464; if (!yy_Newline(G)) { goto l450; }
  3260. { int yypos466= G->pos, yythunkpos466= G->thunkpos; if (!yy_BlankLine(G)) { goto l466; } goto l450;
  3261. l466:; G->pos= yypos466; G->thunkpos= yythunkpos466;
  3262. }
  3263. }
  3264. l464:;
  3265. }
  3266. l453:;
  3267. l451:;
  3268. { int yypos452= G->pos, yythunkpos452= G->thunkpos;
  3269. { int yypos467= G->pos, yythunkpos467= G->thunkpos;
  3270. { int yypos471= G->pos, yythunkpos471= G->thunkpos; if (!yymatchChar(G, '`')) goto l471; goto l468;
  3271. l471:; G->pos= yypos471; G->thunkpos= yythunkpos471;
  3272. } if (!yy_Nonspacechar(G)) { goto l468; }
  3273. l469:;
  3274. { int yypos470= G->pos, yythunkpos470= G->thunkpos;
  3275. { int yypos472= G->pos, yythunkpos472= G->thunkpos; if (!yymatchChar(G, '`')) goto l472; goto l470;
  3276. l472:; G->pos= yypos472; G->thunkpos= yythunkpos472;
  3277. } if (!yy_Nonspacechar(G)) { goto l470; } goto l469;
  3278. l470:; G->pos= yypos470; G->thunkpos= yythunkpos470;
  3279. } goto l467;
  3280. l468:; G->pos= yypos467; G->thunkpos= yythunkpos467;
  3281. { int yypos474= G->pos, yythunkpos474= G->thunkpos; if (!yy_Ticks1(G)) { goto l474; } goto l473;
  3282. l474:; G->pos= yypos474; G->thunkpos= yythunkpos474;
  3283. } if (!yymatchChar(G, '`')) goto l473;
  3284. l475:;
  3285. { int yypos476= G->pos, yythunkpos476= G->thunkpos; if (!yymatchChar(G, '`')) goto l476; goto l475;
  3286. l476:; G->pos= yypos476; G->thunkpos= yythunkpos476;
  3287. } goto l467;
  3288. l473:; G->pos= yypos467; G->thunkpos= yythunkpos467;
  3289. { int yypos477= G->pos, yythunkpos477= G->thunkpos; if (!yy_Sp(G)) { goto l477; } if (!yy_Ticks1(G)) { goto l477; } goto l452;
  3290. l477:; G->pos= yypos477; G->thunkpos= yythunkpos477;
  3291. }
  3292. { int yypos478= G->pos, yythunkpos478= G->thunkpos; if (!yy_Spacechar(G)) { goto l479; } goto l478;
  3293. l479:; G->pos= yypos478; G->thunkpos= yythunkpos478; if (!yy_Newline(G)) { goto l452; }
  3294. { int yypos480= G->pos, yythunkpos480= G->thunkpos; if (!yy_BlankLine(G)) { goto l480; } goto l452;
  3295. l480:; G->pos= yypos480; G->thunkpos= yythunkpos480;
  3296. }
  3297. }
  3298. l478:;
  3299. }
  3300. l467:; goto l451;
  3301. l452:; G->pos= yypos452; G->thunkpos= yythunkpos452;
  3302. } if (!yy_Sp(G)) { goto l450; } if (!yy_Ticks1(G)) { goto l450; } goto l449;
  3303. l450:; G->pos= yypos449; G->thunkpos= yythunkpos449; if (!yy_Ticks2(G)) { goto l481; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l481; }
  3304. { int yypos484= G->pos, yythunkpos484= G->thunkpos;
  3305. { int yypos488= G->pos, yythunkpos488= G->thunkpos; if (!yymatchChar(G, '`')) goto l488; goto l485;
  3306. l488:; G->pos= yypos488; G->thunkpos= yythunkpos488;
  3307. } if (!yy_Nonspacechar(G)) { goto l485; }
  3308. l486:;
  3309. { int yypos487= G->pos, yythunkpos487= G->thunkpos;
  3310. { int yypos489= G->pos, yythunkpos489= G->thunkpos; if (!yymatchChar(G, '`')) goto l489; goto l487;
  3311. l489:; G->pos= yypos489; G->thunkpos= yythunkpos489;
  3312. } if (!yy_Nonspacechar(G)) { goto l487; } goto l486;
  3313. l487:; G->pos= yypos487; G->thunkpos= yythunkpos487;
  3314. } goto l484;
  3315. l485:; G->pos= yypos484; G->thunkpos= yythunkpos484;
  3316. { int yypos491= G->pos, yythunkpos491= G->thunkpos; if (!yy_Ticks2(G)) { goto l491; } goto l490;
  3317. l491:; G->pos= yypos491; G->thunkpos= yythunkpos491;
  3318. } if (!yymatchChar(G, '`')) goto l490;
  3319. l492:;
  3320. { int yypos493= G->pos, yythunkpos493= G->thunkpos; if (!yymatchChar(G, '`')) goto l493; goto l492;
  3321. l493:; G->pos= yypos493; G->thunkpos= yythunkpos493;
  3322. } goto l484;
  3323. l490:; G->pos= yypos484; G->thunkpos= yythunkpos484;
  3324. { int yypos494= G->pos, yythunkpos494= G->thunkpos; if (!yy_Sp(G)) { goto l494; } if (!yy_Ticks2(G)) { goto l494; } goto l481;
  3325. l494:; G->pos= yypos494; G->thunkpos= yythunkpos494;
  3326. }
  3327. { int yypos495= G->pos, yythunkpos495= G->thunkpos; if (!yy_Spacechar(G)) { goto l496; } goto l495;
  3328. l496:; G->pos= yypos495; G->thunkpos= yythunkpos495; if (!yy_Newline(G)) { goto l481; }
  3329. { int yypos497= G->pos, yythunkpos497= G->thunkpos; if (!yy_BlankLine(G)) { goto l497; } goto l481;
  3330. l497:; G->pos= yypos497; G->thunkpos= yythunkpos497;
  3331. }
  3332. }
  3333. l495:;
  3334. }
  3335. l484:;
  3336. l482:;
  3337. { int yypos483= G->pos, yythunkpos483= G->thunkpos;
  3338. { int yypos498= G->pos, yythunkpos498= G->thunkpos;
  3339. { int yypos502= G->pos, yythunkpos502= G->thunkpos; if (!yymatchChar(G, '`')) goto l502; goto l499;
  3340. l502:; G->pos= yypos502; G->thunkpos= yythunkpos502;
  3341. } if (!yy_Nonspacechar(G)) { goto l499; }
  3342. l500:;
  3343. { int yypos501= G->pos, yythunkpos501= G->thunkpos;
  3344. { int yypos503= G->pos, yythunkpos503= G->thunkpos; if (!yymatchChar(G, '`')) goto l503; goto l501;
  3345. l503:; G->pos= yypos503; G->thunkpos= yythunkpos503;
  3346. } if (!yy_Nonspacechar(G)) { goto l501; } goto l500;
  3347. l501:; G->pos= yypos501; G->thunkpos= yythunkpos501;
  3348. } goto l498;
  3349. l499:; G->pos= yypos498; G->thunkpos= yythunkpos498;
  3350. { int yypos505= G->pos, yythunkpos505= G->thunkpos; if (!yy_Ticks2(G)) { goto l505; } goto l504;
  3351. l505:; G->pos= yypos505; G->thunkpos= yythunkpos505;
  3352. } if (!yymatchChar(G, '`')) goto l504;
  3353. l506:;
  3354. { int yypos507= G->pos, yythunkpos507= G->thunkpos; if (!yymatchChar(G, '`')) goto l507; goto l506;
  3355. l507:; G->pos= yypos507; G->thunkpos= yythunkpos507;
  3356. } goto l498;
  3357. l504:; G->pos= yypos498; G->thunkpos= yythunkpos498;
  3358. { int yypos508= G->pos, yythunkpos508= G->thunkpos; if (!yy_Sp(G)) { goto l508; } if (!yy_Ticks2(G)) { goto l508; } goto l483;
  3359. l508:; G->pos= yypos508; G->thunkpos= yythunkpos508;
  3360. }
  3361. { int yypos509= G->pos, yythunkpos509= G->thunkpos; if (!yy_Spacechar(G)) { goto l510; } goto l509;
  3362. l510:; G->pos= yypos509; G->thunkpos= yythunkpos509; if (!yy_Newline(G)) { goto l483; }
  3363. { int yypos511= G->pos, yythunkpos511= G->thunkpos; if (!yy_BlankLine(G)) { goto l511; } goto l483;
  3364. l511:; G->pos= yypos511; G->thunkpos= yythunkpos511;
  3365. }
  3366. }
  3367. l509:;
  3368. }
  3369. l498:; goto l482;
  3370. l483:; G->pos= yypos483; G->thunkpos= yythunkpos483;
  3371. } if (!yy_Sp(G)) { goto l481; } if (!yy_Ticks2(G)) { goto l481; } goto l449;
  3372. l481:; G->pos= yypos449; G->thunkpos= yythunkpos449; if (!yy_Ticks3(G)) { goto l512; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l512; }
  3373. { int yypos515= G->pos, yythunkpos515= G->thunkpos;
  3374. { int yypos519= G->pos, yythunkpos519= G->thunkpos; if (!yymatchChar(G, '`')) goto l519; goto l516;
  3375. l519:; G->pos= yypos519; G->thunkpos= yythunkpos519;
  3376. } if (!yy_Nonspacechar(G)) { goto l516; }
  3377. l517:;
  3378. { int yypos518= G->pos, yythunkpos518= G->thunkpos;
  3379. { int yypos520= G->pos, yythunkpos520= G->thunkpos; if (!yymatchChar(G, '`')) goto l520; goto l518;
  3380. l520:; G->pos= yypos520; G->thunkpos= yythunkpos520;
  3381. } if (!yy_Nonspacechar(G)) { goto l518; } goto l517;
  3382. l518:; G->pos= yypos518; G->thunkpos= yythunkpos518;
  3383. } goto l515;
  3384. l516:; G->pos= yypos515; G->thunkpos= yythunkpos515;
  3385. { int yypos522= G->pos, yythunkpos522= G->thunkpos; if (!yy_Ticks3(G)) { goto l522; } goto l521;
  3386. l522:; G->pos= yypos522; G->thunkpos= yythunkpos522;
  3387. } if (!yymatchChar(G, '`')) goto l521;
  3388. l523:;
  3389. { int yypos524= G->pos, yythunkpos524= G->thunkpos; if (!yymatchChar(G, '`')) goto l524; goto l523;
  3390. l524:; G->pos= yypos524; G->thunkpos= yythunkpos524;
  3391. } goto l515;
  3392. l521:; G->pos= yypos515; G->thunkpos= yythunkpos515;
  3393. { int yypos525= G->pos, yythunkpos525= G->thunkpos; if (!yy_Sp(G)) { goto l525; } if (!yy_Ticks3(G)) { goto l525; } goto l512;
  3394. l525:; G->pos= yypos525; G->thunkpos= yythunkpos525;
  3395. }
  3396. { int yypos526= G->pos, yythunkpos526= G->thunkpos; if (!yy_Spacechar(G)) { goto l527; } goto l526;
  3397. l527:; G->pos= yypos526; G->thunkpos= yythunkpos526; if (!yy_Newline(G)) { goto l512; }
  3398. { int yypos528= G->pos, yythunkpos528= G->thunkpos; if (!yy_BlankLine(G)) { goto l528; } goto l512;
  3399. l528:; G->pos= yypos528; G->thunkpos= yythunkpos528;
  3400. }
  3401. }
  3402. l526:;
  3403. }
  3404. l515:;
  3405. l513:;
  3406. { int yypos514= G->pos, yythunkpos514= G->thunkpos;
  3407. { int yypos529= G->pos, yythunkpos529= G->thunkpos;
  3408. { int yypos533= G->pos, yythunkpos533= G->thunkpos; if (!yymatchChar(G, '`')) goto l533; goto l530;
  3409. l533:; G->pos= yypos533; G->thunkpos= yythunkpos533;
  3410. } if (!yy_Nonspacechar(G)) { goto l530; }
  3411. l531:;
  3412. { int yypos532= G->pos, yythunkpos532= G->thunkpos;
  3413. { int yypos534= G->pos, yythunkpos534= G->thunkpos; if (!yymatchChar(G, '`')) goto l534; goto l532;
  3414. l534:; G->pos= yypos534; G->thunkpos= yythunkpos534;
  3415. } if (!yy_Nonspacechar(G)) { goto l532; } goto l531;
  3416. l532:; G->pos= yypos532; G->thunkpos= yythunkpos532;
  3417. } goto l529;
  3418. l530:; G->pos= yypos529; G->thunkpos= yythunkpos529;
  3419. { int yypos536= G->pos, yythunkpos536= G->thunkpos; if (!yy_Ticks3(G)) { goto l536; } goto l535;
  3420. l536:; G->pos= yypos536; G->thunkpos= yythunkpos536;
  3421. } if (!yymatchChar(G, '`')) goto l535;
  3422. l537:;
  3423. { int yypos538= G->pos, yythunkpos538= G->thunkpos; if (!yymatchChar(G, '`')) goto l538; goto l537;
  3424. l538:; G->pos= yypos538; G->thunkpos= yythunkpos538;
  3425. } goto l529;
  3426. l535:; G->pos= yypos529; G->thunkpos= yythunkpos529;
  3427. { int yypos539= G->pos, yythunkpos539= G->thunkpos; if (!yy_Sp(G)) { goto l539; } if (!yy_Ticks3(G)) { goto l539; } goto l514;
  3428. l539:; G->pos= yypos539; G->thunkpos= yythunkpos539;
  3429. }
  3430. { int yypos540= G->pos, yythunkpos540= G->thunkpos; if (!yy_Spacechar(G)) { goto l541; } goto l540;
  3431. l541:; G->pos= yypos540; G->thunkpos= yythunkpos540; if (!yy_Newline(G)) { goto l514; }
  3432. { int yypos542= G->pos, yythunkpos542= G->thunkpos; if (!yy_BlankLine(G)) { goto l542; } goto l514;
  3433. l542:; G->pos= yypos542; G->thunkpos= yythunkpos542;
  3434. }
  3435. }
  3436. l540:;
  3437. }
  3438. l529:; goto l513;
  3439. l514:; G->pos= yypos514; G->thunkpos= yythunkpos514;
  3440. } if (!yy_Sp(G)) { goto l512; } if (!yy_Ticks3(G)) { goto l512; } goto l449;
  3441. l512:; G->pos= yypos449; G->thunkpos= yythunkpos449; if (!yy_Ticks4(G)) { goto l543; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l543; }
  3442. { int yypos546= G->pos, yythunkpos546= G->thunkpos;
  3443. { int yypos550= G->pos, yythunkpos550= G->thunkpos; if (!yymatchChar(G, '`')) goto l550; goto l547;
  3444. l550:; G->pos= yypos550; G->thunkpos= yythunkpos550;
  3445. } if (!yy_Nonspacechar(G)) { goto l547; }
  3446. l548:;
  3447. { int yypos549= G->pos, yythunkpos549= G->thunkpos;
  3448. { int yypos551= G->pos, yythunkpos551= G->thunkpos; if (!yymatchChar(G, '`')) goto l551; goto l549;
  3449. l551:; G->pos= yypos551; G->thunkpos= yythunkpos551;
  3450. } if (!yy_Nonspacechar(G)) { goto l549; } goto l548;
  3451. l549:; G->pos= yypos549; G->thunkpos= yythunkpos549;
  3452. } goto l546;
  3453. l547:; G->pos= yypos546; G->thunkpos= yythunkpos546;
  3454. { int yypos553= G->pos, yythunkpos553= G->thunkpos; if (!yy_Ticks4(G)) { goto l553; } goto l552;
  3455. l553:; G->pos= yypos553; G->thunkpos= yythunkpos553;
  3456. } if (!yymatchChar(G, '`')) goto l552;
  3457. l554:;
  3458. { int yypos555= G->pos, yythunkpos555= G->thunkpos; if (!yymatchChar(G, '`')) goto l555; goto l554;
  3459. l555:; G->pos= yypos555; G->thunkpos= yythunkpos555;
  3460. } goto l546;
  3461. l552:; G->pos= yypos546; G->thunkpos= yythunkpos546;
  3462. { int yypos556= G->pos, yythunkpos556= G->thunkpos; if (!yy_Sp(G)) { goto l556; } if (!yy_Ticks4(G)) { goto l556; } goto l543;
  3463. l556:; G->pos= yypos556; G->thunkpos= yythunkpos556;
  3464. }
  3465. { int yypos557= G->pos, yythunkpos557= G->thunkpos; if (!yy_Spacechar(G)) { goto l558; } goto l557;
  3466. l558:; G->pos= yypos557; G->thunkpos= yythunkpos557; if (!yy_Newline(G)) { goto l543; }
  3467. { int yypos559= G->pos, yythunkpos559= G->thunkpos; if (!yy_BlankLine(G)) { goto l559; } goto l543;
  3468. l559:; G->pos= yypos559; G->thunkpos= yythunkpos559;
  3469. }
  3470. }
  3471. l557:;
  3472. }
  3473. l546:;
  3474. l544:;
  3475. { int yypos545= G->pos, yythunkpos545= G->thunkpos;
  3476. { int yypos560= G->pos, yythunkpos560= G->thunkpos;
  3477. { int yypos564= G->pos, yythunkpos564= G->thunkpos; if (!yymatchChar(G, '`')) goto l564; goto l561;
  3478. l564:; G->pos= yypos564; G->thunkpos= yythunkpos564;
  3479. } if (!yy_Nonspacechar(G)) { goto l561; }
  3480. l562:;
  3481. { int yypos563= G->pos, yythunkpos563= G->thunkpos;
  3482. { int yypos565= G->pos, yythunkpos565= G->thunkpos; if (!yymatchChar(G, '`')) goto l565; goto l563;
  3483. l565:; G->pos= yypos565; G->thunkpos= yythunkpos565;
  3484. } if (!yy_Nonspacechar(G)) { goto l563; } goto l562;
  3485. l563:; G->pos= yypos563; G->thunkpos= yythunkpos563;
  3486. } goto l560;
  3487. l561:; G->pos= yypos560; G->thunkpos= yythunkpos560;
  3488. { int yypos567= G->pos, yythunkpos567= G->thunkpos; if (!yy_Ticks4(G)) { goto l567; } goto l566;
  3489. l567:; G->pos= yypos567; G->thunkpos= yythunkpos567;
  3490. } if (!yymatchChar(G, '`')) goto l566;
  3491. l568:;
  3492. { int yypos569= G->pos, yythunkpos569= G->thunkpos; if (!yymatchChar(G, '`')) goto l569; goto l568;
  3493. l569:; G->pos= yypos569; G->thunkpos= yythunkpos569;
  3494. } goto l560;
  3495. l566:; G->pos= yypos560; G->thunkpos= yythunkpos560;
  3496. { int yypos570= G->pos, yythunkpos570= G->thunkpos; if (!yy_Sp(G)) { goto l570; } if (!yy_Ticks4(G)) { goto l570; } goto l545;
  3497. l570:; G->pos= yypos570; G->thunkpos= yythunkpos570;
  3498. }
  3499. { int yypos571= G->pos, yythunkpos571= G->thunkpos; if (!yy_Spacechar(G)) { goto l572; } goto l571;
  3500. l572:; G->pos= yypos571; G->thunkpos= yythunkpos571; if (!yy_Newline(G)) { goto l545; }
  3501. { int yypos573= G->pos, yythunkpos573= G->thunkpos; if (!yy_BlankLine(G)) { goto l573; } goto l545;
  3502. l573:; G->pos= yypos573; G->thunkpos= yythunkpos573;
  3503. }
  3504. }
  3505. l571:;
  3506. }
  3507. l560:; goto l544;
  3508. l545:; G->pos= yypos545; G->thunkpos= yythunkpos545;
  3509. } if (!yy_Sp(G)) { goto l543; } if (!yy_Ticks4(G)) { goto l543; } goto l449;
  3510. l543:; G->pos= yypos449; G->thunkpos= yythunkpos449; if (!yy_Ticks5(G)) { goto l448; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l448; }
  3511. { int yypos576= G->pos, yythunkpos576= G->thunkpos;
  3512. { int yypos580= G->pos, yythunkpos580= G->thunkpos; if (!yymatchChar(G, '`')) goto l580; goto l577;
  3513. l580:; G->pos= yypos580; G->thunkpos= yythunkpos580;
  3514. } if (!yy_Nonspacechar(G)) { goto l577; }
  3515. l578:;
  3516. { int yypos579= G->pos, yythunkpos579= G->thunkpos;
  3517. { int yypos581= G->pos, yythunkpos581= G->thunkpos; if (!yymatchChar(G, '`')) goto l581; goto l579;
  3518. l581:; G->pos= yypos581; G->thunkpos= yythunkpos581;
  3519. } if (!yy_Nonspacechar(G)) { goto l579; } goto l578;
  3520. l579:; G->pos= yypos579; G->thunkpos= yythunkpos579;
  3521. } goto l576;
  3522. l577:; G->pos= yypos576; G->thunkpos= yythunkpos576;
  3523. { int yypos583= G->pos, yythunkpos583= G->thunkpos; if (!yy_Ticks5(G)) { goto l583; } goto l582;
  3524. l583:; G->pos= yypos583; G->thunkpos= yythunkpos583;
  3525. } if (!yymatchChar(G, '`')) goto l582;
  3526. l584:;
  3527. { int yypos585= G->pos, yythunkpos585= G->thunkpos; if (!yymatchChar(G, '`')) goto l585; goto l584;
  3528. l585:; G->pos= yypos585; G->thunkpos= yythunkpos585;
  3529. } goto l576;
  3530. l582:; G->pos= yypos576; G->thunkpos= yythunkpos576;
  3531. { int yypos586= G->pos, yythunkpos586= G->thunkpos; if (!yy_Sp(G)) { goto l586; } if (!yy_Ticks5(G)) { goto l586; } goto l448;
  3532. l586:; G->pos= yypos586; G->thunkpos= yythunkpos586;
  3533. }
  3534. { int yypos587= G->pos, yythunkpos587= G->thunkpos; if (!yy_Spacechar(G)) { goto l588; } goto l587;
  3535. l588:; G->pos= yypos587; G->thunkpos= yythunkpos587; if (!yy_Newline(G)) { goto l448; }
  3536. { int yypos589= G->pos, yythunkpos589= G->thunkpos; if (!yy_BlankLine(G)) { goto l589; } goto l448;
  3537. l589:; G->pos= yypos589; G->thunkpos= yythunkpos589;
  3538. }
  3539. }
  3540. l587:;
  3541. }
  3542. l576:;
  3543. l574:;
  3544. { int yypos575= G->pos, yythunkpos575= G->thunkpos;
  3545. { int yypos590= G->pos, yythunkpos590= G->thunkpos;
  3546. { int yypos594= G->pos, yythunkpos594= G->thunkpos; if (!yymatchChar(G, '`')) goto l594; goto l591;
  3547. l594:; G->pos= yypos594; G->thunkpos= yythunkpos594;
  3548. } if (!yy_Nonspacechar(G)) { goto l591; }
  3549. l592:;
  3550. { int yypos593= G->pos, yythunkpos593= G->thunkpos;
  3551. { int yypos595= G->pos, yythunkpos595= G->thunkpos; if (!yymatchChar(G, '`')) goto l595; goto l593;
  3552. l595:; G->pos= yypos595; G->thunkpos= yythunkpos595;
  3553. } if (!yy_Nonspacechar(G)) { goto l593; } goto l592;
  3554. l593:; G->pos= yypos593; G->thunkpos= yythunkpos593;
  3555. } goto l590;
  3556. l591:; G->pos= yypos590; G->thunkpos= yythunkpos590;
  3557. { int yypos597= G->pos, yythunkpos597= G->thunkpos; if (!yy_Ticks5(G)) { goto l597; } goto l596;
  3558. l597:; G->pos= yypos597; G->thunkpos= yythunkpos597;
  3559. } if (!yymatchChar(G, '`')) goto l596;
  3560. l598:;
  3561. { int yypos599= G->pos, yythunkpos599= G->thunkpos; if (!yymatchChar(G, '`')) goto l599; goto l598;
  3562. l599:; G->pos= yypos599; G->thunkpos= yythunkpos599;
  3563. } goto l590;
  3564. l596:; G->pos= yypos590; G->thunkpos= yythunkpos590;
  3565. { int yypos600= G->pos, yythunkpos600= G->thunkpos; if (!yy_Sp(G)) { goto l600; } if (!yy_Ticks5(G)) { goto l600; } goto l575;
  3566. l600:; G->pos= yypos600; G->thunkpos= yythunkpos600;
  3567. }
  3568. { int yypos601= G->pos, yythunkpos601= G->thunkpos; if (!yy_Spacechar(G)) { goto l602; } goto l601;
  3569. l602:; G->pos= yypos601; G->thunkpos= yythunkpos601; if (!yy_Newline(G)) { goto l575; }
  3570. { int yypos603= G->pos, yythunkpos603= G->thunkpos; if (!yy_BlankLine(G)) { goto l603; } goto l575;
  3571. l603:; G->pos= yypos603; G->thunkpos= yythunkpos603;
  3572. }
  3573. }
  3574. l601:;
  3575. }
  3576. l590:; goto l574;
  3577. l575:; G->pos= yypos575; G->thunkpos= yythunkpos575;
  3578. } if (!yy_Sp(G)) { goto l448; } if (!yy_Ticks5(G)) { goto l448; }
  3579. }
  3580. l449:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l448; yyDo(G, yy_1_Code, G->begin, G->end);
  3581. yyprintf((stderr, " ok %s @ %s\n", "Code", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3582. return 1;
  3583. l448:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3584. yyprintf((stderr, " fail %s @ %s\n", "Code", G->buf+G->pos));
  3585. return 0;
  3586. }
  3587. YY_RULE(int) yy_InlineNote(GREG *G)
  3588. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3589. yyprintf((stderr, "%s\n", "InlineNote")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l604; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l604; if (!yy_LocMarker(G)) { goto l604; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "^[")) goto l604;
  3590. { int yypos607= G->pos, yythunkpos607= G->thunkpos; if (!yymatchChar(G, ']')) goto l607; goto l604;
  3591. l607:; G->pos= yypos607; G->thunkpos= yythunkpos607;
  3592. } if (!yy_Inline(G)) { goto l604; }
  3593. l605:;
  3594. { int yypos606= G->pos, yythunkpos606= G->thunkpos;
  3595. { int yypos608= G->pos, yythunkpos608= G->thunkpos; if (!yymatchChar(G, ']')) goto l608; goto l606;
  3596. l608:; G->pos= yypos608; G->thunkpos= yythunkpos608;
  3597. } if (!yy_Inline(G)) { goto l606; } goto l605;
  3598. l606:; G->pos= yypos606; G->thunkpos= yythunkpos606;
  3599. } if (!yymatchChar(G, ']')) goto l604; yyText(G, G->begin, G->end); if (!(YY_END)) goto l604; yyDo(G, yy_1_InlineNote, G->begin, G->end);
  3600. yyprintf((stderr, " ok %s @ %s\n", "InlineNote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3601. return 1;
  3602. l604:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3603. yyprintf((stderr, " fail %s @ %s\n", "InlineNote", G->buf+G->pos));
  3604. return 0;
  3605. }
  3606. YY_RULE(int) yy_NoteReference(GREG *G)
  3607. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3608. yyprintf((stderr, "%s\n", "NoteReference")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l609; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l609; if (!yy_RawNoteReference(G)) { goto l609; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l609; yyDo(G, yy_1_NoteReference, G->begin, G->end);
  3609. yyprintf((stderr, " ok %s @ %s\n", "NoteReference", G->buf+G->pos));
  3610. return 1;
  3611. l609:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3612. yyprintf((stderr, " fail %s @ %s\n", "NoteReference", G->buf+G->pos));
  3613. return 0;
  3614. }
  3615. YY_RULE(int) yy_Link(GREG *G)
  3616. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3617. yyprintf((stderr, "%s\n", "Link"));
  3618. { int yypos611= G->pos, yythunkpos611= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l612; } goto l611;
  3619. l612:; G->pos= yypos611; G->thunkpos= yythunkpos611; if (!yy_ReferenceLink(G)) { goto l613; } goto l611;
  3620. l613:; G->pos= yypos611; G->thunkpos= yythunkpos611; if (!yy_AutoLink(G)) { goto l610; }
  3621. }
  3622. l611:; yyDo(G, yy_1_Link, G->begin, G->end);
  3623. yyprintf((stderr, " ok %s @ %s\n", "Link", G->buf+G->pos));
  3624. return 1;
  3625. l610:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3626. yyprintf((stderr, " fail %s @ %s\n", "Link", G->buf+G->pos));
  3627. return 0;
  3628. }
  3629. YY_RULE(int) yy_Image(GREG *G)
  3630. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3631. yyprintf((stderr, "%s\n", "Image")); if (!yymatchChar(G, '!')) goto l614;
  3632. { int yypos615= G->pos, yythunkpos615= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l616; } goto l615;
  3633. l616:; G->pos= yypos615; G->thunkpos= yythunkpos615; if (!yy_ExplicitLinkSize(G)) { goto l617; } goto l615;
  3634. l617:; G->pos= yypos615; G->thunkpos= yythunkpos615; if (!yy_ReferenceLink(G)) { goto l614; }
  3635. }
  3636. l615:; yyDo(G, yy_1_Image, G->begin, G->end);
  3637. yyprintf((stderr, " ok %s @ %s\n", "Image", G->buf+G->pos));
  3638. return 1;
  3639. l614:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3640. yyprintf((stderr, " fail %s @ %s\n", "Image", G->buf+G->pos));
  3641. return 0;
  3642. }
  3643. YY_RULE(int) yy_Strike(GREG *G)
  3644. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3645. yyprintf((stderr, "%s\n", "Strike")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_STRIKE) )) goto l618; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l618; if (!yy_LocMarker(G)) { goto l618; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "~~")) goto l618;
  3646. { int yypos619= G->pos, yythunkpos619= G->thunkpos; if (!yy_Whitespace(G)) { goto l619; } goto l618;
  3647. l619:; G->pos= yypos619; G->thunkpos= yythunkpos619;
  3648. }
  3649. { int yypos622= G->pos, yythunkpos622= G->thunkpos; if (!yymatchString(G, "~~")) goto l622; goto l618;
  3650. l622:; G->pos= yypos622; G->thunkpos= yythunkpos622;
  3651. } if (!yy_Inline(G)) { goto l618; }
  3652. l620:;
  3653. { int yypos621= G->pos, yythunkpos621= G->thunkpos;
  3654. { int yypos623= G->pos, yythunkpos623= G->thunkpos; if (!yymatchString(G, "~~")) goto l623; goto l621;
  3655. l623:; G->pos= yypos623; G->thunkpos= yythunkpos623;
  3656. } if (!yy_Inline(G)) { goto l621; } goto l620;
  3657. l621:; G->pos= yypos621; G->thunkpos= yythunkpos621;
  3658. } if (!yymatchString(G, "~~")) goto l618; yyText(G, G->begin, G->end); if (!(YY_END)) goto l618; yyDo(G, yy_1_Strike, G->begin, G->end);
  3659. yyprintf((stderr, " ok %s @ %s\n", "Strike", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3660. return 1;
  3661. l618:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3662. yyprintf((stderr, " fail %s @ %s\n", "Strike", G->buf+G->pos));
  3663. return 0;
  3664. }
  3665. YY_RULE(int) yy_Emph(GREG *G)
  3666. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3667. yyprintf((stderr, "%s\n", "Emph"));
  3668. { int yypos625= G->pos, yythunkpos625= G->thunkpos; if (!yy_EmphStar(G)) { goto l626; } goto l625;
  3669. l626:; G->pos= yypos625; G->thunkpos= yythunkpos625; if (!yy_EmphUl(G)) { goto l624; }
  3670. }
  3671. l625:;
  3672. yyprintf((stderr, " ok %s @ %s\n", "Emph", G->buf+G->pos));
  3673. return 1;
  3674. l624:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3675. yyprintf((stderr, " fail %s @ %s\n", "Emph", G->buf+G->pos));
  3676. return 0;
  3677. }
  3678. YY_RULE(int) yy_Strong(GREG *G)
  3679. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3680. yyprintf((stderr, "%s\n", "Strong"));
  3681. { int yypos628= G->pos, yythunkpos628= G->thunkpos; if (!yy_StrongStar(G)) { goto l629; } goto l628;
  3682. l629:; G->pos= yypos628; G->thunkpos= yythunkpos628; if (!yy_StrongUl(G)) { goto l627; }
  3683. }
  3684. l628:;
  3685. yyprintf((stderr, " ok %s @ %s\n", "Strong", G->buf+G->pos));
  3686. return 1;
  3687. l627:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3688. yyprintf((stderr, " fail %s @ %s\n", "Strong", G->buf+G->pos));
  3689. return 0;
  3690. }
  3691. YY_RULE(int) yy_UlOrStarLine(GREG *G)
  3692. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3693. yyprintf((stderr, "%s\n", "UlOrStarLine"));
  3694. { int yypos631= G->pos, yythunkpos631= G->thunkpos; if (!yy_UlLine(G)) { goto l632; } goto l631;
  3695. l632:; G->pos= yypos631; G->thunkpos= yythunkpos631; if (!yy_StarLine(G)) { goto l630; }
  3696. }
  3697. l631:;
  3698. yyprintf((stderr, " ok %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3699. return 1;
  3700. l630:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3701. yyprintf((stderr, " fail %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3702. return 0;
  3703. }
  3704. YY_RULE(int) yy_Str(GREG *G)
  3705. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3706. yyprintf((stderr, "%s\n", "Str")); if (!yy_NormalChar(G)) { goto l633; }
  3707. l634:;
  3708. { int yypos635= G->pos, yythunkpos635= G->thunkpos;
  3709. { int yypos636= G->pos, yythunkpos636= G->thunkpos; if (!yy_NormalChar(G)) { goto l637; } goto l636;
  3710. l637:; G->pos= yypos636; G->thunkpos= yythunkpos636; if (!yymatchChar(G, '_')) goto l635;
  3711. l638:;
  3712. { int yypos639= G->pos, yythunkpos639= G->thunkpos; if (!yymatchChar(G, '_')) goto l639; goto l638;
  3713. l639:; G->pos= yypos639; G->thunkpos= yythunkpos639;
  3714. }
  3715. { int yypos640= G->pos, yythunkpos640= G->thunkpos; if (!yy_Alphanumeric(G)) { goto l635; } G->pos= yypos640; G->thunkpos= yythunkpos640;
  3716. }
  3717. }
  3718. l636:; goto l634;
  3719. l635:; G->pos= yypos635; G->thunkpos= yythunkpos635;
  3720. }
  3721. yyprintf((stderr, " ok %s @ %s\n", "Str", G->buf+G->pos));
  3722. return 1;
  3723. l633:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3724. yyprintf((stderr, " fail %s @ %s\n", "Str", G->buf+G->pos));
  3725. return 0;
  3726. }
  3727. YY_RULE(int) yy_InStyleTags(GREG *G)
  3728. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3729. yyprintf((stderr, "%s\n", "InStyleTags")); if (!yy_StyleOpen(G)) { goto l641; }
  3730. l642:;
  3731. { int yypos643= G->pos, yythunkpos643= G->thunkpos;
  3732. { int yypos644= G->pos, yythunkpos644= G->thunkpos; if (!yy_StyleClose(G)) { goto l644; } goto l643;
  3733. l644:; G->pos= yypos644; G->thunkpos= yythunkpos644;
  3734. } if (!yymatchDot(G)) goto l643; goto l642;
  3735. l643:; G->pos= yypos643; G->thunkpos= yythunkpos643;
  3736. } if (!yy_StyleClose(G)) { goto l641; }
  3737. yyprintf((stderr, " ok %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3738. return 1;
  3739. l641:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3740. yyprintf((stderr, " fail %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3741. return 0;
  3742. }
  3743. YY_RULE(int) yy_StyleClose(GREG *G)
  3744. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3745. yyprintf((stderr, "%s\n", "StyleClose")); if (!yymatchChar(G, '<')) goto l645; if (!yy_Spnl(G)) { goto l645; } if (!yymatchChar(G, '/')) goto l645;
  3746. { int yypos646= G->pos, yythunkpos646= G->thunkpos; if (!yymatchString(G, "style")) goto l647; goto l646;
  3747. l647:; G->pos= yypos646; G->thunkpos= yythunkpos646; if (!yymatchString(G, "STYLE")) goto l645;
  3748. }
  3749. l646:; if (!yy_Spnl(G)) { goto l645; } if (!yymatchChar(G, '>')) goto l645;
  3750. yyprintf((stderr, " ok %s @ %s\n", "StyleClose", G->buf+G->pos));
  3751. return 1;
  3752. l645:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3753. yyprintf((stderr, " fail %s @ %s\n", "StyleClose", G->buf+G->pos));
  3754. return 0;
  3755. }
  3756. YY_RULE(int) yy_StyleOpen(GREG *G)
  3757. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3758. yyprintf((stderr, "%s\n", "StyleOpen")); if (!yymatchChar(G, '<')) goto l648; if (!yy_Spnl(G)) { goto l648; }
  3759. { int yypos649= G->pos, yythunkpos649= G->thunkpos; if (!yymatchString(G, "style")) goto l650; goto l649;
  3760. l650:; G->pos= yypos649; G->thunkpos= yythunkpos649; if (!yymatchString(G, "STYLE")) goto l648;
  3761. }
  3762. l649:; if (!yy_Spnl(G)) { goto l648; }
  3763. l651:;
  3764. { int yypos652= G->pos, yythunkpos652= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l652; } goto l651;
  3765. l652:; G->pos= yypos652; G->thunkpos= yythunkpos652;
  3766. } if (!yymatchChar(G, '>')) goto l648;
  3767. yyprintf((stderr, " ok %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3768. return 1;
  3769. l648:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3770. yyprintf((stderr, " fail %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3771. return 0;
  3772. }
  3773. YY_RULE(int) yy_HtmlBlockType(GREG *G)
  3774. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3775. yyprintf((stderr, "%s\n", "HtmlBlockType"));
  3776. { int yypos654= G->pos, yythunkpos654= G->thunkpos; if (!yymatchString(G, "address")) goto l655; goto l654;
  3777. l655:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "blockquote")) goto l656; goto l654;
  3778. l656:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "center")) goto l657; goto l654;
  3779. l657:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "dir")) goto l658; goto l654;
  3780. l658:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "div")) goto l659; goto l654;
  3781. l659:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "dl")) goto l660; goto l654;
  3782. l660:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "fieldset")) goto l661; goto l654;
  3783. l661:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "form")) goto l662; goto l654;
  3784. l662:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "h1")) goto l663; goto l654;
  3785. l663:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "h2")) goto l664; goto l654;
  3786. l664:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "h3")) goto l665; goto l654;
  3787. l665:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "h4")) goto l666; goto l654;
  3788. l666:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "h5")) goto l667; goto l654;
  3789. l667:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "h6")) goto l668; goto l654;
  3790. l668:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "hr")) goto l669; goto l654;
  3791. l669:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "isindex")) goto l670; goto l654;
  3792. l670:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "menu")) goto l671; goto l654;
  3793. l671:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "noframes")) goto l672; goto l654;
  3794. l672:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "noscript")) goto l673; goto l654;
  3795. l673:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "ol")) goto l674; goto l654;
  3796. l674:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchChar(G, 'p')) goto l675; goto l654;
  3797. l675:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "pre")) goto l676; goto l654;
  3798. l676:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "table")) goto l677; goto l654;
  3799. l677:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "ul")) goto l678; goto l654;
  3800. l678:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "dd")) goto l679; goto l654;
  3801. l679:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "dt")) goto l680; goto l654;
  3802. l680:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "frameset")) goto l681; goto l654;
  3803. l681:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "li")) goto l682; goto l654;
  3804. l682:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "tbody")) goto l683; goto l654;
  3805. l683:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "td")) goto l684; goto l654;
  3806. l684:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "tfoot")) goto l685; goto l654;
  3807. l685:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "th")) goto l686; goto l654;
  3808. l686:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "thead")) goto l687; goto l654;
  3809. l687:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "tr")) goto l688; goto l654;
  3810. l688:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "script")) goto l689; goto l654;
  3811. l689:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "ADDRESS")) goto l690; goto l654;
  3812. l690:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "BLOCKQUOTE")) goto l691; goto l654;
  3813. l691:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "CENTER")) goto l692; goto l654;
  3814. l692:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "DIR")) goto l693; goto l654;
  3815. l693:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "DIV")) goto l694; goto l654;
  3816. l694:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "DL")) goto l695; goto l654;
  3817. l695:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "FIELDSET")) goto l696; goto l654;
  3818. l696:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "FORM")) goto l697; goto l654;
  3819. l697:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "H1")) goto l698; goto l654;
  3820. l698:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "H2")) goto l699; goto l654;
  3821. l699:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "H3")) goto l700; goto l654;
  3822. l700:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "H4")) goto l701; goto l654;
  3823. l701:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "H5")) goto l702; goto l654;
  3824. l702:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "H6")) goto l703; goto l654;
  3825. l703:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "HR")) goto l704; goto l654;
  3826. l704:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "ISINDEX")) goto l705; goto l654;
  3827. l705:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "MENU")) goto l706; goto l654;
  3828. l706:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "NOFRAMES")) goto l707; goto l654;
  3829. l707:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "NOSCRIPT")) goto l708; goto l654;
  3830. l708:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "OL")) goto l709; goto l654;
  3831. l709:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchChar(G, 'P')) goto l710; goto l654;
  3832. l710:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "PRE")) goto l711; goto l654;
  3833. l711:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "TABLE")) goto l712; goto l654;
  3834. l712:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "UL")) goto l713; goto l654;
  3835. l713:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "DD")) goto l714; goto l654;
  3836. l714:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "DT")) goto l715; goto l654;
  3837. l715:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "FRAMESET")) goto l716; goto l654;
  3838. l716:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "LI")) goto l717; goto l654;
  3839. l717:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "TBODY")) goto l718; goto l654;
  3840. l718:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "TD")) goto l719; goto l654;
  3841. l719:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "TFOOT")) goto l720; goto l654;
  3842. l720:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "TH")) goto l721; goto l654;
  3843. l721:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "THEAD")) goto l722; goto l654;
  3844. l722:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "TR")) goto l723; goto l654;
  3845. l723:; G->pos= yypos654; G->thunkpos= yythunkpos654; if (!yymatchString(G, "SCRIPT")) goto l653;
  3846. }
  3847. l654:;
  3848. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3849. return 1;
  3850. l653:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3851. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3852. return 0;
  3853. }
  3854. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G)
  3855. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3856. yyprintf((stderr, "%s\n", "HtmlBlockSelfClosing")); if (!yymatchChar(G, '<')) goto l724; if (!yy_Spnl(G)) { goto l724; } if (!yy_HtmlBlockType(G)) { goto l724; } if (!yy_Spnl(G)) { goto l724; }
  3857. l725:;
  3858. { int yypos726= G->pos, yythunkpos726= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l726; } goto l725;
  3859. l726:; G->pos= yypos726; G->thunkpos= yythunkpos726;
  3860. } if (!yymatchChar(G, '/')) goto l724; if (!yy_Spnl(G)) { goto l724; } if (!yymatchChar(G, '>')) goto l724;
  3861. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3862. return 1;
  3863. l724:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3864. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3865. return 0;
  3866. }
  3867. YY_RULE(int) yy_HtmlComment(GREG *G)
  3868. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3869. yyprintf((stderr, "%s\n", "HtmlComment")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l727; if (!yy_LocMarker(G)) { goto l727; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "<!--")) goto l727;
  3870. l728:;
  3871. { int yypos729= G->pos, yythunkpos729= G->thunkpos;
  3872. { int yypos730= G->pos, yythunkpos730= G->thunkpos; if (!yymatchString(G, "-->")) goto l730; goto l729;
  3873. l730:; G->pos= yypos730; G->thunkpos= yythunkpos730;
  3874. } if (!yymatchDot(G)) goto l729; goto l728;
  3875. l729:; G->pos= yypos729; G->thunkpos= yythunkpos729;
  3876. } if (!yymatchString(G, "-->")) goto l727; yyText(G, G->begin, G->end); if (!(YY_END)) goto l727; yyDo(G, yy_1_HtmlComment, G->begin, G->end);
  3877. yyprintf((stderr, " ok %s @ %s\n", "HtmlComment", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3878. return 1;
  3879. l727:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3880. yyprintf((stderr, " fail %s @ %s\n", "HtmlComment", G->buf+G->pos));
  3881. return 0;
  3882. }
  3883. YY_RULE(int) yy_HtmlBlockInTags(GREG *G)
  3884. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3885. yyprintf((stderr, "%s\n", "HtmlBlockInTags"));
  3886. { int yypos732= G->pos, yythunkpos732= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l733; } goto l732;
  3887. l733:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockBlockquote(G)) { goto l734; } goto l732;
  3888. l734:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockCenter(G)) { goto l735; } goto l732;
  3889. l735:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockDir(G)) { goto l736; } goto l732;
  3890. l736:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockDiv(G)) { goto l737; } goto l732;
  3891. l737:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockDl(G)) { goto l738; } goto l732;
  3892. l738:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockFieldset(G)) { goto l739; } goto l732;
  3893. l739:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockForm(G)) { goto l740; } goto l732;
  3894. l740:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockH1(G)) { goto l741; } goto l732;
  3895. l741:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockH2(G)) { goto l742; } goto l732;
  3896. l742:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockH3(G)) { goto l743; } goto l732;
  3897. l743:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockH4(G)) { goto l744; } goto l732;
  3898. l744:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockH5(G)) { goto l745; } goto l732;
  3899. l745:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockH6(G)) { goto l746; } goto l732;
  3900. l746:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockMenu(G)) { goto l747; } goto l732;
  3901. l747:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockNoframes(G)) { goto l748; } goto l732;
  3902. l748:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockNoscript(G)) { goto l749; } goto l732;
  3903. l749:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockOl(G)) { goto l750; } goto l732;
  3904. l750:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockP(G)) { goto l751; } goto l732;
  3905. l751:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockPre(G)) { goto l752; } goto l732;
  3906. l752:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockTable(G)) { goto l753; } goto l732;
  3907. l753:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockUl(G)) { goto l754; } goto l732;
  3908. l754:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockDd(G)) { goto l755; } goto l732;
  3909. l755:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockDt(G)) { goto l756; } goto l732;
  3910. l756:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockFrameset(G)) { goto l757; } goto l732;
  3911. l757:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockLi(G)) { goto l758; } goto l732;
  3912. l758:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockTbody(G)) { goto l759; } goto l732;
  3913. l759:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockTd(G)) { goto l760; } goto l732;
  3914. l760:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockTfoot(G)) { goto l761; } goto l732;
  3915. l761:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockTh(G)) { goto l762; } goto l732;
  3916. l762:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockThead(G)) { goto l763; } goto l732;
  3917. l763:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockTr(G)) { goto l764; } goto l732;
  3918. l764:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockScript(G)) { goto l765; } goto l732;
  3919. l765:; G->pos= yypos732; G->thunkpos= yythunkpos732; if (!yy_HtmlBlockHead(G)) { goto l731; }
  3920. }
  3921. l732:;
  3922. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  3923. return 1;
  3924. l731:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3925. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  3926. return 0;
  3927. }
  3928. YY_RULE(int) yy_HtmlBlockHead(GREG *G)
  3929. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3930. yyprintf((stderr, "%s\n", "HtmlBlockHead")); if (!yy_HtmlBlockOpenHead(G)) { goto l766; }
  3931. l767:;
  3932. { int yypos768= G->pos, yythunkpos768= G->thunkpos;
  3933. { int yypos769= G->pos, yythunkpos769= G->thunkpos; if (!yy_HtmlBlockCloseHead(G)) { goto l769; } goto l768;
  3934. l769:; G->pos= yypos769; G->thunkpos= yythunkpos769;
  3935. } if (!yymatchDot(G)) goto l768; goto l767;
  3936. l768:; G->pos= yypos768; G->thunkpos= yythunkpos768;
  3937. } if (!yy_HtmlBlockCloseHead(G)) { goto l766; }
  3938. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  3939. return 1;
  3940. l766:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3941. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  3942. return 0;
  3943. }
  3944. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G)
  3945. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3946. yyprintf((stderr, "%s\n", "HtmlBlockCloseHead")); if (!yymatchChar(G, '<')) goto l770; if (!yy_Spnl(G)) { goto l770; } if (!yymatchChar(G, '/')) goto l770;
  3947. { int yypos771= G->pos, yythunkpos771= G->thunkpos; if (!yymatchString(G, "head")) goto l772; goto l771;
  3948. l772:; G->pos= yypos771; G->thunkpos= yythunkpos771; if (!yymatchString(G, "HEAD")) goto l770;
  3949. }
  3950. l771:; if (!yy_Spnl(G)) { goto l770; } if (!yymatchChar(G, '>')) goto l770;
  3951. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  3952. return 1;
  3953. l770:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3954. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  3955. return 0;
  3956. }
  3957. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G)
  3958. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3959. yyprintf((stderr, "%s\n", "HtmlBlockOpenHead")); if (!yymatchChar(G, '<')) goto l773; if (!yy_Spnl(G)) { goto l773; }
  3960. { int yypos774= G->pos, yythunkpos774= G->thunkpos; if (!yymatchString(G, "head")) goto l775; goto l774;
  3961. l775:; G->pos= yypos774; G->thunkpos= yythunkpos774; if (!yymatchString(G, "HEAD")) goto l773;
  3962. }
  3963. l774:; if (!yy_Spnl(G)) { goto l773; }
  3964. l776:;
  3965. { int yypos777= G->pos, yythunkpos777= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l777; } goto l776;
  3966. l777:; G->pos= yypos777; G->thunkpos= yythunkpos777;
  3967. } if (!yymatchChar(G, '>')) goto l773;
  3968. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  3969. return 1;
  3970. l773:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3971. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  3972. return 0;
  3973. }
  3974. YY_RULE(int) yy_HtmlBlockScript(GREG *G)
  3975. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3976. yyprintf((stderr, "%s\n", "HtmlBlockScript")); if (!yy_HtmlBlockOpenScript(G)) { goto l778; }
  3977. l779:;
  3978. { int yypos780= G->pos, yythunkpos780= G->thunkpos;
  3979. { int yypos781= G->pos, yythunkpos781= G->thunkpos; if (!yy_HtmlBlockCloseScript(G)) { goto l781; } goto l780;
  3980. l781:; G->pos= yypos781; G->thunkpos= yythunkpos781;
  3981. } if (!yymatchDot(G)) goto l780; goto l779;
  3982. l780:; G->pos= yypos780; G->thunkpos= yythunkpos780;
  3983. } if (!yy_HtmlBlockCloseScript(G)) { goto l778; }
  3984. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  3985. return 1;
  3986. l778:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3987. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  3988. return 0;
  3989. }
  3990. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G)
  3991. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3992. yyprintf((stderr, "%s\n", "HtmlBlockCloseScript")); if (!yymatchChar(G, '<')) goto l782; if (!yy_Spnl(G)) { goto l782; } if (!yymatchChar(G, '/')) goto l782;
  3993. { int yypos783= G->pos, yythunkpos783= G->thunkpos; if (!yymatchString(G, "script")) goto l784; goto l783;
  3994. l784:; G->pos= yypos783; G->thunkpos= yythunkpos783; if (!yymatchString(G, "SCRIPT")) goto l782;
  3995. }
  3996. l783:; if (!yy_Spnl(G)) { goto l782; } if (!yymatchChar(G, '>')) goto l782;
  3997. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  3998. return 1;
  3999. l782:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4000. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4001. return 0;
  4002. }
  4003. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G)
  4004. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4005. yyprintf((stderr, "%s\n", "HtmlBlockOpenScript")); if (!yymatchChar(G, '<')) goto l785; if (!yy_Spnl(G)) { goto l785; }
  4006. { int yypos786= G->pos, yythunkpos786= G->thunkpos; if (!yymatchString(G, "script")) goto l787; goto l786;
  4007. l787:; G->pos= yypos786; G->thunkpos= yythunkpos786; if (!yymatchString(G, "SCRIPT")) goto l785;
  4008. }
  4009. l786:; if (!yy_Spnl(G)) { goto l785; }
  4010. l788:;
  4011. { int yypos789= G->pos, yythunkpos789= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l789; } goto l788;
  4012. l789:; G->pos= yypos789; G->thunkpos= yythunkpos789;
  4013. } if (!yymatchChar(G, '>')) goto l785;
  4014. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4015. return 1;
  4016. l785:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4017. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4018. return 0;
  4019. }
  4020. YY_RULE(int) yy_HtmlBlockTr(GREG *G)
  4021. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4022. yyprintf((stderr, "%s\n", "HtmlBlockTr")); if (!yy_HtmlBlockOpenTr(G)) { goto l790; }
  4023. l791:;
  4024. { int yypos792= G->pos, yythunkpos792= G->thunkpos;
  4025. { int yypos793= G->pos, yythunkpos793= G->thunkpos; if (!yy_HtmlBlockTr(G)) { goto l794; } goto l793;
  4026. l794:; G->pos= yypos793; G->thunkpos= yythunkpos793;
  4027. { int yypos795= G->pos, yythunkpos795= G->thunkpos; if (!yy_HtmlBlockCloseTr(G)) { goto l795; } goto l792;
  4028. l795:; G->pos= yypos795; G->thunkpos= yythunkpos795;
  4029. } if (!yymatchDot(G)) goto l792;
  4030. }
  4031. l793:; goto l791;
  4032. l792:; G->pos= yypos792; G->thunkpos= yythunkpos792;
  4033. } if (!yy_HtmlBlockCloseTr(G)) { goto l790; }
  4034. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4035. return 1;
  4036. l790:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4037. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4038. return 0;
  4039. }
  4040. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G)
  4041. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4042. yyprintf((stderr, "%s\n", "HtmlBlockCloseTr")); if (!yymatchChar(G, '<')) goto l796; if (!yy_Spnl(G)) { goto l796; } if (!yymatchChar(G, '/')) goto l796;
  4043. { int yypos797= G->pos, yythunkpos797= G->thunkpos; if (!yymatchString(G, "tr")) goto l798; goto l797;
  4044. l798:; G->pos= yypos797; G->thunkpos= yythunkpos797; if (!yymatchString(G, "TR")) goto l796;
  4045. }
  4046. l797:; if (!yy_Spnl(G)) { goto l796; } if (!yymatchChar(G, '>')) goto l796;
  4047. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4048. return 1;
  4049. l796:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4050. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4051. return 0;
  4052. }
  4053. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G)
  4054. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4055. yyprintf((stderr, "%s\n", "HtmlBlockOpenTr")); if (!yymatchChar(G, '<')) goto l799; if (!yy_Spnl(G)) { goto l799; }
  4056. { int yypos800= G->pos, yythunkpos800= G->thunkpos; if (!yymatchString(G, "tr")) goto l801; goto l800;
  4057. l801:; G->pos= yypos800; G->thunkpos= yythunkpos800; if (!yymatchString(G, "TR")) goto l799;
  4058. }
  4059. l800:; if (!yy_Spnl(G)) { goto l799; }
  4060. l802:;
  4061. { int yypos803= G->pos, yythunkpos803= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l803; } goto l802;
  4062. l803:; G->pos= yypos803; G->thunkpos= yythunkpos803;
  4063. } if (!yymatchChar(G, '>')) goto l799;
  4064. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4065. return 1;
  4066. l799:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4067. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4068. return 0;
  4069. }
  4070. YY_RULE(int) yy_HtmlBlockThead(GREG *G)
  4071. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4072. yyprintf((stderr, "%s\n", "HtmlBlockThead")); if (!yy_HtmlBlockOpenThead(G)) { goto l804; }
  4073. l805:;
  4074. { int yypos806= G->pos, yythunkpos806= G->thunkpos;
  4075. { int yypos807= G->pos, yythunkpos807= G->thunkpos; if (!yy_HtmlBlockThead(G)) { goto l808; } goto l807;
  4076. l808:; G->pos= yypos807; G->thunkpos= yythunkpos807;
  4077. { int yypos809= G->pos, yythunkpos809= G->thunkpos; if (!yy_HtmlBlockCloseThead(G)) { goto l809; } goto l806;
  4078. l809:; G->pos= yypos809; G->thunkpos= yythunkpos809;
  4079. } if (!yymatchDot(G)) goto l806;
  4080. }
  4081. l807:; goto l805;
  4082. l806:; G->pos= yypos806; G->thunkpos= yythunkpos806;
  4083. } if (!yy_HtmlBlockCloseThead(G)) { goto l804; }
  4084. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4085. return 1;
  4086. l804:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4087. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4088. return 0;
  4089. }
  4090. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G)
  4091. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4092. yyprintf((stderr, "%s\n", "HtmlBlockCloseThead")); if (!yymatchChar(G, '<')) goto l810; if (!yy_Spnl(G)) { goto l810; } if (!yymatchChar(G, '/')) goto l810;
  4093. { int yypos811= G->pos, yythunkpos811= G->thunkpos; if (!yymatchString(G, "thead")) goto l812; goto l811;
  4094. l812:; G->pos= yypos811; G->thunkpos= yythunkpos811; if (!yymatchString(G, "THEAD")) goto l810;
  4095. }
  4096. l811:; if (!yy_Spnl(G)) { goto l810; } if (!yymatchChar(G, '>')) goto l810;
  4097. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4098. return 1;
  4099. l810:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4100. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4101. return 0;
  4102. }
  4103. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G)
  4104. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4105. yyprintf((stderr, "%s\n", "HtmlBlockOpenThead")); if (!yymatchChar(G, '<')) goto l813; if (!yy_Spnl(G)) { goto l813; }
  4106. { int yypos814= G->pos, yythunkpos814= G->thunkpos; if (!yymatchString(G, "thead")) goto l815; goto l814;
  4107. l815:; G->pos= yypos814; G->thunkpos= yythunkpos814; if (!yymatchString(G, "THEAD")) goto l813;
  4108. }
  4109. l814:; if (!yy_Spnl(G)) { goto l813; }
  4110. l816:;
  4111. { int yypos817= G->pos, yythunkpos817= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l817; } goto l816;
  4112. l817:; G->pos= yypos817; G->thunkpos= yythunkpos817;
  4113. } if (!yymatchChar(G, '>')) goto l813;
  4114. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4115. return 1;
  4116. l813:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4117. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4118. return 0;
  4119. }
  4120. YY_RULE(int) yy_HtmlBlockTh(GREG *G)
  4121. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4122. yyprintf((stderr, "%s\n", "HtmlBlockTh")); if (!yy_HtmlBlockOpenTh(G)) { goto l818; }
  4123. l819:;
  4124. { int yypos820= G->pos, yythunkpos820= G->thunkpos;
  4125. { int yypos821= G->pos, yythunkpos821= G->thunkpos; if (!yy_HtmlBlockTh(G)) { goto l822; } goto l821;
  4126. l822:; G->pos= yypos821; G->thunkpos= yythunkpos821;
  4127. { int yypos823= G->pos, yythunkpos823= G->thunkpos; if (!yy_HtmlBlockCloseTh(G)) { goto l823; } goto l820;
  4128. l823:; G->pos= yypos823; G->thunkpos= yythunkpos823;
  4129. } if (!yymatchDot(G)) goto l820;
  4130. }
  4131. l821:; goto l819;
  4132. l820:; G->pos= yypos820; G->thunkpos= yythunkpos820;
  4133. } if (!yy_HtmlBlockCloseTh(G)) { goto l818; }
  4134. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4135. return 1;
  4136. l818:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4137. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4138. return 0;
  4139. }
  4140. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G)
  4141. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4142. yyprintf((stderr, "%s\n", "HtmlBlockCloseTh")); if (!yymatchChar(G, '<')) goto l824; if (!yy_Spnl(G)) { goto l824; } if (!yymatchChar(G, '/')) goto l824;
  4143. { int yypos825= G->pos, yythunkpos825= G->thunkpos; if (!yymatchString(G, "th")) goto l826; goto l825;
  4144. l826:; G->pos= yypos825; G->thunkpos= yythunkpos825; if (!yymatchString(G, "TH")) goto l824;
  4145. }
  4146. l825:; if (!yy_Spnl(G)) { goto l824; } if (!yymatchChar(G, '>')) goto l824;
  4147. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4148. return 1;
  4149. l824:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4150. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4151. return 0;
  4152. }
  4153. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G)
  4154. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4155. yyprintf((stderr, "%s\n", "HtmlBlockOpenTh")); if (!yymatchChar(G, '<')) goto l827; if (!yy_Spnl(G)) { goto l827; }
  4156. { int yypos828= G->pos, yythunkpos828= G->thunkpos; if (!yymatchString(G, "th")) goto l829; goto l828;
  4157. l829:; G->pos= yypos828; G->thunkpos= yythunkpos828; if (!yymatchString(G, "TH")) goto l827;
  4158. }
  4159. l828:; if (!yy_Spnl(G)) { goto l827; }
  4160. l830:;
  4161. { int yypos831= G->pos, yythunkpos831= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l831; } goto l830;
  4162. l831:; G->pos= yypos831; G->thunkpos= yythunkpos831;
  4163. } if (!yymatchChar(G, '>')) goto l827;
  4164. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4165. return 1;
  4166. l827:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4167. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4168. return 0;
  4169. }
  4170. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G)
  4171. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4172. yyprintf((stderr, "%s\n", "HtmlBlockTfoot")); if (!yy_HtmlBlockOpenTfoot(G)) { goto l832; }
  4173. l833:;
  4174. { int yypos834= G->pos, yythunkpos834= G->thunkpos;
  4175. { int yypos835= G->pos, yythunkpos835= G->thunkpos; if (!yy_HtmlBlockTfoot(G)) { goto l836; } goto l835;
  4176. l836:; G->pos= yypos835; G->thunkpos= yythunkpos835;
  4177. { int yypos837= G->pos, yythunkpos837= G->thunkpos; if (!yy_HtmlBlockCloseTfoot(G)) { goto l837; } goto l834;
  4178. l837:; G->pos= yypos837; G->thunkpos= yythunkpos837;
  4179. } if (!yymatchDot(G)) goto l834;
  4180. }
  4181. l835:; goto l833;
  4182. l834:; G->pos= yypos834; G->thunkpos= yythunkpos834;
  4183. } if (!yy_HtmlBlockCloseTfoot(G)) { goto l832; }
  4184. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4185. return 1;
  4186. l832:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4187. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4188. return 0;
  4189. }
  4190. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G)
  4191. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4192. yyprintf((stderr, "%s\n", "HtmlBlockCloseTfoot")); if (!yymatchChar(G, '<')) goto l838; if (!yy_Spnl(G)) { goto l838; } if (!yymatchChar(G, '/')) goto l838;
  4193. { int yypos839= G->pos, yythunkpos839= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l840; goto l839;
  4194. l840:; G->pos= yypos839; G->thunkpos= yythunkpos839; if (!yymatchString(G, "TFOOT")) goto l838;
  4195. }
  4196. l839:; if (!yy_Spnl(G)) { goto l838; } if (!yymatchChar(G, '>')) goto l838;
  4197. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4198. return 1;
  4199. l838:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4200. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4201. return 0;
  4202. }
  4203. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G)
  4204. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4205. yyprintf((stderr, "%s\n", "HtmlBlockOpenTfoot")); if (!yymatchChar(G, '<')) goto l841; if (!yy_Spnl(G)) { goto l841; }
  4206. { int yypos842= G->pos, yythunkpos842= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l843; goto l842;
  4207. l843:; G->pos= yypos842; G->thunkpos= yythunkpos842; if (!yymatchString(G, "TFOOT")) goto l841;
  4208. }
  4209. l842:; if (!yy_Spnl(G)) { goto l841; }
  4210. l844:;
  4211. { int yypos845= G->pos, yythunkpos845= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l845; } goto l844;
  4212. l845:; G->pos= yypos845; G->thunkpos= yythunkpos845;
  4213. } if (!yymatchChar(G, '>')) goto l841;
  4214. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4215. return 1;
  4216. l841:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4217. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4218. return 0;
  4219. }
  4220. YY_RULE(int) yy_HtmlBlockTd(GREG *G)
  4221. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4222. yyprintf((stderr, "%s\n", "HtmlBlockTd")); if (!yy_HtmlBlockOpenTd(G)) { goto l846; }
  4223. l847:;
  4224. { int yypos848= G->pos, yythunkpos848= G->thunkpos;
  4225. { int yypos849= G->pos, yythunkpos849= G->thunkpos; if (!yy_HtmlBlockTd(G)) { goto l850; } goto l849;
  4226. l850:; G->pos= yypos849; G->thunkpos= yythunkpos849;
  4227. { int yypos851= G->pos, yythunkpos851= G->thunkpos; if (!yy_HtmlBlockCloseTd(G)) { goto l851; } goto l848;
  4228. l851:; G->pos= yypos851; G->thunkpos= yythunkpos851;
  4229. } if (!yymatchDot(G)) goto l848;
  4230. }
  4231. l849:; goto l847;
  4232. l848:; G->pos= yypos848; G->thunkpos= yythunkpos848;
  4233. } if (!yy_HtmlBlockCloseTd(G)) { goto l846; }
  4234. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4235. return 1;
  4236. l846:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4237. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4238. return 0;
  4239. }
  4240. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G)
  4241. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4242. yyprintf((stderr, "%s\n", "HtmlBlockCloseTd")); if (!yymatchChar(G, '<')) goto l852; if (!yy_Spnl(G)) { goto l852; } if (!yymatchChar(G, '/')) goto l852;
  4243. { int yypos853= G->pos, yythunkpos853= G->thunkpos; if (!yymatchString(G, "td")) goto l854; goto l853;
  4244. l854:; G->pos= yypos853; G->thunkpos= yythunkpos853; if (!yymatchString(G, "TD")) goto l852;
  4245. }
  4246. l853:; if (!yy_Spnl(G)) { goto l852; } if (!yymatchChar(G, '>')) goto l852;
  4247. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4248. return 1;
  4249. l852:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4250. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4251. return 0;
  4252. }
  4253. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G)
  4254. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4255. yyprintf((stderr, "%s\n", "HtmlBlockOpenTd")); if (!yymatchChar(G, '<')) goto l855; if (!yy_Spnl(G)) { goto l855; }
  4256. { int yypos856= G->pos, yythunkpos856= G->thunkpos; if (!yymatchString(G, "td")) goto l857; goto l856;
  4257. l857:; G->pos= yypos856; G->thunkpos= yythunkpos856; if (!yymatchString(G, "TD")) goto l855;
  4258. }
  4259. l856:; if (!yy_Spnl(G)) { goto l855; }
  4260. l858:;
  4261. { int yypos859= G->pos, yythunkpos859= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l859; } goto l858;
  4262. l859:; G->pos= yypos859; G->thunkpos= yythunkpos859;
  4263. } if (!yymatchChar(G, '>')) goto l855;
  4264. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4265. return 1;
  4266. l855:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4267. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4268. return 0;
  4269. }
  4270. YY_RULE(int) yy_HtmlBlockTbody(GREG *G)
  4271. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4272. yyprintf((stderr, "%s\n", "HtmlBlockTbody")); if (!yy_HtmlBlockOpenTbody(G)) { goto l860; }
  4273. l861:;
  4274. { int yypos862= G->pos, yythunkpos862= G->thunkpos;
  4275. { int yypos863= G->pos, yythunkpos863= G->thunkpos; if (!yy_HtmlBlockTbody(G)) { goto l864; } goto l863;
  4276. l864:; G->pos= yypos863; G->thunkpos= yythunkpos863;
  4277. { int yypos865= G->pos, yythunkpos865= G->thunkpos; if (!yy_HtmlBlockCloseTbody(G)) { goto l865; } goto l862;
  4278. l865:; G->pos= yypos865; G->thunkpos= yythunkpos865;
  4279. } if (!yymatchDot(G)) goto l862;
  4280. }
  4281. l863:; goto l861;
  4282. l862:; G->pos= yypos862; G->thunkpos= yythunkpos862;
  4283. } if (!yy_HtmlBlockCloseTbody(G)) { goto l860; }
  4284. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4285. return 1;
  4286. l860:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4287. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4288. return 0;
  4289. }
  4290. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G)
  4291. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4292. yyprintf((stderr, "%s\n", "HtmlBlockCloseTbody")); if (!yymatchChar(G, '<')) goto l866; if (!yy_Spnl(G)) { goto l866; } if (!yymatchChar(G, '/')) goto l866;
  4293. { int yypos867= G->pos, yythunkpos867= G->thunkpos; if (!yymatchString(G, "tbody")) goto l868; goto l867;
  4294. l868:; G->pos= yypos867; G->thunkpos= yythunkpos867; if (!yymatchString(G, "TBODY")) goto l866;
  4295. }
  4296. l867:; if (!yy_Spnl(G)) { goto l866; } if (!yymatchChar(G, '>')) goto l866;
  4297. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4298. return 1;
  4299. l866:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4300. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4301. return 0;
  4302. }
  4303. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G)
  4304. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4305. yyprintf((stderr, "%s\n", "HtmlBlockOpenTbody")); if (!yymatchChar(G, '<')) goto l869; if (!yy_Spnl(G)) { goto l869; }
  4306. { int yypos870= G->pos, yythunkpos870= G->thunkpos; if (!yymatchString(G, "tbody")) goto l871; goto l870;
  4307. l871:; G->pos= yypos870; G->thunkpos= yythunkpos870; if (!yymatchString(G, "TBODY")) goto l869;
  4308. }
  4309. l870:; if (!yy_Spnl(G)) { goto l869; }
  4310. l872:;
  4311. { int yypos873= G->pos, yythunkpos873= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l873; } goto l872;
  4312. l873:; G->pos= yypos873; G->thunkpos= yythunkpos873;
  4313. } if (!yymatchChar(G, '>')) goto l869;
  4314. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4315. return 1;
  4316. l869:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4317. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4318. return 0;
  4319. }
  4320. YY_RULE(int) yy_HtmlBlockLi(GREG *G)
  4321. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4322. yyprintf((stderr, "%s\n", "HtmlBlockLi")); if (!yy_HtmlBlockOpenLi(G)) { goto l874; }
  4323. l875:;
  4324. { int yypos876= G->pos, yythunkpos876= G->thunkpos;
  4325. { int yypos877= G->pos, yythunkpos877= G->thunkpos; if (!yy_HtmlBlockLi(G)) { goto l878; } goto l877;
  4326. l878:; G->pos= yypos877; G->thunkpos= yythunkpos877;
  4327. { int yypos879= G->pos, yythunkpos879= G->thunkpos; if (!yy_HtmlBlockCloseLi(G)) { goto l879; } goto l876;
  4328. l879:; G->pos= yypos879; G->thunkpos= yythunkpos879;
  4329. } if (!yymatchDot(G)) goto l876;
  4330. }
  4331. l877:; goto l875;
  4332. l876:; G->pos= yypos876; G->thunkpos= yythunkpos876;
  4333. } if (!yy_HtmlBlockCloseLi(G)) { goto l874; }
  4334. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4335. return 1;
  4336. l874:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4337. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4338. return 0;
  4339. }
  4340. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G)
  4341. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4342. yyprintf((stderr, "%s\n", "HtmlBlockCloseLi")); if (!yymatchChar(G, '<')) goto l880; if (!yy_Spnl(G)) { goto l880; } if (!yymatchChar(G, '/')) goto l880;
  4343. { int yypos881= G->pos, yythunkpos881= G->thunkpos; if (!yymatchString(G, "li")) goto l882; goto l881;
  4344. l882:; G->pos= yypos881; G->thunkpos= yythunkpos881; if (!yymatchString(G, "LI")) goto l880;
  4345. }
  4346. l881:; if (!yy_Spnl(G)) { goto l880; } if (!yymatchChar(G, '>')) goto l880;
  4347. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4348. return 1;
  4349. l880:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4350. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4351. return 0;
  4352. }
  4353. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G)
  4354. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4355. yyprintf((stderr, "%s\n", "HtmlBlockOpenLi")); if (!yymatchChar(G, '<')) goto l883; if (!yy_Spnl(G)) { goto l883; }
  4356. { int yypos884= G->pos, yythunkpos884= G->thunkpos; if (!yymatchString(G, "li")) goto l885; goto l884;
  4357. l885:; G->pos= yypos884; G->thunkpos= yythunkpos884; if (!yymatchString(G, "LI")) goto l883;
  4358. }
  4359. l884:; if (!yy_Spnl(G)) { goto l883; }
  4360. l886:;
  4361. { int yypos887= G->pos, yythunkpos887= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l887; } goto l886;
  4362. l887:; G->pos= yypos887; G->thunkpos= yythunkpos887;
  4363. } if (!yymatchChar(G, '>')) goto l883;
  4364. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4365. return 1;
  4366. l883:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4367. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4368. return 0;
  4369. }
  4370. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G)
  4371. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4372. yyprintf((stderr, "%s\n", "HtmlBlockFrameset")); if (!yy_HtmlBlockOpenFrameset(G)) { goto l888; }
  4373. l889:;
  4374. { int yypos890= G->pos, yythunkpos890= G->thunkpos;
  4375. { int yypos891= G->pos, yythunkpos891= G->thunkpos; if (!yy_HtmlBlockFrameset(G)) { goto l892; } goto l891;
  4376. l892:; G->pos= yypos891; G->thunkpos= yythunkpos891;
  4377. { int yypos893= G->pos, yythunkpos893= G->thunkpos; if (!yy_HtmlBlockCloseFrameset(G)) { goto l893; } goto l890;
  4378. l893:; G->pos= yypos893; G->thunkpos= yythunkpos893;
  4379. } if (!yymatchDot(G)) goto l890;
  4380. }
  4381. l891:; goto l889;
  4382. l890:; G->pos= yypos890; G->thunkpos= yythunkpos890;
  4383. } if (!yy_HtmlBlockCloseFrameset(G)) { goto l888; }
  4384. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4385. return 1;
  4386. l888:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4387. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4388. return 0;
  4389. }
  4390. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G)
  4391. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4392. yyprintf((stderr, "%s\n", "HtmlBlockCloseFrameset")); if (!yymatchChar(G, '<')) goto l894; if (!yy_Spnl(G)) { goto l894; } if (!yymatchChar(G, '/')) goto l894;
  4393. { int yypos895= G->pos, yythunkpos895= G->thunkpos; if (!yymatchString(G, "frameset")) goto l896; goto l895;
  4394. l896:; G->pos= yypos895; G->thunkpos= yythunkpos895; if (!yymatchString(G, "FRAMESET")) goto l894;
  4395. }
  4396. l895:; if (!yy_Spnl(G)) { goto l894; } if (!yymatchChar(G, '>')) goto l894;
  4397. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4398. return 1;
  4399. l894:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4400. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4401. return 0;
  4402. }
  4403. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G)
  4404. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4405. yyprintf((stderr, "%s\n", "HtmlBlockOpenFrameset")); if (!yymatchChar(G, '<')) goto l897; if (!yy_Spnl(G)) { goto l897; }
  4406. { int yypos898= G->pos, yythunkpos898= G->thunkpos; if (!yymatchString(G, "frameset")) goto l899; goto l898;
  4407. l899:; G->pos= yypos898; G->thunkpos= yythunkpos898; if (!yymatchString(G, "FRAMESET")) goto l897;
  4408. }
  4409. l898:; if (!yy_Spnl(G)) { goto l897; }
  4410. l900:;
  4411. { int yypos901= G->pos, yythunkpos901= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l901; } goto l900;
  4412. l901:; G->pos= yypos901; G->thunkpos= yythunkpos901;
  4413. } if (!yymatchChar(G, '>')) goto l897;
  4414. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4415. return 1;
  4416. l897:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4417. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4418. return 0;
  4419. }
  4420. YY_RULE(int) yy_HtmlBlockDt(GREG *G)
  4421. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4422. yyprintf((stderr, "%s\n", "HtmlBlockDt")); if (!yy_HtmlBlockOpenDt(G)) { goto l902; }
  4423. l903:;
  4424. { int yypos904= G->pos, yythunkpos904= G->thunkpos;
  4425. { int yypos905= G->pos, yythunkpos905= G->thunkpos; if (!yy_HtmlBlockDt(G)) { goto l906; } goto l905;
  4426. l906:; G->pos= yypos905; G->thunkpos= yythunkpos905;
  4427. { int yypos907= G->pos, yythunkpos907= G->thunkpos; if (!yy_HtmlBlockCloseDt(G)) { goto l907; } goto l904;
  4428. l907:; G->pos= yypos907; G->thunkpos= yythunkpos907;
  4429. } if (!yymatchDot(G)) goto l904;
  4430. }
  4431. l905:; goto l903;
  4432. l904:; G->pos= yypos904; G->thunkpos= yythunkpos904;
  4433. } if (!yy_HtmlBlockCloseDt(G)) { goto l902; }
  4434. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4435. return 1;
  4436. l902:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4437. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4438. return 0;
  4439. }
  4440. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G)
  4441. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4442. yyprintf((stderr, "%s\n", "HtmlBlockCloseDt")); if (!yymatchChar(G, '<')) goto l908; if (!yy_Spnl(G)) { goto l908; } if (!yymatchChar(G, '/')) goto l908;
  4443. { int yypos909= G->pos, yythunkpos909= G->thunkpos; if (!yymatchString(G, "dt")) goto l910; goto l909;
  4444. l910:; G->pos= yypos909; G->thunkpos= yythunkpos909; if (!yymatchString(G, "DT")) goto l908;
  4445. }
  4446. l909:; if (!yy_Spnl(G)) { goto l908; } if (!yymatchChar(G, '>')) goto l908;
  4447. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4448. return 1;
  4449. l908:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4450. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4451. return 0;
  4452. }
  4453. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G)
  4454. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4455. yyprintf((stderr, "%s\n", "HtmlBlockOpenDt")); if (!yymatchChar(G, '<')) goto l911; if (!yy_Spnl(G)) { goto l911; }
  4456. { int yypos912= G->pos, yythunkpos912= G->thunkpos; if (!yymatchString(G, "dt")) goto l913; goto l912;
  4457. l913:; G->pos= yypos912; G->thunkpos= yythunkpos912; if (!yymatchString(G, "DT")) goto l911;
  4458. }
  4459. l912:; if (!yy_Spnl(G)) { goto l911; }
  4460. l914:;
  4461. { int yypos915= G->pos, yythunkpos915= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l915; } goto l914;
  4462. l915:; G->pos= yypos915; G->thunkpos= yythunkpos915;
  4463. } if (!yymatchChar(G, '>')) goto l911;
  4464. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4465. return 1;
  4466. l911:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4467. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4468. return 0;
  4469. }
  4470. YY_RULE(int) yy_HtmlBlockDd(GREG *G)
  4471. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4472. yyprintf((stderr, "%s\n", "HtmlBlockDd")); if (!yy_HtmlBlockOpenDd(G)) { goto l916; }
  4473. l917:;
  4474. { int yypos918= G->pos, yythunkpos918= G->thunkpos;
  4475. { int yypos919= G->pos, yythunkpos919= G->thunkpos; if (!yy_HtmlBlockDd(G)) { goto l920; } goto l919;
  4476. l920:; G->pos= yypos919; G->thunkpos= yythunkpos919;
  4477. { int yypos921= G->pos, yythunkpos921= G->thunkpos; if (!yy_HtmlBlockCloseDd(G)) { goto l921; } goto l918;
  4478. l921:; G->pos= yypos921; G->thunkpos= yythunkpos921;
  4479. } if (!yymatchDot(G)) goto l918;
  4480. }
  4481. l919:; goto l917;
  4482. l918:; G->pos= yypos918; G->thunkpos= yythunkpos918;
  4483. } if (!yy_HtmlBlockCloseDd(G)) { goto l916; }
  4484. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4485. return 1;
  4486. l916:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4487. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4488. return 0;
  4489. }
  4490. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G)
  4491. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4492. yyprintf((stderr, "%s\n", "HtmlBlockCloseDd")); if (!yymatchChar(G, '<')) goto l922; if (!yy_Spnl(G)) { goto l922; } if (!yymatchChar(G, '/')) goto l922;
  4493. { int yypos923= G->pos, yythunkpos923= G->thunkpos; if (!yymatchString(G, "dd")) goto l924; goto l923;
  4494. l924:; G->pos= yypos923; G->thunkpos= yythunkpos923; if (!yymatchString(G, "DD")) goto l922;
  4495. }
  4496. l923:; if (!yy_Spnl(G)) { goto l922; } if (!yymatchChar(G, '>')) goto l922;
  4497. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4498. return 1;
  4499. l922:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4500. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4501. return 0;
  4502. }
  4503. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G)
  4504. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4505. yyprintf((stderr, "%s\n", "HtmlBlockOpenDd")); if (!yymatchChar(G, '<')) goto l925; if (!yy_Spnl(G)) { goto l925; }
  4506. { int yypos926= G->pos, yythunkpos926= G->thunkpos; if (!yymatchString(G, "dd")) goto l927; goto l926;
  4507. l927:; G->pos= yypos926; G->thunkpos= yythunkpos926; if (!yymatchString(G, "DD")) goto l925;
  4508. }
  4509. l926:; if (!yy_Spnl(G)) { goto l925; }
  4510. l928:;
  4511. { int yypos929= G->pos, yythunkpos929= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l929; } goto l928;
  4512. l929:; G->pos= yypos929; G->thunkpos= yythunkpos929;
  4513. } if (!yymatchChar(G, '>')) goto l925;
  4514. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4515. return 1;
  4516. l925:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4517. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4518. return 0;
  4519. }
  4520. YY_RULE(int) yy_HtmlBlockUl(GREG *G)
  4521. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4522. yyprintf((stderr, "%s\n", "HtmlBlockUl")); if (!yy_HtmlBlockOpenUl(G)) { goto l930; }
  4523. l931:;
  4524. { int yypos932= G->pos, yythunkpos932= G->thunkpos;
  4525. { int yypos933= G->pos, yythunkpos933= G->thunkpos; if (!yy_HtmlBlockUl(G)) { goto l934; } goto l933;
  4526. l934:; G->pos= yypos933; G->thunkpos= yythunkpos933;
  4527. { int yypos935= G->pos, yythunkpos935= G->thunkpos; if (!yy_HtmlBlockCloseUl(G)) { goto l935; } goto l932;
  4528. l935:; G->pos= yypos935; G->thunkpos= yythunkpos935;
  4529. } if (!yymatchDot(G)) goto l932;
  4530. }
  4531. l933:; goto l931;
  4532. l932:; G->pos= yypos932; G->thunkpos= yythunkpos932;
  4533. } if (!yy_HtmlBlockCloseUl(G)) { goto l930; }
  4534. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4535. return 1;
  4536. l930:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4537. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4538. return 0;
  4539. }
  4540. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G)
  4541. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4542. yyprintf((stderr, "%s\n", "HtmlBlockCloseUl")); if (!yymatchChar(G, '<')) goto l936; if (!yy_Spnl(G)) { goto l936; } if (!yymatchChar(G, '/')) goto l936;
  4543. { int yypos937= G->pos, yythunkpos937= G->thunkpos; if (!yymatchString(G, "ul")) goto l938; goto l937;
  4544. l938:; G->pos= yypos937; G->thunkpos= yythunkpos937; if (!yymatchString(G, "UL")) goto l936;
  4545. }
  4546. l937:; if (!yy_Spnl(G)) { goto l936; } if (!yymatchChar(G, '>')) goto l936;
  4547. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4548. return 1;
  4549. l936:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4550. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4551. return 0;
  4552. }
  4553. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G)
  4554. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4555. yyprintf((stderr, "%s\n", "HtmlBlockOpenUl")); if (!yymatchChar(G, '<')) goto l939; if (!yy_Spnl(G)) { goto l939; }
  4556. { int yypos940= G->pos, yythunkpos940= G->thunkpos; if (!yymatchString(G, "ul")) goto l941; goto l940;
  4557. l941:; G->pos= yypos940; G->thunkpos= yythunkpos940; if (!yymatchString(G, "UL")) goto l939;
  4558. }
  4559. l940:; if (!yy_Spnl(G)) { goto l939; }
  4560. l942:;
  4561. { int yypos943= G->pos, yythunkpos943= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l943; } goto l942;
  4562. l943:; G->pos= yypos943; G->thunkpos= yythunkpos943;
  4563. } if (!yymatchChar(G, '>')) goto l939;
  4564. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4565. return 1;
  4566. l939:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4567. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4568. return 0;
  4569. }
  4570. YY_RULE(int) yy_HtmlBlockTable(GREG *G)
  4571. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4572. yyprintf((stderr, "%s\n", "HtmlBlockTable")); if (!yy_HtmlBlockOpenTable(G)) { goto l944; }
  4573. l945:;
  4574. { int yypos946= G->pos, yythunkpos946= G->thunkpos;
  4575. { int yypos947= G->pos, yythunkpos947= G->thunkpos; if (!yy_HtmlBlockTable(G)) { goto l948; } goto l947;
  4576. l948:; G->pos= yypos947; G->thunkpos= yythunkpos947;
  4577. { int yypos949= G->pos, yythunkpos949= G->thunkpos; if (!yy_HtmlBlockCloseTable(G)) { goto l949; } goto l946;
  4578. l949:; G->pos= yypos949; G->thunkpos= yythunkpos949;
  4579. } if (!yymatchDot(G)) goto l946;
  4580. }
  4581. l947:; goto l945;
  4582. l946:; G->pos= yypos946; G->thunkpos= yythunkpos946;
  4583. } if (!yy_HtmlBlockCloseTable(G)) { goto l944; }
  4584. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4585. return 1;
  4586. l944:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4587. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4588. return 0;
  4589. }
  4590. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G)
  4591. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4592. yyprintf((stderr, "%s\n", "HtmlBlockCloseTable")); if (!yymatchChar(G, '<')) goto l950; if (!yy_Spnl(G)) { goto l950; } if (!yymatchChar(G, '/')) goto l950;
  4593. { int yypos951= G->pos, yythunkpos951= G->thunkpos; if (!yymatchString(G, "table")) goto l952; goto l951;
  4594. l952:; G->pos= yypos951; G->thunkpos= yythunkpos951; if (!yymatchString(G, "TABLE")) goto l950;
  4595. }
  4596. l951:; if (!yy_Spnl(G)) { goto l950; } if (!yymatchChar(G, '>')) goto l950;
  4597. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4598. return 1;
  4599. l950:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4600. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4601. return 0;
  4602. }
  4603. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G)
  4604. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4605. yyprintf((stderr, "%s\n", "HtmlBlockOpenTable")); if (!yymatchChar(G, '<')) goto l953; if (!yy_Spnl(G)) { goto l953; }
  4606. { int yypos954= G->pos, yythunkpos954= G->thunkpos; if (!yymatchString(G, "table")) goto l955; goto l954;
  4607. l955:; G->pos= yypos954; G->thunkpos= yythunkpos954; if (!yymatchString(G, "TABLE")) goto l953;
  4608. }
  4609. l954:; if (!yy_Spnl(G)) { goto l953; }
  4610. l956:;
  4611. { int yypos957= G->pos, yythunkpos957= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l957; } goto l956;
  4612. l957:; G->pos= yypos957; G->thunkpos= yythunkpos957;
  4613. } if (!yymatchChar(G, '>')) goto l953;
  4614. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4615. return 1;
  4616. l953:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4617. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4618. return 0;
  4619. }
  4620. YY_RULE(int) yy_HtmlBlockPre(GREG *G)
  4621. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4622. yyprintf((stderr, "%s\n", "HtmlBlockPre")); if (!yy_HtmlBlockOpenPre(G)) { goto l958; }
  4623. l959:;
  4624. { int yypos960= G->pos, yythunkpos960= G->thunkpos;
  4625. { int yypos961= G->pos, yythunkpos961= G->thunkpos; if (!yy_HtmlBlockPre(G)) { goto l962; } goto l961;
  4626. l962:; G->pos= yypos961; G->thunkpos= yythunkpos961;
  4627. { int yypos963= G->pos, yythunkpos963= G->thunkpos; if (!yy_HtmlBlockClosePre(G)) { goto l963; } goto l960;
  4628. l963:; G->pos= yypos963; G->thunkpos= yythunkpos963;
  4629. } if (!yymatchDot(G)) goto l960;
  4630. }
  4631. l961:; goto l959;
  4632. l960:; G->pos= yypos960; G->thunkpos= yythunkpos960;
  4633. } if (!yy_HtmlBlockClosePre(G)) { goto l958; }
  4634. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4635. return 1;
  4636. l958:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4637. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4638. return 0;
  4639. }
  4640. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G)
  4641. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4642. yyprintf((stderr, "%s\n", "HtmlBlockClosePre")); if (!yymatchChar(G, '<')) goto l964; if (!yy_Spnl(G)) { goto l964; } if (!yymatchChar(G, '/')) goto l964;
  4643. { int yypos965= G->pos, yythunkpos965= G->thunkpos; if (!yymatchString(G, "pre")) goto l966; goto l965;
  4644. l966:; G->pos= yypos965; G->thunkpos= yythunkpos965; if (!yymatchString(G, "PRE")) goto l964;
  4645. }
  4646. l965:; if (!yy_Spnl(G)) { goto l964; } if (!yymatchChar(G, '>')) goto l964;
  4647. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4648. return 1;
  4649. l964:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4650. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4651. return 0;
  4652. }
  4653. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G)
  4654. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4655. yyprintf((stderr, "%s\n", "HtmlBlockOpenPre")); if (!yymatchChar(G, '<')) goto l967; if (!yy_Spnl(G)) { goto l967; }
  4656. { int yypos968= G->pos, yythunkpos968= G->thunkpos; if (!yymatchString(G, "pre")) goto l969; goto l968;
  4657. l969:; G->pos= yypos968; G->thunkpos= yythunkpos968; if (!yymatchString(G, "PRE")) goto l967;
  4658. }
  4659. l968:; if (!yy_Spnl(G)) { goto l967; }
  4660. l970:;
  4661. { int yypos971= G->pos, yythunkpos971= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l971; } goto l970;
  4662. l971:; G->pos= yypos971; G->thunkpos= yythunkpos971;
  4663. } if (!yymatchChar(G, '>')) goto l967;
  4664. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4665. return 1;
  4666. l967:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4667. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4668. return 0;
  4669. }
  4670. YY_RULE(int) yy_HtmlBlockP(GREG *G)
  4671. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4672. yyprintf((stderr, "%s\n", "HtmlBlockP")); if (!yy_HtmlBlockOpenP(G)) { goto l972; }
  4673. l973:;
  4674. { int yypos974= G->pos, yythunkpos974= G->thunkpos;
  4675. { int yypos975= G->pos, yythunkpos975= G->thunkpos; if (!yy_HtmlBlockP(G)) { goto l976; } goto l975;
  4676. l976:; G->pos= yypos975; G->thunkpos= yythunkpos975;
  4677. { int yypos977= G->pos, yythunkpos977= G->thunkpos; if (!yy_HtmlBlockCloseP(G)) { goto l977; } goto l974;
  4678. l977:; G->pos= yypos977; G->thunkpos= yythunkpos977;
  4679. } if (!yymatchDot(G)) goto l974;
  4680. }
  4681. l975:; goto l973;
  4682. l974:; G->pos= yypos974; G->thunkpos= yythunkpos974;
  4683. } if (!yy_HtmlBlockCloseP(G)) { goto l972; }
  4684. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4685. return 1;
  4686. l972:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4687. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4688. return 0;
  4689. }
  4690. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G)
  4691. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4692. yyprintf((stderr, "%s\n", "HtmlBlockCloseP")); if (!yymatchChar(G, '<')) goto l978; if (!yy_Spnl(G)) { goto l978; } if (!yymatchChar(G, '/')) goto l978;
  4693. { int yypos979= G->pos, yythunkpos979= G->thunkpos; if (!yymatchChar(G, 'p')) goto l980; goto l979;
  4694. l980:; G->pos= yypos979; G->thunkpos= yythunkpos979; if (!yymatchChar(G, 'P')) goto l978;
  4695. }
  4696. l979:; if (!yy_Spnl(G)) { goto l978; } if (!yymatchChar(G, '>')) goto l978;
  4697. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4698. return 1;
  4699. l978:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4700. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4701. return 0;
  4702. }
  4703. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G)
  4704. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4705. yyprintf((stderr, "%s\n", "HtmlBlockOpenP")); if (!yymatchChar(G, '<')) goto l981; if (!yy_Spnl(G)) { goto l981; }
  4706. { int yypos982= G->pos, yythunkpos982= G->thunkpos; if (!yymatchChar(G, 'p')) goto l983; goto l982;
  4707. l983:; G->pos= yypos982; G->thunkpos= yythunkpos982; if (!yymatchChar(G, 'P')) goto l981;
  4708. }
  4709. l982:; if (!yy_Spnl(G)) { goto l981; }
  4710. l984:;
  4711. { int yypos985= G->pos, yythunkpos985= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l985; } goto l984;
  4712. l985:; G->pos= yypos985; G->thunkpos= yythunkpos985;
  4713. } if (!yymatchChar(G, '>')) goto l981;
  4714. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4715. return 1;
  4716. l981:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4717. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4718. return 0;
  4719. }
  4720. YY_RULE(int) yy_HtmlBlockOl(GREG *G)
  4721. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4722. yyprintf((stderr, "%s\n", "HtmlBlockOl")); if (!yy_HtmlBlockOpenOl(G)) { goto l986; }
  4723. l987:;
  4724. { int yypos988= G->pos, yythunkpos988= G->thunkpos;
  4725. { int yypos989= G->pos, yythunkpos989= G->thunkpos; if (!yy_HtmlBlockOl(G)) { goto l990; } goto l989;
  4726. l990:; G->pos= yypos989; G->thunkpos= yythunkpos989;
  4727. { int yypos991= G->pos, yythunkpos991= G->thunkpos; if (!yy_HtmlBlockCloseOl(G)) { goto l991; } goto l988;
  4728. l991:; G->pos= yypos991; G->thunkpos= yythunkpos991;
  4729. } if (!yymatchDot(G)) goto l988;
  4730. }
  4731. l989:; goto l987;
  4732. l988:; G->pos= yypos988; G->thunkpos= yythunkpos988;
  4733. } if (!yy_HtmlBlockCloseOl(G)) { goto l986; }
  4734. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4735. return 1;
  4736. l986:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4737. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4738. return 0;
  4739. }
  4740. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G)
  4741. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4742. yyprintf((stderr, "%s\n", "HtmlBlockCloseOl")); if (!yymatchChar(G, '<')) goto l992; if (!yy_Spnl(G)) { goto l992; } if (!yymatchChar(G, '/')) goto l992;
  4743. { int yypos993= G->pos, yythunkpos993= G->thunkpos; if (!yymatchString(G, "ol")) goto l994; goto l993;
  4744. l994:; G->pos= yypos993; G->thunkpos= yythunkpos993; if (!yymatchString(G, "OL")) goto l992;
  4745. }
  4746. l993:; if (!yy_Spnl(G)) { goto l992; } if (!yymatchChar(G, '>')) goto l992;
  4747. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4748. return 1;
  4749. l992:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4750. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4751. return 0;
  4752. }
  4753. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G)
  4754. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4755. yyprintf((stderr, "%s\n", "HtmlBlockOpenOl")); if (!yymatchChar(G, '<')) goto l995; if (!yy_Spnl(G)) { goto l995; }
  4756. { int yypos996= G->pos, yythunkpos996= G->thunkpos; if (!yymatchString(G, "ol")) goto l997; goto l996;
  4757. l997:; G->pos= yypos996; G->thunkpos= yythunkpos996; if (!yymatchString(G, "OL")) goto l995;
  4758. }
  4759. l996:; if (!yy_Spnl(G)) { goto l995; }
  4760. l998:;
  4761. { int yypos999= G->pos, yythunkpos999= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l999; } goto l998;
  4762. l999:; G->pos= yypos999; G->thunkpos= yythunkpos999;
  4763. } if (!yymatchChar(G, '>')) goto l995;
  4764. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4765. return 1;
  4766. l995:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4767. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4768. return 0;
  4769. }
  4770. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G)
  4771. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4772. yyprintf((stderr, "%s\n", "HtmlBlockNoscript")); if (!yy_HtmlBlockOpenNoscript(G)) { goto l1000; }
  4773. l1001:;
  4774. { int yypos1002= G->pos, yythunkpos1002= G->thunkpos;
  4775. { int yypos1003= G->pos, yythunkpos1003= G->thunkpos; if (!yy_HtmlBlockNoscript(G)) { goto l1004; } goto l1003;
  4776. l1004:; G->pos= yypos1003; G->thunkpos= yythunkpos1003;
  4777. { int yypos1005= G->pos, yythunkpos1005= G->thunkpos; if (!yy_HtmlBlockCloseNoscript(G)) { goto l1005; } goto l1002;
  4778. l1005:; G->pos= yypos1005; G->thunkpos= yythunkpos1005;
  4779. } if (!yymatchDot(G)) goto l1002;
  4780. }
  4781. l1003:; goto l1001;
  4782. l1002:; G->pos= yypos1002; G->thunkpos= yythunkpos1002;
  4783. } if (!yy_HtmlBlockCloseNoscript(G)) { goto l1000; }
  4784. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4785. return 1;
  4786. l1000:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4787. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4788. return 0;
  4789. }
  4790. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G)
  4791. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4792. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoscript")); if (!yymatchChar(G, '<')) goto l1006; if (!yy_Spnl(G)) { goto l1006; } if (!yymatchChar(G, '/')) goto l1006;
  4793. { int yypos1007= G->pos, yythunkpos1007= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1008; goto l1007;
  4794. l1008:; G->pos= yypos1007; G->thunkpos= yythunkpos1007; if (!yymatchString(G, "NOSCRIPT")) goto l1006;
  4795. }
  4796. l1007:; if (!yy_Spnl(G)) { goto l1006; } if (!yymatchChar(G, '>')) goto l1006;
  4797. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4798. return 1;
  4799. l1006:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4800. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4801. return 0;
  4802. }
  4803. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G)
  4804. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4805. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoscript")); if (!yymatchChar(G, '<')) goto l1009; if (!yy_Spnl(G)) { goto l1009; }
  4806. { int yypos1010= G->pos, yythunkpos1010= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1011; goto l1010;
  4807. l1011:; G->pos= yypos1010; G->thunkpos= yythunkpos1010; if (!yymatchString(G, "NOSCRIPT")) goto l1009;
  4808. }
  4809. l1010:; if (!yy_Spnl(G)) { goto l1009; }
  4810. l1012:;
  4811. { int yypos1013= G->pos, yythunkpos1013= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1013; } goto l1012;
  4812. l1013:; G->pos= yypos1013; G->thunkpos= yythunkpos1013;
  4813. } if (!yymatchChar(G, '>')) goto l1009;
  4814. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4815. return 1;
  4816. l1009:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4817. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4818. return 0;
  4819. }
  4820. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G)
  4821. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4822. yyprintf((stderr, "%s\n", "HtmlBlockNoframes")); if (!yy_HtmlBlockOpenNoframes(G)) { goto l1014; }
  4823. l1015:;
  4824. { int yypos1016= G->pos, yythunkpos1016= G->thunkpos;
  4825. { int yypos1017= G->pos, yythunkpos1017= G->thunkpos; if (!yy_HtmlBlockNoframes(G)) { goto l1018; } goto l1017;
  4826. l1018:; G->pos= yypos1017; G->thunkpos= yythunkpos1017;
  4827. { int yypos1019= G->pos, yythunkpos1019= G->thunkpos; if (!yy_HtmlBlockCloseNoframes(G)) { goto l1019; } goto l1016;
  4828. l1019:; G->pos= yypos1019; G->thunkpos= yythunkpos1019;
  4829. } if (!yymatchDot(G)) goto l1016;
  4830. }
  4831. l1017:; goto l1015;
  4832. l1016:; G->pos= yypos1016; G->thunkpos= yythunkpos1016;
  4833. } if (!yy_HtmlBlockCloseNoframes(G)) { goto l1014; }
  4834. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4835. return 1;
  4836. l1014:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4837. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4838. return 0;
  4839. }
  4840. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G)
  4841. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4842. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoframes")); if (!yymatchChar(G, '<')) goto l1020; if (!yy_Spnl(G)) { goto l1020; } if (!yymatchChar(G, '/')) goto l1020;
  4843. { int yypos1021= G->pos, yythunkpos1021= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1022; goto l1021;
  4844. l1022:; G->pos= yypos1021; G->thunkpos= yythunkpos1021; if (!yymatchString(G, "NOFRAMES")) goto l1020;
  4845. }
  4846. l1021:; if (!yy_Spnl(G)) { goto l1020; } if (!yymatchChar(G, '>')) goto l1020;
  4847. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4848. return 1;
  4849. l1020:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4850. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4851. return 0;
  4852. }
  4853. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G)
  4854. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4855. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoframes")); if (!yymatchChar(G, '<')) goto l1023; if (!yy_Spnl(G)) { goto l1023; }
  4856. { int yypos1024= G->pos, yythunkpos1024= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1025; goto l1024;
  4857. l1025:; G->pos= yypos1024; G->thunkpos= yythunkpos1024; if (!yymatchString(G, "NOFRAMES")) goto l1023;
  4858. }
  4859. l1024:; if (!yy_Spnl(G)) { goto l1023; }
  4860. l1026:;
  4861. { int yypos1027= G->pos, yythunkpos1027= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1027; } goto l1026;
  4862. l1027:; G->pos= yypos1027; G->thunkpos= yythunkpos1027;
  4863. } if (!yymatchChar(G, '>')) goto l1023;
  4864. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4865. return 1;
  4866. l1023:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4867. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4868. return 0;
  4869. }
  4870. YY_RULE(int) yy_HtmlBlockMenu(GREG *G)
  4871. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4872. yyprintf((stderr, "%s\n", "HtmlBlockMenu")); if (!yy_HtmlBlockOpenMenu(G)) { goto l1028; }
  4873. l1029:;
  4874. { int yypos1030= G->pos, yythunkpos1030= G->thunkpos;
  4875. { int yypos1031= G->pos, yythunkpos1031= G->thunkpos; if (!yy_HtmlBlockMenu(G)) { goto l1032; } goto l1031;
  4876. l1032:; G->pos= yypos1031; G->thunkpos= yythunkpos1031;
  4877. { int yypos1033= G->pos, yythunkpos1033= G->thunkpos; if (!yy_HtmlBlockCloseMenu(G)) { goto l1033; } goto l1030;
  4878. l1033:; G->pos= yypos1033; G->thunkpos= yythunkpos1033;
  4879. } if (!yymatchDot(G)) goto l1030;
  4880. }
  4881. l1031:; goto l1029;
  4882. l1030:; G->pos= yypos1030; G->thunkpos= yythunkpos1030;
  4883. } if (!yy_HtmlBlockCloseMenu(G)) { goto l1028; }
  4884. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4885. return 1;
  4886. l1028:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4887. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4888. return 0;
  4889. }
  4890. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G)
  4891. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4892. yyprintf((stderr, "%s\n", "HtmlBlockCloseMenu")); if (!yymatchChar(G, '<')) goto l1034; if (!yy_Spnl(G)) { goto l1034; } if (!yymatchChar(G, '/')) goto l1034;
  4893. { int yypos1035= G->pos, yythunkpos1035= G->thunkpos; if (!yymatchString(G, "menu")) goto l1036; goto l1035;
  4894. l1036:; G->pos= yypos1035; G->thunkpos= yythunkpos1035; if (!yymatchString(G, "MENU")) goto l1034;
  4895. }
  4896. l1035:; if (!yy_Spnl(G)) { goto l1034; } if (!yymatchChar(G, '>')) goto l1034;
  4897. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  4898. return 1;
  4899. l1034:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4900. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  4901. return 0;
  4902. }
  4903. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G)
  4904. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4905. yyprintf((stderr, "%s\n", "HtmlBlockOpenMenu")); if (!yymatchChar(G, '<')) goto l1037; if (!yy_Spnl(G)) { goto l1037; }
  4906. { int yypos1038= G->pos, yythunkpos1038= G->thunkpos; if (!yymatchString(G, "menu")) goto l1039; goto l1038;
  4907. l1039:; G->pos= yypos1038; G->thunkpos= yythunkpos1038; if (!yymatchString(G, "MENU")) goto l1037;
  4908. }
  4909. l1038:; if (!yy_Spnl(G)) { goto l1037; }
  4910. l1040:;
  4911. { int yypos1041= G->pos, yythunkpos1041= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1041; } goto l1040;
  4912. l1041:; G->pos= yypos1041; G->thunkpos= yythunkpos1041;
  4913. } if (!yymatchChar(G, '>')) goto l1037;
  4914. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  4915. return 1;
  4916. l1037:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4917. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  4918. return 0;
  4919. }
  4920. YY_RULE(int) yy_HtmlBlockH6(GREG *G)
  4921. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  4922. yyprintf((stderr, "%s\n", "HtmlBlockH6")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1042; if (!yy_LocMarker(G)) { goto l1042; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH6(G)) { goto l1042; }
  4923. l1043:;
  4924. { int yypos1044= G->pos, yythunkpos1044= G->thunkpos;
  4925. { int yypos1045= G->pos, yythunkpos1045= G->thunkpos; if (!yy_HtmlBlockH6(G)) { goto l1046; } goto l1045;
  4926. l1046:; G->pos= yypos1045; G->thunkpos= yythunkpos1045;
  4927. { int yypos1047= G->pos, yythunkpos1047= G->thunkpos; if (!yy_HtmlBlockCloseH6(G)) { goto l1047; } goto l1044;
  4928. l1047:; G->pos= yypos1047; G->thunkpos= yythunkpos1047;
  4929. } if (!yymatchDot(G)) goto l1044;
  4930. }
  4931. l1045:; goto l1043;
  4932. l1044:; G->pos= yypos1044; G->thunkpos= yythunkpos1044;
  4933. } if (!yy_HtmlBlockCloseH6(G)) { goto l1042; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1042; yyDo(G, yy_1_HtmlBlockH6, G->begin, G->end);
  4934. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH6", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  4935. return 1;
  4936. l1042:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4937. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH6", G->buf+G->pos));
  4938. return 0;
  4939. }
  4940. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G)
  4941. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4942. yyprintf((stderr, "%s\n", "HtmlBlockCloseH6")); if (!yymatchChar(G, '<')) goto l1048; if (!yy_Spnl(G)) { goto l1048; } if (!yymatchChar(G, '/')) goto l1048;
  4943. { int yypos1049= G->pos, yythunkpos1049= G->thunkpos; if (!yymatchString(G, "h6")) goto l1050; goto l1049;
  4944. l1050:; G->pos= yypos1049; G->thunkpos= yythunkpos1049; if (!yymatchString(G, "H6")) goto l1048;
  4945. }
  4946. l1049:; if (!yy_Spnl(G)) { goto l1048; } if (!yymatchChar(G, '>')) goto l1048;
  4947. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  4948. return 1;
  4949. l1048:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4950. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  4951. return 0;
  4952. }
  4953. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G)
  4954. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4955. yyprintf((stderr, "%s\n", "HtmlBlockOpenH6")); if (!yymatchChar(G, '<')) goto l1051; if (!yy_Spnl(G)) { goto l1051; }
  4956. { int yypos1052= G->pos, yythunkpos1052= G->thunkpos; if (!yymatchString(G, "h6")) goto l1053; goto l1052;
  4957. l1053:; G->pos= yypos1052; G->thunkpos= yythunkpos1052; if (!yymatchString(G, "H6")) goto l1051;
  4958. }
  4959. l1052:; if (!yy_Spnl(G)) { goto l1051; }
  4960. l1054:;
  4961. { int yypos1055= G->pos, yythunkpos1055= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1055; } goto l1054;
  4962. l1055:; G->pos= yypos1055; G->thunkpos= yythunkpos1055;
  4963. } if (!yymatchChar(G, '>')) goto l1051;
  4964. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  4965. return 1;
  4966. l1051:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4967. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  4968. return 0;
  4969. }
  4970. YY_RULE(int) yy_HtmlBlockH5(GREG *G)
  4971. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  4972. yyprintf((stderr, "%s\n", "HtmlBlockH5")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1056; if (!yy_LocMarker(G)) { goto l1056; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH5(G)) { goto l1056; }
  4973. l1057:;
  4974. { int yypos1058= G->pos, yythunkpos1058= G->thunkpos;
  4975. { int yypos1059= G->pos, yythunkpos1059= G->thunkpos; if (!yy_HtmlBlockH5(G)) { goto l1060; } goto l1059;
  4976. l1060:; G->pos= yypos1059; G->thunkpos= yythunkpos1059;
  4977. { int yypos1061= G->pos, yythunkpos1061= G->thunkpos; if (!yy_HtmlBlockCloseH5(G)) { goto l1061; } goto l1058;
  4978. l1061:; G->pos= yypos1061; G->thunkpos= yythunkpos1061;
  4979. } if (!yymatchDot(G)) goto l1058;
  4980. }
  4981. l1059:; goto l1057;
  4982. l1058:; G->pos= yypos1058; G->thunkpos= yythunkpos1058;
  4983. } if (!yy_HtmlBlockCloseH5(G)) { goto l1056; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1056; yyDo(G, yy_1_HtmlBlockH5, G->begin, G->end);
  4984. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH5", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  4985. return 1;
  4986. l1056:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4987. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH5", G->buf+G->pos));
  4988. return 0;
  4989. }
  4990. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G)
  4991. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4992. yyprintf((stderr, "%s\n", "HtmlBlockCloseH5")); if (!yymatchChar(G, '<')) goto l1062; if (!yy_Spnl(G)) { goto l1062; } if (!yymatchChar(G, '/')) goto l1062;
  4993. { int yypos1063= G->pos, yythunkpos1063= G->thunkpos; if (!yymatchString(G, "h5")) goto l1064; goto l1063;
  4994. l1064:; G->pos= yypos1063; G->thunkpos= yythunkpos1063; if (!yymatchString(G, "H5")) goto l1062;
  4995. }
  4996. l1063:; if (!yy_Spnl(G)) { goto l1062; } if (!yymatchChar(G, '>')) goto l1062;
  4997. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  4998. return 1;
  4999. l1062:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5000. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5001. return 0;
  5002. }
  5003. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G)
  5004. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5005. yyprintf((stderr, "%s\n", "HtmlBlockOpenH5")); if (!yymatchChar(G, '<')) goto l1065; if (!yy_Spnl(G)) { goto l1065; }
  5006. { int yypos1066= G->pos, yythunkpos1066= G->thunkpos; if (!yymatchString(G, "h5")) goto l1067; goto l1066;
  5007. l1067:; G->pos= yypos1066; G->thunkpos= yythunkpos1066; if (!yymatchString(G, "H5")) goto l1065;
  5008. }
  5009. l1066:; if (!yy_Spnl(G)) { goto l1065; }
  5010. l1068:;
  5011. { int yypos1069= G->pos, yythunkpos1069= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1069; } goto l1068;
  5012. l1069:; G->pos= yypos1069; G->thunkpos= yythunkpos1069;
  5013. } if (!yymatchChar(G, '>')) goto l1065;
  5014. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5015. return 1;
  5016. l1065:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5017. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5018. return 0;
  5019. }
  5020. YY_RULE(int) yy_HtmlBlockH4(GREG *G)
  5021. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5022. yyprintf((stderr, "%s\n", "HtmlBlockH4")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1070; if (!yy_LocMarker(G)) { goto l1070; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH4(G)) { goto l1070; }
  5023. l1071:;
  5024. { int yypos1072= G->pos, yythunkpos1072= G->thunkpos;
  5025. { int yypos1073= G->pos, yythunkpos1073= G->thunkpos; if (!yy_HtmlBlockH4(G)) { goto l1074; } goto l1073;
  5026. l1074:; G->pos= yypos1073; G->thunkpos= yythunkpos1073;
  5027. { int yypos1075= G->pos, yythunkpos1075= G->thunkpos; if (!yy_HtmlBlockCloseH4(G)) { goto l1075; } goto l1072;
  5028. l1075:; G->pos= yypos1075; G->thunkpos= yythunkpos1075;
  5029. } if (!yymatchDot(G)) goto l1072;
  5030. }
  5031. l1073:; goto l1071;
  5032. l1072:; G->pos= yypos1072; G->thunkpos= yythunkpos1072;
  5033. } if (!yy_HtmlBlockCloseH4(G)) { goto l1070; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1070; yyDo(G, yy_1_HtmlBlockH4, G->begin, G->end);
  5034. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH4", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5035. return 1;
  5036. l1070:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5037. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH4", G->buf+G->pos));
  5038. return 0;
  5039. }
  5040. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G)
  5041. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5042. yyprintf((stderr, "%s\n", "HtmlBlockCloseH4")); if (!yymatchChar(G, '<')) goto l1076; if (!yy_Spnl(G)) { goto l1076; } if (!yymatchChar(G, '/')) goto l1076;
  5043. { int yypos1077= G->pos, yythunkpos1077= G->thunkpos; if (!yymatchString(G, "h4")) goto l1078; goto l1077;
  5044. l1078:; G->pos= yypos1077; G->thunkpos= yythunkpos1077; if (!yymatchString(G, "H4")) goto l1076;
  5045. }
  5046. l1077:; if (!yy_Spnl(G)) { goto l1076; } if (!yymatchChar(G, '>')) goto l1076;
  5047. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5048. return 1;
  5049. l1076:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5050. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5051. return 0;
  5052. }
  5053. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G)
  5054. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5055. yyprintf((stderr, "%s\n", "HtmlBlockOpenH4")); if (!yymatchChar(G, '<')) goto l1079; if (!yy_Spnl(G)) { goto l1079; }
  5056. { int yypos1080= G->pos, yythunkpos1080= G->thunkpos; if (!yymatchString(G, "h4")) goto l1081; goto l1080;
  5057. l1081:; G->pos= yypos1080; G->thunkpos= yythunkpos1080; if (!yymatchString(G, "H4")) goto l1079;
  5058. }
  5059. l1080:; if (!yy_Spnl(G)) { goto l1079; }
  5060. l1082:;
  5061. { int yypos1083= G->pos, yythunkpos1083= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1083; } goto l1082;
  5062. l1083:; G->pos= yypos1083; G->thunkpos= yythunkpos1083;
  5063. } if (!yymatchChar(G, '>')) goto l1079;
  5064. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5065. return 1;
  5066. l1079:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5067. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5068. return 0;
  5069. }
  5070. YY_RULE(int) yy_HtmlBlockH3(GREG *G)
  5071. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5072. yyprintf((stderr, "%s\n", "HtmlBlockH3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1084; if (!yy_LocMarker(G)) { goto l1084; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH3(G)) { goto l1084; }
  5073. l1085:;
  5074. { int yypos1086= G->pos, yythunkpos1086= G->thunkpos;
  5075. { int yypos1087= G->pos, yythunkpos1087= G->thunkpos; if (!yy_HtmlBlockH3(G)) { goto l1088; } goto l1087;
  5076. l1088:; G->pos= yypos1087; G->thunkpos= yythunkpos1087;
  5077. { int yypos1089= G->pos, yythunkpos1089= G->thunkpos; if (!yy_HtmlBlockCloseH3(G)) { goto l1089; } goto l1086;
  5078. l1089:; G->pos= yypos1089; G->thunkpos= yythunkpos1089;
  5079. } if (!yymatchDot(G)) goto l1086;
  5080. }
  5081. l1087:; goto l1085;
  5082. l1086:; G->pos= yypos1086; G->thunkpos= yythunkpos1086;
  5083. } if (!yy_HtmlBlockCloseH3(G)) { goto l1084; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1084; yyDo(G, yy_1_HtmlBlockH3, G->begin, G->end);
  5084. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH3", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5085. return 1;
  5086. l1084:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5087. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH3", G->buf+G->pos));
  5088. return 0;
  5089. }
  5090. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G)
  5091. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5092. yyprintf((stderr, "%s\n", "HtmlBlockCloseH3")); if (!yymatchChar(G, '<')) goto l1090; if (!yy_Spnl(G)) { goto l1090; } if (!yymatchChar(G, '/')) goto l1090;
  5093. { int yypos1091= G->pos, yythunkpos1091= G->thunkpos; if (!yymatchString(G, "h3")) goto l1092; goto l1091;
  5094. l1092:; G->pos= yypos1091; G->thunkpos= yythunkpos1091; if (!yymatchString(G, "H3")) goto l1090;
  5095. }
  5096. l1091:; if (!yy_Spnl(G)) { goto l1090; } if (!yymatchChar(G, '>')) goto l1090;
  5097. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5098. return 1;
  5099. l1090:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5100. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5101. return 0;
  5102. }
  5103. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G)
  5104. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5105. yyprintf((stderr, "%s\n", "HtmlBlockOpenH3")); if (!yymatchChar(G, '<')) goto l1093; if (!yy_Spnl(G)) { goto l1093; }
  5106. { int yypos1094= G->pos, yythunkpos1094= G->thunkpos; if (!yymatchString(G, "h3")) goto l1095; goto l1094;
  5107. l1095:; G->pos= yypos1094; G->thunkpos= yythunkpos1094; if (!yymatchString(G, "H3")) goto l1093;
  5108. }
  5109. l1094:; if (!yy_Spnl(G)) { goto l1093; }
  5110. l1096:;
  5111. { int yypos1097= G->pos, yythunkpos1097= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1097; } goto l1096;
  5112. l1097:; G->pos= yypos1097; G->thunkpos= yythunkpos1097;
  5113. } if (!yymatchChar(G, '>')) goto l1093;
  5114. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5115. return 1;
  5116. l1093:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5117. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5118. return 0;
  5119. }
  5120. YY_RULE(int) yy_HtmlBlockH2(GREG *G)
  5121. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5122. yyprintf((stderr, "%s\n", "HtmlBlockH2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1098; if (!yy_LocMarker(G)) { goto l1098; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH2(G)) { goto l1098; }
  5123. l1099:;
  5124. { int yypos1100= G->pos, yythunkpos1100= G->thunkpos;
  5125. { int yypos1101= G->pos, yythunkpos1101= G->thunkpos; if (!yy_HtmlBlockH2(G)) { goto l1102; } goto l1101;
  5126. l1102:; G->pos= yypos1101; G->thunkpos= yythunkpos1101;
  5127. { int yypos1103= G->pos, yythunkpos1103= G->thunkpos; if (!yy_HtmlBlockCloseH2(G)) { goto l1103; } goto l1100;
  5128. l1103:; G->pos= yypos1103; G->thunkpos= yythunkpos1103;
  5129. } if (!yymatchDot(G)) goto l1100;
  5130. }
  5131. l1101:; goto l1099;
  5132. l1100:; G->pos= yypos1100; G->thunkpos= yythunkpos1100;
  5133. } if (!yy_HtmlBlockCloseH2(G)) { goto l1098; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1098; yyDo(G, yy_1_HtmlBlockH2, G->begin, G->end);
  5134. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5135. return 1;
  5136. l1098:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5137. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH2", G->buf+G->pos));
  5138. return 0;
  5139. }
  5140. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G)
  5141. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5142. yyprintf((stderr, "%s\n", "HtmlBlockCloseH2")); if (!yymatchChar(G, '<')) goto l1104; if (!yy_Spnl(G)) { goto l1104; } if (!yymatchChar(G, '/')) goto l1104;
  5143. { int yypos1105= G->pos, yythunkpos1105= G->thunkpos; if (!yymatchString(G, "h2")) goto l1106; goto l1105;
  5144. l1106:; G->pos= yypos1105; G->thunkpos= yythunkpos1105; if (!yymatchString(G, "H2")) goto l1104;
  5145. }
  5146. l1105:; if (!yy_Spnl(G)) { goto l1104; } if (!yymatchChar(G, '>')) goto l1104;
  5147. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5148. return 1;
  5149. l1104:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5150. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5151. return 0;
  5152. }
  5153. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G)
  5154. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5155. yyprintf((stderr, "%s\n", "HtmlBlockOpenH2")); if (!yymatchChar(G, '<')) goto l1107; if (!yy_Spnl(G)) { goto l1107; }
  5156. { int yypos1108= G->pos, yythunkpos1108= G->thunkpos; if (!yymatchString(G, "h2")) goto l1109; goto l1108;
  5157. l1109:; G->pos= yypos1108; G->thunkpos= yythunkpos1108; if (!yymatchString(G, "H2")) goto l1107;
  5158. }
  5159. l1108:; if (!yy_Spnl(G)) { goto l1107; }
  5160. l1110:;
  5161. { int yypos1111= G->pos, yythunkpos1111= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1111; } goto l1110;
  5162. l1111:; G->pos= yypos1111; G->thunkpos= yythunkpos1111;
  5163. } if (!yymatchChar(G, '>')) goto l1107;
  5164. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5165. return 1;
  5166. l1107:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5167. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5168. return 0;
  5169. }
  5170. YY_RULE(int) yy_HtmlBlockH1(GREG *G)
  5171. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5172. yyprintf((stderr, "%s\n", "HtmlBlockH1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1112; if (!yy_LocMarker(G)) { goto l1112; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH1(G)) { goto l1112; }
  5173. l1113:;
  5174. { int yypos1114= G->pos, yythunkpos1114= G->thunkpos;
  5175. { int yypos1115= G->pos, yythunkpos1115= G->thunkpos; if (!yy_HtmlBlockH1(G)) { goto l1116; } goto l1115;
  5176. l1116:; G->pos= yypos1115; G->thunkpos= yythunkpos1115;
  5177. { int yypos1117= G->pos, yythunkpos1117= G->thunkpos; if (!yy_HtmlBlockCloseH1(G)) { goto l1117; } goto l1114;
  5178. l1117:; G->pos= yypos1117; G->thunkpos= yythunkpos1117;
  5179. } if (!yymatchDot(G)) goto l1114;
  5180. }
  5181. l1115:; goto l1113;
  5182. l1114:; G->pos= yypos1114; G->thunkpos= yythunkpos1114;
  5183. } if (!yy_HtmlBlockCloseH1(G)) { goto l1112; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1112; yyDo(G, yy_1_HtmlBlockH1, G->begin, G->end);
  5184. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5185. return 1;
  5186. l1112:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5187. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH1", G->buf+G->pos));
  5188. return 0;
  5189. }
  5190. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G)
  5191. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5192. yyprintf((stderr, "%s\n", "HtmlBlockCloseH1")); if (!yymatchChar(G, '<')) goto l1118; if (!yy_Spnl(G)) { goto l1118; } if (!yymatchChar(G, '/')) goto l1118;
  5193. { int yypos1119= G->pos, yythunkpos1119= G->thunkpos; if (!yymatchString(G, "h1")) goto l1120; goto l1119;
  5194. l1120:; G->pos= yypos1119; G->thunkpos= yythunkpos1119; if (!yymatchString(G, "H1")) goto l1118;
  5195. }
  5196. l1119:; if (!yy_Spnl(G)) { goto l1118; } if (!yymatchChar(G, '>')) goto l1118;
  5197. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5198. return 1;
  5199. l1118:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5200. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5201. return 0;
  5202. }
  5203. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G)
  5204. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5205. yyprintf((stderr, "%s\n", "HtmlBlockOpenH1")); if (!yymatchChar(G, '<')) goto l1121; if (!yy_Spnl(G)) { goto l1121; }
  5206. { int yypos1122= G->pos, yythunkpos1122= G->thunkpos; if (!yymatchString(G, "h1")) goto l1123; goto l1122;
  5207. l1123:; G->pos= yypos1122; G->thunkpos= yythunkpos1122; if (!yymatchString(G, "H1")) goto l1121;
  5208. }
  5209. l1122:; if (!yy_Spnl(G)) { goto l1121; }
  5210. l1124:;
  5211. { int yypos1125= G->pos, yythunkpos1125= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1125; } goto l1124;
  5212. l1125:; G->pos= yypos1125; G->thunkpos= yythunkpos1125;
  5213. } if (!yymatchChar(G, '>')) goto l1121;
  5214. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5215. return 1;
  5216. l1121:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5217. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5218. return 0;
  5219. }
  5220. YY_RULE(int) yy_HtmlBlockForm(GREG *G)
  5221. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5222. yyprintf((stderr, "%s\n", "HtmlBlockForm")); if (!yy_HtmlBlockOpenForm(G)) { goto l1126; }
  5223. l1127:;
  5224. { int yypos1128= G->pos, yythunkpos1128= G->thunkpos;
  5225. { int yypos1129= G->pos, yythunkpos1129= G->thunkpos; if (!yy_HtmlBlockForm(G)) { goto l1130; } goto l1129;
  5226. l1130:; G->pos= yypos1129; G->thunkpos= yythunkpos1129;
  5227. { int yypos1131= G->pos, yythunkpos1131= G->thunkpos; if (!yy_HtmlBlockCloseForm(G)) { goto l1131; } goto l1128;
  5228. l1131:; G->pos= yypos1131; G->thunkpos= yythunkpos1131;
  5229. } if (!yymatchDot(G)) goto l1128;
  5230. }
  5231. l1129:; goto l1127;
  5232. l1128:; G->pos= yypos1128; G->thunkpos= yythunkpos1128;
  5233. } if (!yy_HtmlBlockCloseForm(G)) { goto l1126; }
  5234. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5235. return 1;
  5236. l1126:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5237. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5238. return 0;
  5239. }
  5240. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G)
  5241. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5242. yyprintf((stderr, "%s\n", "HtmlBlockCloseForm")); if (!yymatchChar(G, '<')) goto l1132; if (!yy_Spnl(G)) { goto l1132; } if (!yymatchChar(G, '/')) goto l1132;
  5243. { int yypos1133= G->pos, yythunkpos1133= G->thunkpos; if (!yymatchString(G, "form")) goto l1134; goto l1133;
  5244. l1134:; G->pos= yypos1133; G->thunkpos= yythunkpos1133; if (!yymatchString(G, "FORM")) goto l1132;
  5245. }
  5246. l1133:; if (!yy_Spnl(G)) { goto l1132; } if (!yymatchChar(G, '>')) goto l1132;
  5247. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5248. return 1;
  5249. l1132:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5250. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5251. return 0;
  5252. }
  5253. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G)
  5254. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5255. yyprintf((stderr, "%s\n", "HtmlBlockOpenForm")); if (!yymatchChar(G, '<')) goto l1135; if (!yy_Spnl(G)) { goto l1135; }
  5256. { int yypos1136= G->pos, yythunkpos1136= G->thunkpos; if (!yymatchString(G, "form")) goto l1137; goto l1136;
  5257. l1137:; G->pos= yypos1136; G->thunkpos= yythunkpos1136; if (!yymatchString(G, "FORM")) goto l1135;
  5258. }
  5259. l1136:; if (!yy_Spnl(G)) { goto l1135; }
  5260. l1138:;
  5261. { int yypos1139= G->pos, yythunkpos1139= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1139; } goto l1138;
  5262. l1139:; G->pos= yypos1139; G->thunkpos= yythunkpos1139;
  5263. } if (!yymatchChar(G, '>')) goto l1135;
  5264. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5265. return 1;
  5266. l1135:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5267. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5268. return 0;
  5269. }
  5270. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G)
  5271. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5272. yyprintf((stderr, "%s\n", "HtmlBlockFieldset")); if (!yy_HtmlBlockOpenFieldset(G)) { goto l1140; }
  5273. l1141:;
  5274. { int yypos1142= G->pos, yythunkpos1142= G->thunkpos;
  5275. { int yypos1143= G->pos, yythunkpos1143= G->thunkpos; if (!yy_HtmlBlockFieldset(G)) { goto l1144; } goto l1143;
  5276. l1144:; G->pos= yypos1143; G->thunkpos= yythunkpos1143;
  5277. { int yypos1145= G->pos, yythunkpos1145= G->thunkpos; if (!yy_HtmlBlockCloseFieldset(G)) { goto l1145; } goto l1142;
  5278. l1145:; G->pos= yypos1145; G->thunkpos= yythunkpos1145;
  5279. } if (!yymatchDot(G)) goto l1142;
  5280. }
  5281. l1143:; goto l1141;
  5282. l1142:; G->pos= yypos1142; G->thunkpos= yythunkpos1142;
  5283. } if (!yy_HtmlBlockCloseFieldset(G)) { goto l1140; }
  5284. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5285. return 1;
  5286. l1140:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5287. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5288. return 0;
  5289. }
  5290. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G)
  5291. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5292. yyprintf((stderr, "%s\n", "HtmlBlockCloseFieldset")); if (!yymatchChar(G, '<')) goto l1146; if (!yy_Spnl(G)) { goto l1146; } if (!yymatchChar(G, '/')) goto l1146;
  5293. { int yypos1147= G->pos, yythunkpos1147= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1148; goto l1147;
  5294. l1148:; G->pos= yypos1147; G->thunkpos= yythunkpos1147; if (!yymatchString(G, "FIELDSET")) goto l1146;
  5295. }
  5296. l1147:; if (!yy_Spnl(G)) { goto l1146; } if (!yymatchChar(G, '>')) goto l1146;
  5297. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5298. return 1;
  5299. l1146:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5300. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5301. return 0;
  5302. }
  5303. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G)
  5304. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5305. yyprintf((stderr, "%s\n", "HtmlBlockOpenFieldset")); if (!yymatchChar(G, '<')) goto l1149; if (!yy_Spnl(G)) { goto l1149; }
  5306. { int yypos1150= G->pos, yythunkpos1150= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1151; goto l1150;
  5307. l1151:; G->pos= yypos1150; G->thunkpos= yythunkpos1150; if (!yymatchString(G, "FIELDSET")) goto l1149;
  5308. }
  5309. l1150:; if (!yy_Spnl(G)) { goto l1149; }
  5310. l1152:;
  5311. { int yypos1153= G->pos, yythunkpos1153= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1153; } goto l1152;
  5312. l1153:; G->pos= yypos1153; G->thunkpos= yythunkpos1153;
  5313. } if (!yymatchChar(G, '>')) goto l1149;
  5314. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5315. return 1;
  5316. l1149:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5317. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5318. return 0;
  5319. }
  5320. YY_RULE(int) yy_HtmlBlockDl(GREG *G)
  5321. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5322. yyprintf((stderr, "%s\n", "HtmlBlockDl")); if (!yy_HtmlBlockOpenDl(G)) { goto l1154; }
  5323. l1155:;
  5324. { int yypos1156= G->pos, yythunkpos1156= G->thunkpos;
  5325. { int yypos1157= G->pos, yythunkpos1157= G->thunkpos; if (!yy_HtmlBlockDl(G)) { goto l1158; } goto l1157;
  5326. l1158:; G->pos= yypos1157; G->thunkpos= yythunkpos1157;
  5327. { int yypos1159= G->pos, yythunkpos1159= G->thunkpos; if (!yy_HtmlBlockCloseDl(G)) { goto l1159; } goto l1156;
  5328. l1159:; G->pos= yypos1159; G->thunkpos= yythunkpos1159;
  5329. } if (!yymatchDot(G)) goto l1156;
  5330. }
  5331. l1157:; goto l1155;
  5332. l1156:; G->pos= yypos1156; G->thunkpos= yythunkpos1156;
  5333. } if (!yy_HtmlBlockCloseDl(G)) { goto l1154; }
  5334. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5335. return 1;
  5336. l1154:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5337. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5338. return 0;
  5339. }
  5340. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G)
  5341. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5342. yyprintf((stderr, "%s\n", "HtmlBlockCloseDl")); if (!yymatchChar(G, '<')) goto l1160; if (!yy_Spnl(G)) { goto l1160; } if (!yymatchChar(G, '/')) goto l1160;
  5343. { int yypos1161= G->pos, yythunkpos1161= G->thunkpos; if (!yymatchString(G, "dl")) goto l1162; goto l1161;
  5344. l1162:; G->pos= yypos1161; G->thunkpos= yythunkpos1161; if (!yymatchString(G, "DL")) goto l1160;
  5345. }
  5346. l1161:; if (!yy_Spnl(G)) { goto l1160; } if (!yymatchChar(G, '>')) goto l1160;
  5347. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5348. return 1;
  5349. l1160:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5350. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5351. return 0;
  5352. }
  5353. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G)
  5354. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5355. yyprintf((stderr, "%s\n", "HtmlBlockOpenDl")); if (!yymatchChar(G, '<')) goto l1163; if (!yy_Spnl(G)) { goto l1163; }
  5356. { int yypos1164= G->pos, yythunkpos1164= G->thunkpos; if (!yymatchString(G, "dl")) goto l1165; goto l1164;
  5357. l1165:; G->pos= yypos1164; G->thunkpos= yythunkpos1164; if (!yymatchString(G, "DL")) goto l1163;
  5358. }
  5359. l1164:; if (!yy_Spnl(G)) { goto l1163; }
  5360. l1166:;
  5361. { int yypos1167= G->pos, yythunkpos1167= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1167; } goto l1166;
  5362. l1167:; G->pos= yypos1167; G->thunkpos= yythunkpos1167;
  5363. } if (!yymatchChar(G, '>')) goto l1163;
  5364. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5365. return 1;
  5366. l1163:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5367. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5368. return 0;
  5369. }
  5370. YY_RULE(int) yy_HtmlBlockDiv(GREG *G)
  5371. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5372. yyprintf((stderr, "%s\n", "HtmlBlockDiv")); if (!yy_HtmlBlockOpenDiv(G)) { goto l1168; }
  5373. l1169:;
  5374. { int yypos1170= G->pos, yythunkpos1170= G->thunkpos;
  5375. { int yypos1171= G->pos, yythunkpos1171= G->thunkpos; if (!yy_HtmlBlockDiv(G)) { goto l1172; } goto l1171;
  5376. l1172:; G->pos= yypos1171; G->thunkpos= yythunkpos1171;
  5377. { int yypos1173= G->pos, yythunkpos1173= G->thunkpos; if (!yy_HtmlBlockCloseDiv(G)) { goto l1173; } goto l1170;
  5378. l1173:; G->pos= yypos1173; G->thunkpos= yythunkpos1173;
  5379. } if (!yymatchDot(G)) goto l1170;
  5380. }
  5381. l1171:; goto l1169;
  5382. l1170:; G->pos= yypos1170; G->thunkpos= yythunkpos1170;
  5383. } if (!yy_HtmlBlockCloseDiv(G)) { goto l1168; }
  5384. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5385. return 1;
  5386. l1168:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5387. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5388. return 0;
  5389. }
  5390. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G)
  5391. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5392. yyprintf((stderr, "%s\n", "HtmlBlockCloseDiv")); if (!yymatchChar(G, '<')) goto l1174; if (!yy_Spnl(G)) { goto l1174; } if (!yymatchChar(G, '/')) goto l1174;
  5393. { int yypos1175= G->pos, yythunkpos1175= G->thunkpos; if (!yymatchString(G, "div")) goto l1176; goto l1175;
  5394. l1176:; G->pos= yypos1175; G->thunkpos= yythunkpos1175; if (!yymatchString(G, "DIV")) goto l1174;
  5395. }
  5396. l1175:; if (!yy_Spnl(G)) { goto l1174; } if (!yymatchChar(G, '>')) goto l1174;
  5397. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5398. return 1;
  5399. l1174:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5400. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5401. return 0;
  5402. }
  5403. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G)
  5404. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5405. yyprintf((stderr, "%s\n", "HtmlBlockOpenDiv")); if (!yymatchChar(G, '<')) goto l1177; if (!yy_Spnl(G)) { goto l1177; }
  5406. { int yypos1178= G->pos, yythunkpos1178= G->thunkpos; if (!yymatchString(G, "div")) goto l1179; goto l1178;
  5407. l1179:; G->pos= yypos1178; G->thunkpos= yythunkpos1178; if (!yymatchString(G, "DIV")) goto l1177;
  5408. }
  5409. l1178:; if (!yy_Spnl(G)) { goto l1177; }
  5410. l1180:;
  5411. { int yypos1181= G->pos, yythunkpos1181= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1181; } goto l1180;
  5412. l1181:; G->pos= yypos1181; G->thunkpos= yythunkpos1181;
  5413. } if (!yymatchChar(G, '>')) goto l1177;
  5414. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5415. return 1;
  5416. l1177:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5417. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5418. return 0;
  5419. }
  5420. YY_RULE(int) yy_HtmlBlockDir(GREG *G)
  5421. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5422. yyprintf((stderr, "%s\n", "HtmlBlockDir")); if (!yy_HtmlBlockOpenDir(G)) { goto l1182; }
  5423. l1183:;
  5424. { int yypos1184= G->pos, yythunkpos1184= G->thunkpos;
  5425. { int yypos1185= G->pos, yythunkpos1185= G->thunkpos; if (!yy_HtmlBlockDir(G)) { goto l1186; } goto l1185;
  5426. l1186:; G->pos= yypos1185; G->thunkpos= yythunkpos1185;
  5427. { int yypos1187= G->pos, yythunkpos1187= G->thunkpos; if (!yy_HtmlBlockCloseDir(G)) { goto l1187; } goto l1184;
  5428. l1187:; G->pos= yypos1187; G->thunkpos= yythunkpos1187;
  5429. } if (!yymatchDot(G)) goto l1184;
  5430. }
  5431. l1185:; goto l1183;
  5432. l1184:; G->pos= yypos1184; G->thunkpos= yythunkpos1184;
  5433. } if (!yy_HtmlBlockCloseDir(G)) { goto l1182; }
  5434. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5435. return 1;
  5436. l1182:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5437. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5438. return 0;
  5439. }
  5440. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G)
  5441. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5442. yyprintf((stderr, "%s\n", "HtmlBlockCloseDir")); if (!yymatchChar(G, '<')) goto l1188; if (!yy_Spnl(G)) { goto l1188; } if (!yymatchChar(G, '/')) goto l1188;
  5443. { int yypos1189= G->pos, yythunkpos1189= G->thunkpos; if (!yymatchString(G, "dir")) goto l1190; goto l1189;
  5444. l1190:; G->pos= yypos1189; G->thunkpos= yythunkpos1189; if (!yymatchString(G, "DIR")) goto l1188;
  5445. }
  5446. l1189:; if (!yy_Spnl(G)) { goto l1188; } if (!yymatchChar(G, '>')) goto l1188;
  5447. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5448. return 1;
  5449. l1188:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5450. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5451. return 0;
  5452. }
  5453. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G)
  5454. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5455. yyprintf((stderr, "%s\n", "HtmlBlockOpenDir")); if (!yymatchChar(G, '<')) goto l1191; if (!yy_Spnl(G)) { goto l1191; }
  5456. { int yypos1192= G->pos, yythunkpos1192= G->thunkpos; if (!yymatchString(G, "dir")) goto l1193; goto l1192;
  5457. l1193:; G->pos= yypos1192; G->thunkpos= yythunkpos1192; if (!yymatchString(G, "DIR")) goto l1191;
  5458. }
  5459. l1192:; if (!yy_Spnl(G)) { goto l1191; }
  5460. l1194:;
  5461. { int yypos1195= G->pos, yythunkpos1195= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1195; } goto l1194;
  5462. l1195:; G->pos= yypos1195; G->thunkpos= yythunkpos1195;
  5463. } if (!yymatchChar(G, '>')) goto l1191;
  5464. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5465. return 1;
  5466. l1191:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5467. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5468. return 0;
  5469. }
  5470. YY_RULE(int) yy_HtmlBlockCenter(GREG *G)
  5471. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5472. yyprintf((stderr, "%s\n", "HtmlBlockCenter")); if (!yy_HtmlBlockOpenCenter(G)) { goto l1196; }
  5473. l1197:;
  5474. { int yypos1198= G->pos, yythunkpos1198= G->thunkpos;
  5475. { int yypos1199= G->pos, yythunkpos1199= G->thunkpos; if (!yy_HtmlBlockCenter(G)) { goto l1200; } goto l1199;
  5476. l1200:; G->pos= yypos1199; G->thunkpos= yythunkpos1199;
  5477. { int yypos1201= G->pos, yythunkpos1201= G->thunkpos; if (!yy_HtmlBlockCloseCenter(G)) { goto l1201; } goto l1198;
  5478. l1201:; G->pos= yypos1201; G->thunkpos= yythunkpos1201;
  5479. } if (!yymatchDot(G)) goto l1198;
  5480. }
  5481. l1199:; goto l1197;
  5482. l1198:; G->pos= yypos1198; G->thunkpos= yythunkpos1198;
  5483. } if (!yy_HtmlBlockCloseCenter(G)) { goto l1196; }
  5484. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5485. return 1;
  5486. l1196:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5487. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5488. return 0;
  5489. }
  5490. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G)
  5491. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5492. yyprintf((stderr, "%s\n", "HtmlBlockCloseCenter")); if (!yymatchChar(G, '<')) goto l1202; if (!yy_Spnl(G)) { goto l1202; } if (!yymatchChar(G, '/')) goto l1202;
  5493. { int yypos1203= G->pos, yythunkpos1203= G->thunkpos; if (!yymatchString(G, "center")) goto l1204; goto l1203;
  5494. l1204:; G->pos= yypos1203; G->thunkpos= yythunkpos1203; if (!yymatchString(G, "CENTER")) goto l1202;
  5495. }
  5496. l1203:; if (!yy_Spnl(G)) { goto l1202; } if (!yymatchChar(G, '>')) goto l1202;
  5497. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5498. return 1;
  5499. l1202:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5500. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5501. return 0;
  5502. }
  5503. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G)
  5504. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5505. yyprintf((stderr, "%s\n", "HtmlBlockOpenCenter")); if (!yymatchChar(G, '<')) goto l1205; if (!yy_Spnl(G)) { goto l1205; }
  5506. { int yypos1206= G->pos, yythunkpos1206= G->thunkpos; if (!yymatchString(G, "center")) goto l1207; goto l1206;
  5507. l1207:; G->pos= yypos1206; G->thunkpos= yythunkpos1206; if (!yymatchString(G, "CENTER")) goto l1205;
  5508. }
  5509. l1206:; if (!yy_Spnl(G)) { goto l1205; }
  5510. l1208:;
  5511. { int yypos1209= G->pos, yythunkpos1209= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1209; } goto l1208;
  5512. l1209:; G->pos= yypos1209; G->thunkpos= yythunkpos1209;
  5513. } if (!yymatchChar(G, '>')) goto l1205;
  5514. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5515. return 1;
  5516. l1205:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5517. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5518. return 0;
  5519. }
  5520. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G)
  5521. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5522. yyprintf((stderr, "%s\n", "HtmlBlockBlockquote")); if (!yy_HtmlBlockOpenBlockquote(G)) { goto l1210; }
  5523. l1211:;
  5524. { int yypos1212= G->pos, yythunkpos1212= G->thunkpos;
  5525. { int yypos1213= G->pos, yythunkpos1213= G->thunkpos; if (!yy_HtmlBlockBlockquote(G)) { goto l1214; } goto l1213;
  5526. l1214:; G->pos= yypos1213; G->thunkpos= yythunkpos1213;
  5527. { int yypos1215= G->pos, yythunkpos1215= G->thunkpos; if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1215; } goto l1212;
  5528. l1215:; G->pos= yypos1215; G->thunkpos= yythunkpos1215;
  5529. } if (!yymatchDot(G)) goto l1212;
  5530. }
  5531. l1213:; goto l1211;
  5532. l1212:; G->pos= yypos1212; G->thunkpos= yythunkpos1212;
  5533. } if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1210; }
  5534. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5535. return 1;
  5536. l1210:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5537. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5538. return 0;
  5539. }
  5540. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G)
  5541. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5542. yyprintf((stderr, "%s\n", "HtmlBlockCloseBlockquote")); if (!yymatchChar(G, '<')) goto l1216; if (!yy_Spnl(G)) { goto l1216; } if (!yymatchChar(G, '/')) goto l1216;
  5543. { int yypos1217= G->pos, yythunkpos1217= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1218; goto l1217;
  5544. l1218:; G->pos= yypos1217; G->thunkpos= yythunkpos1217; if (!yymatchString(G, "BLOCKQUOTE")) goto l1216;
  5545. }
  5546. l1217:; if (!yy_Spnl(G)) { goto l1216; } if (!yymatchChar(G, '>')) goto l1216;
  5547. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5548. return 1;
  5549. l1216:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5550. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5551. return 0;
  5552. }
  5553. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G)
  5554. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5555. yyprintf((stderr, "%s\n", "HtmlBlockOpenBlockquote")); if (!yymatchChar(G, '<')) goto l1219; if (!yy_Spnl(G)) { goto l1219; }
  5556. { int yypos1220= G->pos, yythunkpos1220= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1221; goto l1220;
  5557. l1221:; G->pos= yypos1220; G->thunkpos= yythunkpos1220; if (!yymatchString(G, "BLOCKQUOTE")) goto l1219;
  5558. }
  5559. l1220:; if (!yy_Spnl(G)) { goto l1219; }
  5560. l1222:;
  5561. { int yypos1223= G->pos, yythunkpos1223= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1223; } goto l1222;
  5562. l1223:; G->pos= yypos1223; G->thunkpos= yythunkpos1223;
  5563. } if (!yymatchChar(G, '>')) goto l1219;
  5564. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5565. return 1;
  5566. l1219:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5567. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5568. return 0;
  5569. }
  5570. YY_RULE(int) yy_HtmlBlockAddress(GREG *G)
  5571. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5572. yyprintf((stderr, "%s\n", "HtmlBlockAddress")); if (!yy_HtmlBlockOpenAddress(G)) { goto l1224; }
  5573. l1225:;
  5574. { int yypos1226= G->pos, yythunkpos1226= G->thunkpos;
  5575. { int yypos1227= G->pos, yythunkpos1227= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l1228; } goto l1227;
  5576. l1228:; G->pos= yypos1227; G->thunkpos= yythunkpos1227;
  5577. { int yypos1229= G->pos, yythunkpos1229= G->thunkpos; if (!yy_HtmlBlockCloseAddress(G)) { goto l1229; } goto l1226;
  5578. l1229:; G->pos= yypos1229; G->thunkpos= yythunkpos1229;
  5579. } if (!yymatchDot(G)) goto l1226;
  5580. }
  5581. l1227:; goto l1225;
  5582. l1226:; G->pos= yypos1226; G->thunkpos= yythunkpos1226;
  5583. } if (!yy_HtmlBlockCloseAddress(G)) { goto l1224; }
  5584. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5585. return 1;
  5586. l1224:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5587. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5588. return 0;
  5589. }
  5590. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G)
  5591. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5592. yyprintf((stderr, "%s\n", "HtmlBlockCloseAddress")); if (!yymatchChar(G, '<')) goto l1230; if (!yy_Spnl(G)) { goto l1230; } if (!yymatchChar(G, '/')) goto l1230;
  5593. { int yypos1231= G->pos, yythunkpos1231= G->thunkpos; if (!yymatchString(G, "address")) goto l1232; goto l1231;
  5594. l1232:; G->pos= yypos1231; G->thunkpos= yythunkpos1231; if (!yymatchString(G, "ADDRESS")) goto l1230;
  5595. }
  5596. l1231:; if (!yy_Spnl(G)) { goto l1230; } if (!yymatchChar(G, '>')) goto l1230;
  5597. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5598. return 1;
  5599. l1230:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5600. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5601. return 0;
  5602. }
  5603. YY_RULE(int) yy_HtmlAttribute(GREG *G)
  5604. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5605. yyprintf((stderr, "%s\n", "HtmlAttribute"));
  5606. { int yypos1236= G->pos, yythunkpos1236= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1237; } goto l1236;
  5607. l1237:; G->pos= yypos1236; G->thunkpos= yythunkpos1236; if (!yymatchChar(G, '-')) goto l1233;
  5608. }
  5609. l1236:;
  5610. l1234:;
  5611. { int yypos1235= G->pos, yythunkpos1235= G->thunkpos;
  5612. { int yypos1238= G->pos, yythunkpos1238= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1239; } goto l1238;
  5613. l1239:; G->pos= yypos1238; G->thunkpos= yythunkpos1238; if (!yymatchChar(G, '-')) goto l1235;
  5614. }
  5615. l1238:; goto l1234;
  5616. l1235:; G->pos= yypos1235; G->thunkpos= yythunkpos1235;
  5617. } if (!yy_Spnl(G)) { goto l1233; }
  5618. { int yypos1240= G->pos, yythunkpos1240= G->thunkpos; if (!yymatchChar(G, '=')) goto l1240; if (!yy_Spnl(G)) { goto l1240; }
  5619. { int yypos1242= G->pos, yythunkpos1242= G->thunkpos; if (!yy_Quoted(G)) { goto l1243; } goto l1242;
  5620. l1243:; G->pos= yypos1242; G->thunkpos= yythunkpos1242;
  5621. { int yypos1246= G->pos, yythunkpos1246= G->thunkpos; if (!yymatchChar(G, '>')) goto l1246; goto l1240;
  5622. l1246:; G->pos= yypos1246; G->thunkpos= yythunkpos1246;
  5623. } if (!yy_Nonspacechar(G)) { goto l1240; }
  5624. l1244:;
  5625. { int yypos1245= G->pos, yythunkpos1245= G->thunkpos;
  5626. { int yypos1247= G->pos, yythunkpos1247= G->thunkpos; if (!yymatchChar(G, '>')) goto l1247; goto l1245;
  5627. l1247:; G->pos= yypos1247; G->thunkpos= yythunkpos1247;
  5628. } if (!yy_Nonspacechar(G)) { goto l1245; } goto l1244;
  5629. l1245:; G->pos= yypos1245; G->thunkpos= yythunkpos1245;
  5630. }
  5631. }
  5632. l1242:; goto l1241;
  5633. l1240:; G->pos= yypos1240; G->thunkpos= yythunkpos1240;
  5634. }
  5635. l1241:; if (!yy_Spnl(G)) { goto l1233; }
  5636. yyprintf((stderr, " ok %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5637. return 1;
  5638. l1233:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5639. yyprintf((stderr, " fail %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5640. return 0;
  5641. }
  5642. YY_RULE(int) yy_Spnl(GREG *G)
  5643. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5644. yyprintf((stderr, "%s\n", "Spnl")); if (!yy_Sp(G)) { goto l1248; }
  5645. { int yypos1249= G->pos, yythunkpos1249= G->thunkpos; if (!yy_Newline(G)) { goto l1249; } if (!yy_Sp(G)) { goto l1249; } goto l1250;
  5646. l1249:; G->pos= yypos1249; G->thunkpos= yythunkpos1249;
  5647. }
  5648. l1250:;
  5649. yyprintf((stderr, " ok %s @ %s\n", "Spnl", G->buf+G->pos));
  5650. return 1;
  5651. l1248:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5652. yyprintf((stderr, " fail %s @ %s\n", "Spnl", G->buf+G->pos));
  5653. return 0;
  5654. }
  5655. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G)
  5656. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5657. yyprintf((stderr, "%s\n", "HtmlBlockOpenAddress")); if (!yymatchChar(G, '<')) goto l1251; if (!yy_Spnl(G)) { goto l1251; }
  5658. { int yypos1252= G->pos, yythunkpos1252= G->thunkpos; if (!yymatchString(G, "address")) goto l1253; goto l1252;
  5659. l1253:; G->pos= yypos1252; G->thunkpos= yythunkpos1252; if (!yymatchString(G, "ADDRESS")) goto l1251;
  5660. }
  5661. l1252:; if (!yy_Spnl(G)) { goto l1251; }
  5662. l1254:;
  5663. { int yypos1255= G->pos, yythunkpos1255= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1255; } goto l1254;
  5664. l1255:; G->pos= yypos1255; G->thunkpos= yythunkpos1255;
  5665. } if (!yymatchChar(G, '>')) goto l1251;
  5666. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5667. return 1;
  5668. l1251:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5669. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5670. return 0;
  5671. }
  5672. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G)
  5673. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5674. yyprintf((stderr, "%s\n", "OptionallyIndentedLine"));
  5675. { int yypos1257= G->pos, yythunkpos1257= G->thunkpos; if (!yy_Indent(G)) { goto l1257; } goto l1258;
  5676. l1257:; G->pos= yypos1257; G->thunkpos= yythunkpos1257;
  5677. }
  5678. l1258:; if (!yy_Line(G)) { goto l1256; }
  5679. yyprintf((stderr, " ok %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5680. return 1;
  5681. l1256:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5682. yyprintf((stderr, " fail %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5683. return 0;
  5684. }
  5685. YY_RULE(int) yy_Indent(GREG *G)
  5686. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5687. yyprintf((stderr, "%s\n", "Indent"));
  5688. { int yypos1260= G->pos, yythunkpos1260= G->thunkpos; if (!yymatchChar(G, '\t')) goto l1261; goto l1260;
  5689. l1261:; G->pos= yypos1260; G->thunkpos= yythunkpos1260; if (!yymatchString(G, " ")) goto l1259;
  5690. }
  5691. l1260:;
  5692. yyprintf((stderr, " ok %s @ %s\n", "Indent", G->buf+G->pos));
  5693. return 1;
  5694. l1259:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5695. yyprintf((stderr, " fail %s @ %s\n", "Indent", G->buf+G->pos));
  5696. return 0;
  5697. }
  5698. YY_RULE(int) yy_ListBlockLine(GREG *G)
  5699. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5700. yyprintf((stderr, "%s\n", "ListBlockLine"));
  5701. { int yypos1263= G->pos, yythunkpos1263= G->thunkpos; if (!yy_BlankLine(G)) { goto l1263; } goto l1262;
  5702. l1263:; G->pos= yypos1263; G->thunkpos= yythunkpos1263;
  5703. }
  5704. { int yypos1264= G->pos, yythunkpos1264= G->thunkpos;
  5705. { int yypos1265= G->pos, yythunkpos1265= G->thunkpos; if (!yy_Indent(G)) { goto l1265; } goto l1266;
  5706. l1265:; G->pos= yypos1265; G->thunkpos= yythunkpos1265;
  5707. }
  5708. l1266:;
  5709. { int yypos1267= G->pos, yythunkpos1267= G->thunkpos; if (!yy_Bullet(G)) { goto l1268; } goto l1267;
  5710. l1268:; G->pos= yypos1267; G->thunkpos= yythunkpos1267; if (!yy_Enumerator(G)) { goto l1264; }
  5711. }
  5712. l1267:; goto l1262;
  5713. l1264:; G->pos= yypos1264; G->thunkpos= yythunkpos1264;
  5714. }
  5715. { int yypos1269= G->pos, yythunkpos1269= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1269; } goto l1262;
  5716. l1269:; G->pos= yypos1269; G->thunkpos= yythunkpos1269;
  5717. } if (!yy_OptionallyIndentedLine(G)) { goto l1262; }
  5718. yyprintf((stderr, " ok %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5719. return 1;
  5720. l1262:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5721. yyprintf((stderr, " fail %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5722. return 0;
  5723. }
  5724. YY_RULE(int) yy_ListContinuationBlock(GREG *G)
  5725. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5726. yyprintf((stderr, "%s\n", "ListContinuationBlock")); if (!yy_StartList(G)) { goto l1270; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1270;
  5727. l1271:;
  5728. { int yypos1272= G->pos, yythunkpos1272= G->thunkpos; if (!yy_BlankLine(G)) { goto l1272; } goto l1271;
  5729. l1272:; G->pos= yypos1272; G->thunkpos= yythunkpos1272;
  5730. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1270; yyDo(G, yy_1_ListContinuationBlock, G->begin, G->end); if (!yy_Indent(G)) { goto l1270; } if (!yy_ListBlock(G)) { goto l1270; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end);
  5731. l1273:;
  5732. { int yypos1274= G->pos, yythunkpos1274= G->thunkpos; if (!yy_Indent(G)) { goto l1274; } if (!yy_ListBlock(G)) { goto l1274; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end); goto l1273;
  5733. l1274:; G->pos= yypos1274; G->thunkpos= yythunkpos1274;
  5734. } yyDo(G, yy_3_ListContinuationBlock, G->begin, G->end);
  5735. yyprintf((stderr, " ok %s @ %s\n", "ListContinuationBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5736. return 1;
  5737. l1270:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5738. yyprintf((stderr, " fail %s @ %s\n", "ListContinuationBlock", G->buf+G->pos));
  5739. return 0;
  5740. }
  5741. YY_RULE(int) yy_ListBlock(GREG *G)
  5742. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5743. yyprintf((stderr, "%s\n", "ListBlock")); if (!yy_StartList(G)) { goto l1275; } yyDo(G, yySet, -1, 0);
  5744. { int yypos1276= G->pos, yythunkpos1276= G->thunkpos; if (!yy_BlankLine(G)) { goto l1276; } goto l1275;
  5745. l1276:; G->pos= yypos1276; G->thunkpos= yythunkpos1276;
  5746. } if (!yy_Line(G)) { goto l1275; } yyDo(G, yy_1_ListBlock, G->begin, G->end);
  5747. l1277:;
  5748. { int yypos1278= G->pos, yythunkpos1278= G->thunkpos; if (!yy_ListBlockLine(G)) { goto l1278; } yyDo(G, yy_2_ListBlock, G->begin, G->end); goto l1277;
  5749. l1278:; G->pos= yypos1278; G->thunkpos= yythunkpos1278;
  5750. } yyDo(G, yy_3_ListBlock, G->begin, G->end);
  5751. yyprintf((stderr, " ok %s @ %s\n", "ListBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5752. return 1;
  5753. l1275:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5754. yyprintf((stderr, " fail %s @ %s\n", "ListBlock", G->buf+G->pos));
  5755. return 0;
  5756. }
  5757. YY_RULE(int) yy_ListItem(GREG *G)
  5758. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5759. yyprintf((stderr, "%s\n", "ListItem"));
  5760. { int yypos1280= G->pos, yythunkpos1280= G->thunkpos; if (!yy_Bullet(G)) { goto l1281; } goto l1280;
  5761. l1281:; G->pos= yypos1280; G->thunkpos= yythunkpos1280; if (!yy_Enumerator(G)) { goto l1279; }
  5762. }
  5763. l1280:; if (!yy_StartList(G)) { goto l1279; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1279; } yyDo(G, yy_1_ListItem, G->begin, G->end);
  5764. l1282:;
  5765. { int yypos1283= G->pos, yythunkpos1283= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1283; } yyDo(G, yy_2_ListItem, G->begin, G->end); goto l1282;
  5766. l1283:; G->pos= yypos1283; G->thunkpos= yythunkpos1283;
  5767. } yyDo(G, yy_3_ListItem, G->begin, G->end);
  5768. yyprintf((stderr, " ok %s @ %s\n", "ListItem", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5769. return 1;
  5770. l1279:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5771. yyprintf((stderr, " fail %s @ %s\n", "ListItem", G->buf+G->pos));
  5772. return 0;
  5773. }
  5774. YY_RULE(int) yy_Enumerator(GREG *G)
  5775. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5776. yyprintf((stderr, "%s\n", "Enumerator")); if (!yy_NonindentSpace(G)) { goto l1284; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1284; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l1284;
  5777. l1285:;
  5778. { int yypos1286= G->pos, yythunkpos1286= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l1286; goto l1285;
  5779. l1286:; G->pos= yypos1286; G->thunkpos= yythunkpos1286;
  5780. } if (!yymatchChar(G, '.')) goto l1284; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1284; if (!yy_Spacechar(G)) { goto l1284; }
  5781. l1287:;
  5782. { int yypos1288= G->pos, yythunkpos1288= G->thunkpos; if (!yy_Spacechar(G)) { goto l1288; } goto l1287;
  5783. l1288:; G->pos= yypos1288; G->thunkpos= yythunkpos1288;
  5784. } yyDo(G, yy_1_Enumerator, G->begin, G->end);
  5785. yyprintf((stderr, " ok %s @ %s\n", "Enumerator", G->buf+G->pos));
  5786. return 1;
  5787. l1284:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5788. yyprintf((stderr, " fail %s @ %s\n", "Enumerator", G->buf+G->pos));
  5789. return 0;
  5790. }
  5791. YY_RULE(int) yy_ListItemTight(GREG *G)
  5792. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5793. yyprintf((stderr, "%s\n", "ListItemTight"));
  5794. { int yypos1290= G->pos, yythunkpos1290= G->thunkpos; if (!yy_Bullet(G)) { goto l1291; } goto l1290;
  5795. l1291:; G->pos= yypos1290; G->thunkpos= yythunkpos1290; if (!yy_Enumerator(G)) { goto l1289; }
  5796. }
  5797. l1290:; if (!yy_StartList(G)) { goto l1289; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1289; } yyDo(G, yy_1_ListItemTight, G->begin, G->end);
  5798. l1292:;
  5799. { int yypos1293= G->pos, yythunkpos1293= G->thunkpos;
  5800. { int yypos1294= G->pos, yythunkpos1294= G->thunkpos; if (!yy_BlankLine(G)) { goto l1294; } goto l1293;
  5801. l1294:; G->pos= yypos1294; G->thunkpos= yythunkpos1294;
  5802. } if (!yy_ListContinuationBlock(G)) { goto l1293; } yyDo(G, yy_2_ListItemTight, G->begin, G->end); goto l1292;
  5803. l1293:; G->pos= yypos1293; G->thunkpos= yythunkpos1293;
  5804. }
  5805. { int yypos1295= G->pos, yythunkpos1295= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1295; } goto l1289;
  5806. l1295:; G->pos= yypos1295; G->thunkpos= yythunkpos1295;
  5807. } yyDo(G, yy_3_ListItemTight, G->begin, G->end);
  5808. yyprintf((stderr, " ok %s @ %s\n", "ListItemTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5809. return 1;
  5810. l1289:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5811. yyprintf((stderr, " fail %s @ %s\n", "ListItemTight", G->buf+G->pos));
  5812. return 0;
  5813. }
  5814. YY_RULE(int) yy_ListLoose(GREG *G)
  5815. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  5816. yyprintf((stderr, "%s\n", "ListLoose")); if (!yy_StartList(G)) { goto l1296; } yyDo(G, yySet, -2, 0); if (!yy_ListItem(G)) { goto l1296; } yyDo(G, yySet, -1, 0);
  5817. l1299:;
  5818. { int yypos1300= G->pos, yythunkpos1300= G->thunkpos; if (!yy_BlankLine(G)) { goto l1300; } goto l1299;
  5819. l1300:; G->pos= yypos1300; G->thunkpos= yythunkpos1300;
  5820. } yyDo(G, yy_1_ListLoose, G->begin, G->end);
  5821. l1297:;
  5822. { int yypos1298= G->pos, yythunkpos1298= G->thunkpos; if (!yy_ListItem(G)) { goto l1298; } yyDo(G, yySet, -1, 0);
  5823. l1301:;
  5824. { int yypos1302= G->pos, yythunkpos1302= G->thunkpos; if (!yy_BlankLine(G)) { goto l1302; } goto l1301;
  5825. l1302:; G->pos= yypos1302; G->thunkpos= yythunkpos1302;
  5826. } yyDo(G, yy_1_ListLoose, G->begin, G->end); goto l1297;
  5827. l1298:; G->pos= yypos1298; G->thunkpos= yythunkpos1298;
  5828. } yyDo(G, yy_2_ListLoose, G->begin, G->end);
  5829. yyprintf((stderr, " ok %s @ %s\n", "ListLoose", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  5830. return 1;
  5831. l1296:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5832. yyprintf((stderr, " fail %s @ %s\n", "ListLoose", G->buf+G->pos));
  5833. return 0;
  5834. }
  5835. YY_RULE(int) yy_ListTight(GREG *G)
  5836. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5837. yyprintf((stderr, "%s\n", "ListTight")); if (!yy_StartList(G)) { goto l1303; } yyDo(G, yySet, -1, 0); if (!yy_ListItemTight(G)) { goto l1303; } yyDo(G, yy_1_ListTight, G->begin, G->end);
  5838. l1304:;
  5839. { int yypos1305= G->pos, yythunkpos1305= G->thunkpos; if (!yy_ListItemTight(G)) { goto l1305; } yyDo(G, yy_1_ListTight, G->begin, G->end); goto l1304;
  5840. l1305:; G->pos= yypos1305; G->thunkpos= yythunkpos1305;
  5841. }
  5842. l1306:;
  5843. { int yypos1307= G->pos, yythunkpos1307= G->thunkpos; if (!yy_BlankLine(G)) { goto l1307; } goto l1306;
  5844. l1307:; G->pos= yypos1307; G->thunkpos= yythunkpos1307;
  5845. }
  5846. { int yypos1308= G->pos, yythunkpos1308= G->thunkpos;
  5847. { int yypos1309= G->pos, yythunkpos1309= G->thunkpos; if (!yy_Bullet(G)) { goto l1310; } goto l1309;
  5848. l1310:; G->pos= yypos1309; G->thunkpos= yythunkpos1309; if (!yy_Enumerator(G)) { goto l1308; }
  5849. }
  5850. l1309:; goto l1303;
  5851. l1308:; G->pos= yypos1308; G->thunkpos= yythunkpos1308;
  5852. } yyDo(G, yy_2_ListTight, G->begin, G->end);
  5853. yyprintf((stderr, " ok %s @ %s\n", "ListTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5854. return 1;
  5855. l1303:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5856. yyprintf((stderr, " fail %s @ %s\n", "ListTight", G->buf+G->pos));
  5857. return 0;
  5858. }
  5859. YY_RULE(int) yy_Bullet(GREG *G)
  5860. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5861. yyprintf((stderr, "%s\n", "Bullet"));
  5862. { int yypos1312= G->pos, yythunkpos1312= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1312; } goto l1311;
  5863. l1312:; G->pos= yypos1312; G->thunkpos= yythunkpos1312;
  5864. } if (!yy_NonindentSpace(G)) { goto l1311; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1311;
  5865. { int yypos1313= G->pos, yythunkpos1313= G->thunkpos; if (!yymatchChar(G, '+')) goto l1314; goto l1313;
  5866. l1314:; G->pos= yypos1313; G->thunkpos= yythunkpos1313; if (!yymatchChar(G, '*')) goto l1315; goto l1313;
  5867. l1315:; G->pos= yypos1313; G->thunkpos= yythunkpos1313; if (!yymatchChar(G, '-')) goto l1311;
  5868. }
  5869. l1313:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1311; if (!yy_Spacechar(G)) { goto l1311; }
  5870. l1316:;
  5871. { int yypos1317= G->pos, yythunkpos1317= G->thunkpos; if (!yy_Spacechar(G)) { goto l1317; } goto l1316;
  5872. l1317:; G->pos= yypos1317; G->thunkpos= yythunkpos1317;
  5873. } yyDo(G, yy_1_Bullet, G->begin, G->end);
  5874. yyprintf((stderr, " ok %s @ %s\n", "Bullet", G->buf+G->pos));
  5875. return 1;
  5876. l1311:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5877. yyprintf((stderr, " fail %s @ %s\n", "Bullet", G->buf+G->pos));
  5878. return 0;
  5879. }
  5880. YY_RULE(int) yy_Nonspacechar(GREG *G)
  5881. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5882. yyprintf((stderr, "%s\n", "Nonspacechar"));
  5883. { int yypos1319= G->pos, yythunkpos1319= G->thunkpos; if (!yy_Spacechar(G)) { goto l1319; } goto l1318;
  5884. l1319:; G->pos= yypos1319; G->thunkpos= yythunkpos1319;
  5885. }
  5886. { int yypos1320= G->pos, yythunkpos1320= G->thunkpos; if (!yy_Newline(G)) { goto l1320; } goto l1318;
  5887. l1320:; G->pos= yypos1320; G->thunkpos= yythunkpos1320;
  5888. } if (!yymatchDot(G)) goto l1318;
  5889. yyprintf((stderr, " ok %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  5890. return 1;
  5891. l1318:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5892. yyprintf((stderr, " fail %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  5893. return 0;
  5894. }
  5895. YY_RULE(int) yy_InlineEquationMultiple(GREG *G)
  5896. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5897. yyprintf((stderr, "%s\n", "InlineEquationMultiple"));
  5898. { int yypos1322= G->pos, yythunkpos1322= G->thunkpos; if (!yymatchChar(G, '$')) goto l1322; goto l1321;
  5899. l1322:; G->pos= yypos1322; G->thunkpos= yythunkpos1322;
  5900. } if (!yy_Nonspacechar(G)) { goto l1321; }
  5901. { int yypos1325= G->pos, yythunkpos1325= G->thunkpos; if (!yymatchChar(G, '$')) goto l1325; goto l1321;
  5902. l1325:; G->pos= yypos1325; G->thunkpos= yythunkpos1325;
  5903. }
  5904. { int yypos1326= G->pos, yythunkpos1326= G->thunkpos; if (!yy_Newline(G)) { goto l1326; } goto l1321;
  5905. l1326:; G->pos= yypos1326; G->thunkpos= yythunkpos1326;
  5906. } if (!yymatchDot(G)) goto l1321;
  5907. l1323:;
  5908. { int yypos1324= G->pos, yythunkpos1324= G->thunkpos;
  5909. { int yypos1327= G->pos, yythunkpos1327= G->thunkpos; if (!yymatchChar(G, '$')) goto l1327; goto l1324;
  5910. l1327:; G->pos= yypos1327; G->thunkpos= yythunkpos1327;
  5911. }
  5912. { int yypos1328= G->pos, yythunkpos1328= G->thunkpos; if (!yy_Newline(G)) { goto l1328; } goto l1324;
  5913. l1328:; G->pos= yypos1328; G->thunkpos= yythunkpos1328;
  5914. } if (!yymatchDot(G)) goto l1324; goto l1323;
  5915. l1324:; G->pos= yypos1324; G->thunkpos= yythunkpos1324;
  5916. } if (!yymatchChar(G, '$')) goto l1321; yyText(G, G->begin, G->end); if (!( IEP_POST )) goto l1321;
  5917. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  5918. return 1;
  5919. l1321:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5920. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  5921. return 0;
  5922. }
  5923. YY_RULE(int) yy_InlineEquationSingle(GREG *G)
  5924. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5925. yyprintf((stderr, "%s\n", "InlineEquationSingle"));
  5926. { int yypos1330= G->pos, yythunkpos1330= G->thunkpos; if (!yymatchChar(G, '$')) goto l1330; goto l1329;
  5927. l1330:; G->pos= yypos1330; G->thunkpos= yythunkpos1330;
  5928. }
  5929. { int yypos1331= G->pos, yythunkpos1331= G->thunkpos; if (!yymatchChar(G, '\\')) goto l1331; goto l1329;
  5930. l1331:; G->pos= yypos1331; G->thunkpos= yythunkpos1331;
  5931. } if (!yy_Nonspacechar(G)) { goto l1329; } if (!yymatchChar(G, '$')) goto l1329;
  5932. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  5933. return 1;
  5934. l1329:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5935. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  5936. return 0;
  5937. }
  5938. YY_RULE(int) yy_InlineEquation(GREG *G)
  5939. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5940. yyprintf((stderr, "%s\n", "InlineEquation")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1332; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1332; if (!yymatchChar(G, '$')) goto l1332; yyText(G, G->begin, G->end); if (!( IEP_PRE )) goto l1332;
  5941. { int yypos1333= G->pos, yythunkpos1333= G->thunkpos; if (!yy_InlineEquationSingle(G)) { goto l1334; } goto l1333;
  5942. l1334:; G->pos= yypos1333; G->thunkpos= yythunkpos1333; if (!yy_InlineEquationMultiple(G)) { goto l1332; }
  5943. }
  5944. l1333:;
  5945. { int yypos1335= G->pos, yythunkpos1335= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l1335; goto l1332;
  5946. l1335:; G->pos= yypos1335; G->thunkpos= yythunkpos1335;
  5947. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1332; yyDo(G, yy_1_InlineEquation, G->begin, G->end);
  5948. yyprintf((stderr, " ok %s @ %s\n", "InlineEquation", G->buf+G->pos));
  5949. return 1;
  5950. l1332:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5951. yyprintf((stderr, " fail %s @ %s\n", "InlineEquation", G->buf+G->pos));
  5952. return 0;
  5953. }
  5954. YY_RULE(int) yy_Spacechar(GREG *G)
  5955. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5956. yyprintf((stderr, "%s\n", "Spacechar"));
  5957. { int yypos1337= G->pos, yythunkpos1337= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1338; goto l1337;
  5958. l1338:; G->pos= yypos1337; G->thunkpos= yythunkpos1337; if (!yymatchChar(G, '\t')) goto l1336;
  5959. }
  5960. l1337:;
  5961. yyprintf((stderr, " ok %s @ %s\n", "Spacechar", G->buf+G->pos));
  5962. return 1;
  5963. l1336:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5964. yyprintf((stderr, " fail %s @ %s\n", "Spacechar", G->buf+G->pos));
  5965. return 0;
  5966. }
  5967. YY_RULE(int) yy_FencedCodeBlockEnd(GREG *G)
  5968. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5969. yyprintf((stderr, "%s\n", "FencedCodeBlockEnd")); if (!yymatchString(G, "```")) goto l1339;
  5970. l1340:;
  5971. { int yypos1341= G->pos, yythunkpos1341= G->thunkpos; if (!yy_Spacechar(G)) { goto l1341; } goto l1340;
  5972. l1341:; G->pos= yypos1341; G->thunkpos= yythunkpos1341;
  5973. } if (!yy_Newline(G)) { goto l1339; }
  5974. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockEnd", G->buf+G->pos));
  5975. return 1;
  5976. l1339:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5977. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockEnd", G->buf+G->pos));
  5978. return 0;
  5979. }
  5980. YY_RULE(int) yy_FencedCodeBlockChunk(GREG *G)
  5981. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5982. yyprintf((stderr, "%s\n", "FencedCodeBlockChunk"));
  5983. { int yypos1343= G->pos, yythunkpos1343= G->thunkpos; if (!yy_FencedCodeBlockEnd(G)) { goto l1343; } goto l1342;
  5984. l1343:; G->pos= yypos1343; G->thunkpos= yythunkpos1343;
  5985. }
  5986. l1344:;
  5987. { int yypos1345= G->pos, yythunkpos1345= G->thunkpos;
  5988. { int yypos1346= G->pos, yythunkpos1346= G->thunkpos; if (!yy_Newline(G)) { goto l1346; } goto l1345;
  5989. l1346:; G->pos= yypos1346; G->thunkpos= yythunkpos1346;
  5990. } if (!yymatchDot(G)) goto l1345; goto l1344;
  5991. l1345:; G->pos= yypos1345; G->thunkpos= yythunkpos1345;
  5992. } if (!yy_Newline(G)) { goto l1342; }
  5993. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockChunk", G->buf+G->pos));
  5994. return 1;
  5995. l1342:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5996. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockChunk", G->buf+G->pos));
  5997. return 0;
  5998. }
  5999. YY_RULE(int) yy_FencedCodeBlockStart(GREG *G)
  6000. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6001. yyprintf((stderr, "%s\n", "FencedCodeBlockStart")); if (!yymatchString(G, "```")) goto l1347;
  6002. l1348:;
  6003. { int yypos1349= G->pos, yythunkpos1349= G->thunkpos;
  6004. { int yypos1350= G->pos, yythunkpos1350= G->thunkpos; if (!yy_Newline(G)) { goto l1350; } goto l1349;
  6005. l1350:; G->pos= yypos1350; G->thunkpos= yythunkpos1350;
  6006. }
  6007. { int yypos1351= G->pos, yythunkpos1351= G->thunkpos; if (!yymatchChar(G, '`')) goto l1351; goto l1349;
  6008. l1351:; G->pos= yypos1351; G->thunkpos= yythunkpos1351;
  6009. } if (!yymatchDot(G)) goto l1349; goto l1348;
  6010. l1349:; G->pos= yypos1349; G->thunkpos= yythunkpos1349;
  6011. } if (!yy_Newline(G)) { goto l1347; }
  6012. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStart", G->buf+G->pos));
  6013. return 1;
  6014. l1347:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6015. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStart", G->buf+G->pos));
  6016. return 0;
  6017. }
  6018. YY_RULE(int) yy_VerbatimChunk(GREG *G)
  6019. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6020. yyprintf((stderr, "%s\n", "VerbatimChunk"));
  6021. l1353:;
  6022. { int yypos1354= G->pos, yythunkpos1354= G->thunkpos; if (!yy_BlankLine(G)) { goto l1354; } goto l1353;
  6023. l1354:; G->pos= yypos1354; G->thunkpos= yythunkpos1354;
  6024. } if (!yy_NonblankIndentedLine(G)) { goto l1352; }
  6025. l1355:;
  6026. { int yypos1356= G->pos, yythunkpos1356= G->thunkpos; if (!yy_NonblankIndentedLine(G)) { goto l1356; } goto l1355;
  6027. l1356:; G->pos= yypos1356; G->thunkpos= yythunkpos1356;
  6028. }
  6029. yyprintf((stderr, " ok %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6030. return 1;
  6031. l1352:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6032. yyprintf((stderr, " fail %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6033. return 0;
  6034. }
  6035. YY_RULE(int) yy_IndentedLine(GREG *G)
  6036. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6037. yyprintf((stderr, "%s\n", "IndentedLine")); if (!yy_Indent(G)) { goto l1357; } if (!yy_Line(G)) { goto l1357; }
  6038. yyprintf((stderr, " ok %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6039. return 1;
  6040. l1357:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6041. yyprintf((stderr, " fail %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6042. return 0;
  6043. }
  6044. YY_RULE(int) yy_NonblankIndentedLine(GREG *G)
  6045. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6046. yyprintf((stderr, "%s\n", "NonblankIndentedLine"));
  6047. { int yypos1359= G->pos, yythunkpos1359= G->thunkpos; if (!yy_BlankLine(G)) { goto l1359; } goto l1358;
  6048. l1359:; G->pos= yypos1359; G->thunkpos= yythunkpos1359;
  6049. } if (!yy_IndentedLine(G)) { goto l1358; }
  6050. yyprintf((stderr, " ok %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6051. return 1;
  6052. l1358:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6053. yyprintf((stderr, " fail %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6054. return 0;
  6055. }
  6056. YY_RULE(int) yy_Line(GREG *G)
  6057. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6058. yyprintf((stderr, "%s\n", "Line")); if (!yy_RawLine(G)) { goto l1360; } yyDo(G, yy_1_Line, G->begin, G->end);
  6059. yyprintf((stderr, " ok %s @ %s\n", "Line", G->buf+G->pos));
  6060. return 1;
  6061. l1360:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6062. yyprintf((stderr, " fail %s @ %s\n", "Line", G->buf+G->pos));
  6063. return 0;
  6064. }
  6065. YY_RULE(int) yy_StartList(GREG *G)
  6066. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6067. yyprintf((stderr, "%s\n", "StartList"));
  6068. { int yypos1362= G->pos, yythunkpos1362= G->thunkpos; if (!yymatchDot(G)) goto l1361; G->pos= yypos1362; G->thunkpos= yythunkpos1362;
  6069. } yyDo(G, yy_1_StartList, G->begin, G->end);
  6070. yyprintf((stderr, " ok %s @ %s\n", "StartList", G->buf+G->pos));
  6071. return 1;
  6072. l1361:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6073. yyprintf((stderr, " fail %s @ %s\n", "StartList", G->buf+G->pos));
  6074. return 0;
  6075. }
  6076. YY_RULE(int) yy_BlockQuoteRaw(GREG *G)
  6077. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6078. yyprintf((stderr, "%s\n", "BlockQuoteRaw")); if (!yy_StartList(G)) { goto l1363; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1363; if (!yymatchChar(G, '>')) goto l1363;
  6079. { int yypos1366= G->pos, yythunkpos1366= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1366; goto l1367;
  6080. l1366:; G->pos= yypos1366; G->thunkpos= yythunkpos1366;
  6081. }
  6082. l1367:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1363; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1363; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6083. l1368:;
  6084. { int yypos1369= G->pos, yythunkpos1369= G->thunkpos;
  6085. { int yypos1370= G->pos, yythunkpos1370= G->thunkpos; if (!yymatchChar(G, '>')) goto l1370; goto l1369;
  6086. l1370:; G->pos= yypos1370; G->thunkpos= yythunkpos1370;
  6087. }
  6088. { int yypos1371= G->pos, yythunkpos1371= G->thunkpos; if (!yy_BlankLine(G)) { goto l1371; } goto l1369;
  6089. l1371:; G->pos= yypos1371; G->thunkpos= yythunkpos1371;
  6090. } if (!yy_Line(G)) { goto l1369; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1368;
  6091. l1369:; G->pos= yypos1369; G->thunkpos= yythunkpos1369;
  6092. }
  6093. l1372:;
  6094. { int yypos1373= G->pos, yythunkpos1373= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1373; if (!yy_BlankLine(G)) { goto l1373; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1373; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1372;
  6095. l1373:; G->pos= yypos1373; G->thunkpos= yythunkpos1373;
  6096. }
  6097. l1364:;
  6098. { int yypos1365= G->pos, yythunkpos1365= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1365; if (!yymatchChar(G, '>')) goto l1365;
  6099. { int yypos1374= G->pos, yythunkpos1374= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1374; goto l1375;
  6100. l1374:; G->pos= yypos1374; G->thunkpos= yythunkpos1374;
  6101. }
  6102. l1375:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1365; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1365; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6103. l1376:;
  6104. { int yypos1377= G->pos, yythunkpos1377= G->thunkpos;
  6105. { int yypos1378= G->pos, yythunkpos1378= G->thunkpos; if (!yymatchChar(G, '>')) goto l1378; goto l1377;
  6106. l1378:; G->pos= yypos1378; G->thunkpos= yythunkpos1378;
  6107. }
  6108. { int yypos1379= G->pos, yythunkpos1379= G->thunkpos; if (!yy_BlankLine(G)) { goto l1379; } goto l1377;
  6109. l1379:; G->pos= yypos1379; G->thunkpos= yythunkpos1379;
  6110. } if (!yy_Line(G)) { goto l1377; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1376;
  6111. l1377:; G->pos= yypos1377; G->thunkpos= yythunkpos1377;
  6112. }
  6113. l1380:;
  6114. { int yypos1381= G->pos, yythunkpos1381= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1381; if (!yy_BlankLine(G)) { goto l1381; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1381; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1380;
  6115. l1381:; G->pos= yypos1381; G->thunkpos= yythunkpos1381;
  6116. } goto l1364;
  6117. l1365:; G->pos= yypos1365; G->thunkpos= yythunkpos1365;
  6118. } yyDo(G, yy_5_BlockQuoteRaw, G->begin, G->end);
  6119. yyprintf((stderr, " ok %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6120. return 1;
  6121. l1363:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6122. yyprintf((stderr, " fail %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos));
  6123. return 0;
  6124. }
  6125. YY_RULE(int) yy_Endline(GREG *G)
  6126. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6127. yyprintf((stderr, "%s\n", "Endline"));
  6128. { int yypos1383= G->pos, yythunkpos1383= G->thunkpos; if (!yy_LineBreak(G)) { goto l1384; } goto l1383;
  6129. l1384:; G->pos= yypos1383; G->thunkpos= yythunkpos1383; if (!yy_TerminalEndline(G)) { goto l1385; } goto l1383;
  6130. l1385:; G->pos= yypos1383; G->thunkpos= yythunkpos1383; if (!yy_NormalEndline(G)) { goto l1382; }
  6131. }
  6132. l1383:;
  6133. yyprintf((stderr, " ok %s @ %s\n", "Endline", G->buf+G->pos));
  6134. return 1;
  6135. l1382:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6136. yyprintf((stderr, " fail %s @ %s\n", "Endline", G->buf+G->pos));
  6137. return 0;
  6138. }
  6139. YY_RULE(int) yy_RawLine(GREG *G)
  6140. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6141. yyprintf((stderr, "%s\n", "RawLine"));
  6142. { int yypos1387= G->pos, yythunkpos1387= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1388;
  6143. l1389:;
  6144. { int yypos1390= G->pos, yythunkpos1390= G->thunkpos;
  6145. { int yypos1391= G->pos, yythunkpos1391= G->thunkpos; if (!yymatchChar(G, '\r')) goto l1391; goto l1390;
  6146. l1391:; G->pos= yypos1391; G->thunkpos= yythunkpos1391;
  6147. }
  6148. { int yypos1392= G->pos, yythunkpos1392= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1392; goto l1390;
  6149. l1392:; G->pos= yypos1392; G->thunkpos= yythunkpos1392;
  6150. } if (!yymatchDot(G)) goto l1390; goto l1389;
  6151. l1390:; G->pos= yypos1390; G->thunkpos= yythunkpos1390;
  6152. } if (!yy_Newline(G)) { goto l1388; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1388; goto l1387;
  6153. l1388:; G->pos= yypos1387; G->thunkpos= yythunkpos1387; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1386; if (!yymatchDot(G)) goto l1386;
  6154. l1393:;
  6155. { int yypos1394= G->pos, yythunkpos1394= G->thunkpos; if (!yymatchDot(G)) goto l1394; goto l1393;
  6156. l1394:; G->pos= yypos1394; G->thunkpos= yythunkpos1394;
  6157. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1386; if (!yy_Eof(G)) { goto l1386; }
  6158. }
  6159. l1387:; yyDo(G, yy_1_RawLine, G->begin, G->end);
  6160. yyprintf((stderr, " ok %s @ %s\n", "RawLine", G->buf+G->pos));
  6161. return 1;
  6162. l1386:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6163. yyprintf((stderr, " fail %s @ %s\n", "RawLine", G->buf+G->pos));
  6164. return 0;
  6165. }
  6166. YY_RULE(int) yy_SetextBottom2(GREG *G)
  6167. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6168. yyprintf((stderr, "%s\n", "SetextBottom2")); if (!yymatchChar(G, '-')) goto l1395;
  6169. l1396:;
  6170. { int yypos1397= G->pos, yythunkpos1397= G->thunkpos; if (!yymatchChar(G, '-')) goto l1397; goto l1396;
  6171. l1397:; G->pos= yypos1397; G->thunkpos= yythunkpos1397;
  6172. } if (!yy_Newline(G)) { goto l1395; }
  6173. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6174. return 1;
  6175. l1395:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6176. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6177. return 0;
  6178. }
  6179. YY_RULE(int) yy_SetextBottom1(GREG *G)
  6180. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6181. yyprintf((stderr, "%s\n", "SetextBottom1")); if (!yymatchChar(G, '=')) goto l1398;
  6182. l1399:;
  6183. { int yypos1400= G->pos, yythunkpos1400= G->thunkpos; if (!yymatchChar(G, '=')) goto l1400; goto l1399;
  6184. l1400:; G->pos= yypos1400; G->thunkpos= yythunkpos1400;
  6185. } if (!yy_Newline(G)) { goto l1398; }
  6186. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6187. return 1;
  6188. l1398:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6189. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6190. return 0;
  6191. }
  6192. YY_RULE(int) yy_SetextHeading2(GREG *G)
  6193. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6194. yyprintf((stderr, "%s\n", "SetextHeading2"));
  6195. { int yypos1402= G->pos, yythunkpos1402= G->thunkpos; if (!yy_RawLine(G)) { goto l1401; } if (!yy_SetextBottom2(G)) { goto l1401; } G->pos= yypos1402; G->thunkpos= yythunkpos1402;
  6196. } if (!yy_LocMarker(G)) { goto l1401; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1401;
  6197. { int yypos1405= G->pos, yythunkpos1405= G->thunkpos; if (!yy_Endline(G)) { goto l1405; } goto l1401;
  6198. l1405:; G->pos= yypos1405; G->thunkpos= yythunkpos1405;
  6199. } if (!yy_Inline(G)) { goto l1401; }
  6200. l1403:;
  6201. { int yypos1404= G->pos, yythunkpos1404= G->thunkpos;
  6202. { int yypos1406= G->pos, yythunkpos1406= G->thunkpos; if (!yy_Endline(G)) { goto l1406; } goto l1404;
  6203. l1406:; G->pos= yypos1406; G->thunkpos= yythunkpos1406;
  6204. } if (!yy_Inline(G)) { goto l1404; } goto l1403;
  6205. l1404:; G->pos= yypos1404; G->thunkpos= yythunkpos1404;
  6206. } if (!yy_Sp(G)) { goto l1401; } if (!yy_Newline(G)) { goto l1401; } if (!yy_SetextBottom2(G)) { goto l1401; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1401; yyDo(G, yy_1_SetextHeading2, G->begin, G->end);
  6207. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6208. return 1;
  6209. l1401:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6210. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading2", G->buf+G->pos));
  6211. return 0;
  6212. }
  6213. YY_RULE(int) yy_SetextHeading1(GREG *G)
  6214. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6215. yyprintf((stderr, "%s\n", "SetextHeading1"));
  6216. { int yypos1408= G->pos, yythunkpos1408= G->thunkpos; if (!yy_RawLine(G)) { goto l1407; } if (!yy_SetextBottom1(G)) { goto l1407; } G->pos= yypos1408; G->thunkpos= yythunkpos1408;
  6217. } if (!yy_LocMarker(G)) { goto l1407; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1407;
  6218. { int yypos1411= G->pos, yythunkpos1411= G->thunkpos; if (!yy_Endline(G)) { goto l1411; } goto l1407;
  6219. l1411:; G->pos= yypos1411; G->thunkpos= yythunkpos1411;
  6220. } if (!yy_Inline(G)) { goto l1407; }
  6221. l1409:;
  6222. { int yypos1410= G->pos, yythunkpos1410= G->thunkpos;
  6223. { int yypos1412= G->pos, yythunkpos1412= G->thunkpos; if (!yy_Endline(G)) { goto l1412; } goto l1410;
  6224. l1412:; G->pos= yypos1412; G->thunkpos= yythunkpos1412;
  6225. } if (!yy_Inline(G)) { goto l1410; } goto l1409;
  6226. l1410:; G->pos= yypos1410; G->thunkpos= yythunkpos1410;
  6227. } if (!yy_Sp(G)) { goto l1407; } if (!yy_Newline(G)) { goto l1407; } if (!yy_SetextBottom1(G)) { goto l1407; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1407; yyDo(G, yy_1_SetextHeading1, G->begin, G->end);
  6228. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6229. return 1;
  6230. l1407:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6231. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading1", G->buf+G->pos));
  6232. return 0;
  6233. }
  6234. YY_RULE(int) yy_SetextHeading(GREG *G)
  6235. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6236. yyprintf((stderr, "%s\n", "SetextHeading"));
  6237. { int yypos1414= G->pos, yythunkpos1414= G->thunkpos; if (!yy_SetextHeading1(G)) { goto l1415; } goto l1414;
  6238. l1415:; G->pos= yypos1414; G->thunkpos= yythunkpos1414; if (!yy_SetextHeading2(G)) { goto l1413; }
  6239. }
  6240. l1414:;
  6241. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6242. return 1;
  6243. l1413:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6244. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6245. return 0;
  6246. }
  6247. YY_RULE(int) yy_Space(GREG *G)
  6248. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6249. yyprintf((stderr, "%s\n", "Space")); if (!yy_Spacechar(G)) { goto l1416; }
  6250. l1417:;
  6251. { int yypos1418= G->pos, yythunkpos1418= G->thunkpos; if (!yy_Spacechar(G)) { goto l1418; } goto l1417;
  6252. l1418:; G->pos= yypos1418; G->thunkpos= yythunkpos1418;
  6253. }
  6254. yyprintf((stderr, " ok %s @ %s\n", "Space", G->buf+G->pos));
  6255. return 1;
  6256. l1416:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6257. yyprintf((stderr, " fail %s @ %s\n", "Space", G->buf+G->pos));
  6258. return 0;
  6259. }
  6260. YY_RULE(int) yy_AtxHeading(GREG *G)
  6261. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6262. yyprintf((stderr, "%s\n", "AtxHeading")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1419; if (!yy_AtxStart(G)) { goto l1419; } yyDo(G, yySet, -1, 0); if (!yy_Space(G)) { goto l1419; } if (!yy_AtxInline(G)) { goto l1419; }
  6263. l1420:;
  6264. { int yypos1421= G->pos, yythunkpos1421= G->thunkpos; if (!yy_AtxInline(G)) { goto l1421; } goto l1420;
  6265. l1421:; G->pos= yypos1421; G->thunkpos= yythunkpos1421;
  6266. }
  6267. { int yypos1422= G->pos, yythunkpos1422= G->thunkpos; if (!yy_Sp(G)) { goto l1422; }
  6268. l1424:;
  6269. { int yypos1425= G->pos, yythunkpos1425= G->thunkpos; if (!yymatchChar(G, '#')) goto l1425; goto l1424;
  6270. l1425:; G->pos= yypos1425; G->thunkpos= yythunkpos1425;
  6271. } if (!yy_Sp(G)) { goto l1422; } goto l1423;
  6272. l1422:; G->pos= yypos1422; G->thunkpos= yythunkpos1422;
  6273. }
  6274. l1423:; if (!yy_Newline(G)) { goto l1419; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1419; yyDo(G, yy_1_AtxHeading, G->begin, G->end);
  6275. yyprintf((stderr, " ok %s @ %s\n", "AtxHeading", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6276. return 1;
  6277. l1419:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6278. yyprintf((stderr, " fail %s @ %s\n", "AtxHeading", G->buf+G->pos));
  6279. return 0;
  6280. }
  6281. YY_RULE(int) yy_AtxStart(GREG *G)
  6282. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6283. yyprintf((stderr, "%s\n", "AtxStart")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1426;
  6284. { int yypos1427= G->pos, yythunkpos1427= G->thunkpos; if (!yymatchString(G, "######")) goto l1428; goto l1427;
  6285. l1428:; G->pos= yypos1427; G->thunkpos= yythunkpos1427; if (!yymatchString(G, "#####")) goto l1429; goto l1427;
  6286. l1429:; G->pos= yypos1427; G->thunkpos= yythunkpos1427; if (!yymatchString(G, "####")) goto l1430; goto l1427;
  6287. l1430:; G->pos= yypos1427; G->thunkpos= yythunkpos1427; if (!yymatchString(G, "###")) goto l1431; goto l1427;
  6288. l1431:; G->pos= yypos1427; G->thunkpos= yythunkpos1427; if (!yymatchString(G, "##")) goto l1432; goto l1427;
  6289. l1432:; G->pos= yypos1427; G->thunkpos= yythunkpos1427; if (!yymatchChar(G, '#')) goto l1426;
  6290. }
  6291. l1427:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1426; yyDo(G, yy_1_AtxStart, G->begin, G->end);
  6292. yyprintf((stderr, " ok %s @ %s\n", "AtxStart", G->buf+G->pos));
  6293. return 1;
  6294. l1426:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6295. yyprintf((stderr, " fail %s @ %s\n", "AtxStart", G->buf+G->pos));
  6296. return 0;
  6297. }
  6298. YY_RULE(int) yy_Inline(GREG *G)
  6299. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6300. yyprintf((stderr, "%s\n", "Inline"));
  6301. { int yypos1434= G->pos, yythunkpos1434= G->thunkpos; if (!yy_Str(G)) { goto l1435; } goto l1434;
  6302. l1435:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Endline(G)) { goto l1436; } goto l1434;
  6303. l1436:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_UlOrStarLine(G)) { goto l1437; } goto l1434;
  6304. l1437:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Space(G)) { goto l1438; } goto l1434;
  6305. l1438:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Strong(G)) { goto l1439; } goto l1434;
  6306. l1439:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Emph(G)) { goto l1440; } goto l1434;
  6307. l1440:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Strike(G)) { goto l1441; } goto l1434;
  6308. l1441:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Image(G)) { goto l1442; } goto l1434;
  6309. l1442:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Link(G)) { goto l1443; } goto l1434;
  6310. l1443:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_NoteReference(G)) { goto l1444; } goto l1434;
  6311. l1444:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_InlineNote(G)) { goto l1445; } goto l1434;
  6312. l1445:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Code(G)) { goto l1446; } goto l1434;
  6313. l1446:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_InlineEquation(G)) { goto l1447; } goto l1434;
  6314. l1447:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Mark(G)) { goto l1448; } goto l1434;
  6315. l1448:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_RawHtml(G)) { goto l1449; } goto l1434;
  6316. l1449:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Entity(G)) { goto l1450; } goto l1434;
  6317. l1450:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_EscapedChar(G)) { goto l1451; } goto l1434;
  6318. l1451:; G->pos= yypos1434; G->thunkpos= yythunkpos1434; if (!yy_Symbol(G)) { goto l1433; }
  6319. }
  6320. l1434:;
  6321. yyprintf((stderr, " ok %s @ %s\n", "Inline", G->buf+G->pos));
  6322. return 1;
  6323. l1433:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6324. yyprintf((stderr, " fail %s @ %s\n", "Inline", G->buf+G->pos));
  6325. return 0;
  6326. }
  6327. YY_RULE(int) yy_Sp(GREG *G)
  6328. {
  6329. yyprintf((stderr, "%s\n", "Sp"));
  6330. l1453:;
  6331. { int yypos1454= G->pos, yythunkpos1454= G->thunkpos; if (!yy_Spacechar(G)) { goto l1454; } goto l1453;
  6332. l1454:; G->pos= yypos1454; G->thunkpos= yythunkpos1454;
  6333. }
  6334. yyprintf((stderr, " ok %s @ %s\n", "Sp", G->buf+G->pos));
  6335. return 1;
  6336. }
  6337. YY_RULE(int) yy_AtxInline(GREG *G)
  6338. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6339. yyprintf((stderr, "%s\n", "AtxInline"));
  6340. { int yypos1456= G->pos, yythunkpos1456= G->thunkpos; if (!yy_Newline(G)) { goto l1456; } goto l1455;
  6341. l1456:; G->pos= yypos1456; G->thunkpos= yythunkpos1456;
  6342. }
  6343. { int yypos1457= G->pos, yythunkpos1457= G->thunkpos; if (!yy_Sp(G)) { goto l1457; }
  6344. l1458:;
  6345. { int yypos1459= G->pos, yythunkpos1459= G->thunkpos; if (!yymatchChar(G, '#')) goto l1459; goto l1458;
  6346. l1459:; G->pos= yypos1459; G->thunkpos= yythunkpos1459;
  6347. } if (!yy_Sp(G)) { goto l1457; } if (!yy_Newline(G)) { goto l1457; } goto l1455;
  6348. l1457:; G->pos= yypos1457; G->thunkpos= yythunkpos1457;
  6349. } if (!yy_Inline(G)) { goto l1455; }
  6350. yyprintf((stderr, " ok %s @ %s\n", "AtxInline", G->buf+G->pos));
  6351. return 1;
  6352. l1455:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6353. yyprintf((stderr, " fail %s @ %s\n", "AtxInline", G->buf+G->pos));
  6354. return 0;
  6355. }
  6356. YY_RULE(int) yy_Inlines(GREG *G)
  6357. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6358. yyprintf((stderr, "%s\n", "Inlines"));
  6359. { int yypos1463= G->pos, yythunkpos1463= G->thunkpos;
  6360. { int yypos1465= G->pos, yythunkpos1465= G->thunkpos; if (!yy_Endline(G)) { goto l1465; } goto l1464;
  6361. l1465:; G->pos= yypos1465; G->thunkpos= yythunkpos1465;
  6362. } if (!yy_Inline(G)) { goto l1464; } goto l1463;
  6363. l1464:; G->pos= yypos1463; G->thunkpos= yythunkpos1463; if (!yy_Endline(G)) { goto l1460; }
  6364. { int yypos1466= G->pos, yythunkpos1466= G->thunkpos; if (!yy_Inline(G)) { goto l1460; } G->pos= yypos1466; G->thunkpos= yythunkpos1466;
  6365. }
  6366. }
  6367. l1463:;
  6368. l1461:;
  6369. { int yypos1462= G->pos, yythunkpos1462= G->thunkpos;
  6370. { int yypos1467= G->pos, yythunkpos1467= G->thunkpos;
  6371. { int yypos1469= G->pos, yythunkpos1469= G->thunkpos; if (!yy_Endline(G)) { goto l1469; } goto l1468;
  6372. l1469:; G->pos= yypos1469; G->thunkpos= yythunkpos1469;
  6373. } if (!yy_Inline(G)) { goto l1468; } goto l1467;
  6374. l1468:; G->pos= yypos1467; G->thunkpos= yythunkpos1467; if (!yy_Endline(G)) { goto l1462; }
  6375. { int yypos1470= G->pos, yythunkpos1470= G->thunkpos; if (!yy_Inline(G)) { goto l1462; } G->pos= yypos1470; G->thunkpos= yythunkpos1470;
  6376. }
  6377. }
  6378. l1467:; goto l1461;
  6379. l1462:; G->pos= yypos1462; G->thunkpos= yythunkpos1462;
  6380. }
  6381. { int yypos1471= G->pos, yythunkpos1471= G->thunkpos; if (!yy_Endline(G)) { goto l1471; } goto l1472;
  6382. l1471:; G->pos= yypos1471; G->thunkpos= yythunkpos1471;
  6383. }
  6384. l1472:;
  6385. yyprintf((stderr, " ok %s @ %s\n", "Inlines", G->buf+G->pos));
  6386. return 1;
  6387. l1460:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6388. yyprintf((stderr, " fail %s @ %s\n", "Inlines", G->buf+G->pos));
  6389. return 0;
  6390. }
  6391. YY_RULE(int) yy_NonindentSpace(GREG *G)
  6392. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6393. yyprintf((stderr, "%s\n", "NonindentSpace"));
  6394. { int yypos1474= G->pos, yythunkpos1474= G->thunkpos; if (!yymatchString(G, " ")) goto l1475; goto l1474;
  6395. l1475:; G->pos= yypos1474; G->thunkpos= yythunkpos1474; if (!yymatchString(G, " ")) goto l1476; goto l1474;
  6396. l1476:; G->pos= yypos1474; G->thunkpos= yythunkpos1474; if (!yymatchChar(G, ' ')) goto l1477; goto l1474;
  6397. l1477:; G->pos= yypos1474; G->thunkpos= yythunkpos1474; if (!yymatchString(G, "")) goto l1473;
  6398. }
  6399. l1474:;
  6400. yyprintf((stderr, " ok %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6401. return 1;
  6402. l1473:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6403. yyprintf((stderr, " fail %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6404. return 0;
  6405. }
  6406. YY_RULE(int) yy_Plain(GREG *G)
  6407. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6408. yyprintf((stderr, "%s\n", "Plain")); if (!yy_Inlines(G)) { goto l1478; }
  6409. yyprintf((stderr, " ok %s @ %s\n", "Plain", G->buf+G->pos));
  6410. return 1;
  6411. l1478:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6412. yyprintf((stderr, " fail %s @ %s\n", "Plain", G->buf+G->pos));
  6413. return 0;
  6414. }
  6415. YY_RULE(int) yy_Para(GREG *G)
  6416. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6417. yyprintf((stderr, "%s\n", "Para")); if (!yy_NonindentSpace(G)) { goto l1479; } if (!yy_Inlines(G)) { goto l1479; } if (!yy_BlankLine(G)) { goto l1479; }
  6418. l1480:;
  6419. { int yypos1481= G->pos, yythunkpos1481= G->thunkpos; if (!yy_BlankLine(G)) { goto l1481; } goto l1480;
  6420. l1481:; G->pos= yypos1481; G->thunkpos= yythunkpos1481;
  6421. }
  6422. yyprintf((stderr, " ok %s @ %s\n", "Para", G->buf+G->pos));
  6423. return 1;
  6424. l1479:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6425. yyprintf((stderr, " fail %s @ %s\n", "Para", G->buf+G->pos));
  6426. return 0;
  6427. }
  6428. YY_RULE(int) yy_StyleBlock(GREG *G)
  6429. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6430. yyprintf((stderr, "%s\n", "StyleBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1482; if (!yy_LocMarker(G)) { goto l1482; } yyDo(G, yySet, -1, 0); if (!yy_InStyleTags(G)) { goto l1482; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1482;
  6431. l1483:;
  6432. { int yypos1484= G->pos, yythunkpos1484= G->thunkpos; if (!yy_BlankLine(G)) { goto l1484; } goto l1483;
  6433. l1484:; G->pos= yypos1484; G->thunkpos= yythunkpos1484;
  6434. } yyDo(G, yy_1_StyleBlock, G->begin, G->end);
  6435. yyprintf((stderr, " ok %s @ %s\n", "StyleBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6436. return 1;
  6437. l1482:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6438. yyprintf((stderr, " fail %s @ %s\n", "StyleBlock", G->buf+G->pos));
  6439. return 0;
  6440. }
  6441. YY_RULE(int) yy_HtmlBlock(GREG *G)
  6442. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6443. yyprintf((stderr, "%s\n", "HtmlBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1485; if (!yy_LocMarker(G)) { goto l1485; } yyDo(G, yySet, -1, 0);
  6444. { int yypos1486= G->pos, yythunkpos1486= G->thunkpos; if (!yy_HtmlBlockInTags(G)) { goto l1487; } goto l1486;
  6445. l1487:; G->pos= yypos1486; G->thunkpos= yythunkpos1486; if (!yy_HtmlComment(G)) { goto l1488; } goto l1486;
  6446. l1488:; G->pos= yypos1486; G->thunkpos= yythunkpos1486; if (!yy_HtmlBlockSelfClosing(G)) { goto l1485; }
  6447. }
  6448. l1486:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1485; if (!yy_BlankLine(G)) { goto l1485; }
  6449. l1489:;
  6450. { int yypos1490= G->pos, yythunkpos1490= G->thunkpos; if (!yy_BlankLine(G)) { goto l1490; } goto l1489;
  6451. l1490:; G->pos= yypos1490; G->thunkpos= yythunkpos1490;
  6452. } yyDo(G, yy_1_HtmlBlock, G->begin, G->end);
  6453. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6454. return 1;
  6455. l1485:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6456. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlock", G->buf+G->pos));
  6457. return 0;
  6458. }
  6459. YY_RULE(int) yy_BulletList(GREG *G)
  6460. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6461. yyprintf((stderr, "%s\n", "BulletList"));
  6462. { int yypos1492= G->pos, yythunkpos1492= G->thunkpos; if (!yy_Bullet(G)) { goto l1491; } G->pos= yypos1492; G->thunkpos= yythunkpos1492;
  6463. }
  6464. { int yypos1493= G->pos, yythunkpos1493= G->thunkpos; if (!yy_ListTight(G)) { goto l1494; } goto l1493;
  6465. l1494:; G->pos= yypos1493; G->thunkpos= yythunkpos1493; if (!yy_ListLoose(G)) { goto l1491; }
  6466. }
  6467. l1493:;
  6468. yyprintf((stderr, " ok %s @ %s\n", "BulletList", G->buf+G->pos));
  6469. return 1;
  6470. l1491:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6471. yyprintf((stderr, " fail %s @ %s\n", "BulletList", G->buf+G->pos));
  6472. return 0;
  6473. }
  6474. YY_RULE(int) yy_OrderedList(GREG *G)
  6475. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6476. yyprintf((stderr, "%s\n", "OrderedList"));
  6477. { int yypos1496= G->pos, yythunkpos1496= G->thunkpos; if (!yy_Enumerator(G)) { goto l1495; } G->pos= yypos1496; G->thunkpos= yythunkpos1496;
  6478. }
  6479. { int yypos1497= G->pos, yythunkpos1497= G->thunkpos; if (!yy_ListTight(G)) { goto l1498; } goto l1497;
  6480. l1498:; G->pos= yypos1497; G->thunkpos= yythunkpos1497; if (!yy_ListLoose(G)) { goto l1495; }
  6481. }
  6482. l1497:;
  6483. yyprintf((stderr, " ok %s @ %s\n", "OrderedList", G->buf+G->pos));
  6484. return 1;
  6485. l1495:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6486. yyprintf((stderr, " fail %s @ %s\n", "OrderedList", G->buf+G->pos));
  6487. return 0;
  6488. }
  6489. YY_RULE(int) yy_Heading(GREG *G)
  6490. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6491. yyprintf((stderr, "%s\n", "Heading"));
  6492. { int yypos1500= G->pos, yythunkpos1500= G->thunkpos; if (!yy_SetextHeading(G)) { goto l1501; } goto l1500;
  6493. l1501:; G->pos= yypos1500; G->thunkpos= yythunkpos1500; if (!yy_AtxHeading(G)) { goto l1499; }
  6494. }
  6495. l1500:;
  6496. yyprintf((stderr, " ok %s @ %s\n", "Heading", G->buf+G->pos));
  6497. return 1;
  6498. l1499:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6499. yyprintf((stderr, " fail %s @ %s\n", "Heading", G->buf+G->pos));
  6500. return 0;
  6501. }
  6502. YY_RULE(int) yy_HorizontalRule(GREG *G)
  6503. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6504. yyprintf((stderr, "%s\n", "HorizontalRule")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1502; if (!yy_NonindentSpace(G)) { goto l1502; }
  6505. { int yypos1503= G->pos, yythunkpos1503= G->thunkpos; if (!yymatchChar(G, '*')) goto l1504; if (!yy_Sp(G)) { goto l1504; } if (!yymatchChar(G, '*')) goto l1504; if (!yy_Sp(G)) { goto l1504; } if (!yymatchChar(G, '*')) goto l1504;
  6506. l1505:;
  6507. { int yypos1506= G->pos, yythunkpos1506= G->thunkpos; if (!yy_Sp(G)) { goto l1506; } if (!yymatchChar(G, '*')) goto l1506; goto l1505;
  6508. l1506:; G->pos= yypos1506; G->thunkpos= yythunkpos1506;
  6509. } goto l1503;
  6510. l1504:; G->pos= yypos1503; G->thunkpos= yythunkpos1503; if (!yymatchChar(G, '-')) goto l1507; if (!yy_Sp(G)) { goto l1507; } if (!yymatchChar(G, '-')) goto l1507; if (!yy_Sp(G)) { goto l1507; } if (!yymatchChar(G, '-')) goto l1507;
  6511. l1508:;
  6512. { int yypos1509= G->pos, yythunkpos1509= G->thunkpos; if (!yy_Sp(G)) { goto l1509; } if (!yymatchChar(G, '-')) goto l1509; goto l1508;
  6513. l1509:; G->pos= yypos1509; G->thunkpos= yythunkpos1509;
  6514. } goto l1503;
  6515. l1507:; G->pos= yypos1503; G->thunkpos= yythunkpos1503; if (!yymatchChar(G, '_')) goto l1502; if (!yy_Sp(G)) { goto l1502; } if (!yymatchChar(G, '_')) goto l1502; if (!yy_Sp(G)) { goto l1502; } if (!yymatchChar(G, '_')) goto l1502;
  6516. l1510:;
  6517. { int yypos1511= G->pos, yythunkpos1511= G->thunkpos; if (!yy_Sp(G)) { goto l1511; } if (!yymatchChar(G, '_')) goto l1511; goto l1510;
  6518. l1511:; G->pos= yypos1511; G->thunkpos= yythunkpos1511;
  6519. }
  6520. }
  6521. l1503:; if (!yy_Sp(G)) { goto l1502; } if (!yy_Newline(G)) { goto l1502; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1502; if (!yy_BlankLine(G)) { goto l1502; }
  6522. l1512:;
  6523. { int yypos1513= G->pos, yythunkpos1513= G->thunkpos; if (!yy_BlankLine(G)) { goto l1513; } goto l1512;
  6524. l1513:; G->pos= yypos1513; G->thunkpos= yythunkpos1513;
  6525. } yyDo(G, yy_1_HorizontalRule, G->begin, G->end);
  6526. yyprintf((stderr, " ok %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6527. return 1;
  6528. l1502:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6529. yyprintf((stderr, " fail %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6530. return 0;
  6531. }
  6532. YY_RULE(int) yy_Reference(GREG *G)
  6533. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 3, 0);
  6534. yyprintf((stderr, "%s\n", "Reference")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1514; if (!yy_LocMarker(G)) { goto l1514; } yyDo(G, yySet, -3, 0); if (!yy_NonindentSpace(G)) { goto l1514; }
  6535. { int yypos1515= G->pos, yythunkpos1515= G->thunkpos; if (!yymatchString(G, "[]")) goto l1515; goto l1514;
  6536. l1515:; G->pos= yypos1515; G->thunkpos= yythunkpos1515;
  6537. } if (!yy_Label(G)) { goto l1514; } yyDo(G, yySet, -2, 0); if (!yymatchChar(G, ':')) goto l1514; if (!yy_Spnl(G)) { goto l1514; } if (!yy_RefSrc(G)) { goto l1514; } yyDo(G, yySet, -1, 0); if (!yy_RefTitle(G)) { goto l1514; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1514; if (!yy_BlankLine(G)) { goto l1514; }
  6538. l1516:;
  6539. { int yypos1517= G->pos, yythunkpos1517= G->thunkpos; if (!yy_BlankLine(G)) { goto l1517; } goto l1516;
  6540. l1517:; G->pos= yypos1517; G->thunkpos= yythunkpos1517;
  6541. } yyDo(G, yy_1_Reference, G->begin, G->end);
  6542. yyprintf((stderr, " ok %s @ %s\n", "Reference", G->buf+G->pos)); yyDo(G, yyPop, 3, 0);
  6543. return 1;
  6544. l1514:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6545. yyprintf((stderr, " fail %s @ %s\n", "Reference", G->buf+G->pos));
  6546. return 0;
  6547. }
  6548. YY_RULE(int) yy_Note(GREG *G)
  6549. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6550. yyprintf((stderr, "%s\n", "Note")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l1518; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1518; if (!yy_LocMarker(G)) { goto l1518; } yyDo(G, yySet, -1, 0); if (!yy_NonindentSpace(G)) { goto l1518; } if (!yy_RawNoteReference(G)) { goto l1518; } if (!yymatchChar(G, ':')) goto l1518; if (!yy_Sp(G)) { goto l1518; } if (!yy_RawNoteBlock(G)) { goto l1518; }
  6551. l1519:;
  6552. { int yypos1520= G->pos, yythunkpos1520= G->thunkpos;
  6553. { int yypos1521= G->pos, yythunkpos1521= G->thunkpos; if (!yy_Indent(G)) { goto l1520; } G->pos= yypos1521; G->thunkpos= yythunkpos1521;
  6554. } if (!yy_RawNoteBlock(G)) { goto l1520; } goto l1519;
  6555. l1520:; G->pos= yypos1520; G->thunkpos= yythunkpos1520;
  6556. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1518; yyDo(G, yy_1_Note, G->begin, G->end);
  6557. yyprintf((stderr, " ok %s @ %s\n", "Note", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6558. return 1;
  6559. l1518:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6560. yyprintf((stderr, " fail %s @ %s\n", "Note", G->buf+G->pos));
  6561. return 0;
  6562. }
  6563. YY_RULE(int) yy_DisplayFormula(GREG *G)
  6564. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6565. yyprintf((stderr, "%s\n", "DisplayFormula")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1522; if (!yy_NonindentSpace(G)) { goto l1522; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1522; if (!yymatchString(G, "$$")) goto l1522;
  6566. l1523:;
  6567. { int yypos1524= G->pos, yythunkpos1524= G->thunkpos;
  6568. { int yypos1525= G->pos, yythunkpos1525= G->thunkpos; if (!yymatchChar(G, '$')) goto l1525; goto l1524;
  6569. l1525:; G->pos= yypos1525; G->thunkpos= yythunkpos1525;
  6570. } if (!yymatchDot(G)) goto l1524; goto l1523;
  6571. l1524:; G->pos= yypos1524; G->thunkpos= yythunkpos1524;
  6572. } if (!yymatchString(G, "$$")) goto l1522; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1522;
  6573. l1526:;
  6574. { int yypos1527= G->pos, yythunkpos1527= G->thunkpos; if (!yy_Spacechar(G)) { goto l1527; } goto l1526;
  6575. l1527:; G->pos= yypos1527; G->thunkpos= yythunkpos1527;
  6576. } if (!yy_Newline(G)) { goto l1522; } yyDo(G, yy_1_DisplayFormula, G->begin, G->end);
  6577. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  6578. return 1;
  6579. l1522:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6580. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  6581. return 0;
  6582. }
  6583. YY_RULE(int) yy_FencedCodeBlock(GREG *G)
  6584. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6585. yyprintf((stderr, "%s\n", "FencedCodeBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1528; if (!yy_LocMarker(G)) { goto l1528; } yyDo(G, yySet, -1, 0); if (!yy_FencedCodeBlockStart(G)) { goto l1528; }
  6586. l1529:;
  6587. { int yypos1530= G->pos, yythunkpos1530= G->thunkpos; if (!yy_FencedCodeBlockChunk(G)) { goto l1530; } goto l1529;
  6588. l1530:; G->pos= yypos1530; G->thunkpos= yythunkpos1530;
  6589. } if (!yy_FencedCodeBlockEnd(G)) { goto l1528; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1528; yyDo(G, yy_1_FencedCodeBlock, G->begin, G->end);
  6590. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6591. return 1;
  6592. l1528:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6593. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlock", G->buf+G->pos));
  6594. return 0;
  6595. }
  6596. YY_RULE(int) yy_Verbatim(GREG *G)
  6597. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6598. yyprintf((stderr, "%s\n", "Verbatim")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1531; if (!yy_LocMarker(G)) { goto l1531; } yyDo(G, yySet, -1, 0); if (!yy_VerbatimChunk(G)) { goto l1531; }
  6599. l1532:;
  6600. { int yypos1533= G->pos, yythunkpos1533= G->thunkpos; if (!yy_VerbatimChunk(G)) { goto l1533; } goto l1532;
  6601. l1533:; G->pos= yypos1533; G->thunkpos= yythunkpos1533;
  6602. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1531; yyDo(G, yy_1_Verbatim, G->begin, G->end);
  6603. yyprintf((stderr, " ok %s @ %s\n", "Verbatim", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6604. return 1;
  6605. l1531:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6606. yyprintf((stderr, " fail %s @ %s\n", "Verbatim", G->buf+G->pos));
  6607. return 0;
  6608. }
  6609. YY_RULE(int) yy_BlockQuote(GREG *G)
  6610. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6611. yyprintf((stderr, "%s\n", "BlockQuote")); if (!yy_BlockQuoteRaw(G)) { goto l1534; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_BlockQuote, G->begin, G->end);
  6612. yyprintf((stderr, " ok %s @ %s\n", "BlockQuote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6613. return 1;
  6614. l1534:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6615. yyprintf((stderr, " fail %s @ %s\n", "BlockQuote", G->buf+G->pos));
  6616. return 0;
  6617. }
  6618. YY_RULE(int) yy_BlankLine(GREG *G)
  6619. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6620. yyprintf((stderr, "%s\n", "BlankLine")); if (!yy_Sp(G)) { goto l1535; } if (!yy_Newline(G)) { goto l1535; }
  6621. yyprintf((stderr, " ok %s @ %s\n", "BlankLine", G->buf+G->pos));
  6622. return 1;
  6623. l1535:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6624. yyprintf((stderr, " fail %s @ %s\n", "BlankLine", G->buf+G->pos));
  6625. return 0;
  6626. }
  6627. YY_RULE(int) yy_FrontMatterEndMark(GREG *G)
  6628. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6629. yyprintf((stderr, "%s\n", "FrontMatterEndMark"));
  6630. { int yypos1537= G->pos, yythunkpos1537= G->thunkpos; if (!yymatchString(G, "---")) goto l1538; goto l1537;
  6631. l1538:; G->pos= yypos1537; G->thunkpos= yythunkpos1537; if (!yymatchString(G, "...")) goto l1536;
  6632. }
  6633. l1537:;
  6634. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  6635. return 1;
  6636. l1536:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6637. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  6638. return 0;
  6639. }
  6640. YY_RULE(int) yy_FrontMatterBlock(GREG *G)
  6641. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6642. yyprintf((stderr, "%s\n", "FrontMatterBlock"));
  6643. { int yypos1540= G->pos, yythunkpos1540= G->thunkpos; if (!yy_FrontMatterEndMark(G)) { goto l1540; } goto l1539;
  6644. l1540:; G->pos= yypos1540; G->thunkpos= yythunkpos1540;
  6645. }
  6646. l1541:;
  6647. { int yypos1542= G->pos, yythunkpos1542= G->thunkpos;
  6648. { int yypos1543= G->pos, yythunkpos1543= G->thunkpos; if (!yy_Newline(G)) { goto l1543; } goto l1542;
  6649. l1543:; G->pos= yypos1543; G->thunkpos= yythunkpos1543;
  6650. } if (!yymatchDot(G)) goto l1542; goto l1541;
  6651. l1542:; G->pos= yypos1542; G->thunkpos= yythunkpos1542;
  6652. } if (!yy_Newline(G)) { goto l1539; }
  6653. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  6654. return 1;
  6655. l1539:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6656. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  6657. return 0;
  6658. }
  6659. YY_RULE(int) yy_Newline(GREG *G)
  6660. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6661. yyprintf((stderr, "%s\n", "Newline"));
  6662. { int yypos1545= G->pos, yythunkpos1545= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1546; goto l1545;
  6663. l1546:; G->pos= yypos1545; G->thunkpos= yythunkpos1545; if (!yymatchChar(G, '\r')) goto l1544;
  6664. { int yypos1547= G->pos, yythunkpos1547= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1547; goto l1548;
  6665. l1547:; G->pos= yypos1547; G->thunkpos= yythunkpos1547;
  6666. }
  6667. l1548:;
  6668. }
  6669. l1545:;
  6670. yyprintf((stderr, " ok %s @ %s\n", "Newline", G->buf+G->pos));
  6671. return 1;
  6672. l1544:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6673. yyprintf((stderr, " fail %s @ %s\n", "Newline", G->buf+G->pos));
  6674. return 0;
  6675. }
  6676. YY_RULE(int) yy_LocMarker(GREG *G)
  6677. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6678. yyprintf((stderr, "%s\n", "LocMarker"));
  6679. { int yypos1550= G->pos, yythunkpos1550= G->thunkpos; if (!yymatchDot(G)) goto l1549; G->pos= yypos1550; G->thunkpos= yythunkpos1550;
  6680. } yyDo(G, yy_1_LocMarker, G->begin, G->end);
  6681. yyprintf((stderr, " ok %s @ %s\n", "LocMarker", G->buf+G->pos));
  6682. return 1;
  6683. l1549:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6684. yyprintf((stderr, " fail %s @ %s\n", "LocMarker", G->buf+G->pos));
  6685. return 0;
  6686. }
  6687. YY_RULE(int) yy_Block(GREG *G)
  6688. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6689. yyprintf((stderr, "%s\n", "Block"));
  6690. l1552:;
  6691. { int yypos1553= G->pos, yythunkpos1553= G->thunkpos; if (!yy_BlankLine(G)) { goto l1553; } goto l1552;
  6692. l1553:; G->pos= yypos1553; G->thunkpos= yythunkpos1553;
  6693. }
  6694. { int yypos1554= G->pos, yythunkpos1554= G->thunkpos; if (!yy_BlockQuote(G)) { goto l1555; } goto l1554;
  6695. l1555:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_Verbatim(G)) { goto l1556; } goto l1554;
  6696. l1556:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_FencedCodeBlock(G)) { goto l1557; } goto l1554;
  6697. l1557:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_DisplayFormula(G)) { goto l1558; } goto l1554;
  6698. l1558:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_Note(G)) { goto l1559; } goto l1554;
  6699. l1559:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_Reference(G)) { goto l1560; } goto l1554;
  6700. l1560:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_HorizontalRule(G)) { goto l1561; } goto l1554;
  6701. l1561:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_Heading(G)) { goto l1562; } goto l1554;
  6702. l1562:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_OrderedList(G)) { goto l1563; } goto l1554;
  6703. l1563:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_BulletList(G)) { goto l1564; } goto l1554;
  6704. l1564:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_HtmlBlock(G)) { goto l1565; } goto l1554;
  6705. l1565:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_StyleBlock(G)) { goto l1566; } goto l1554;
  6706. l1566:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_Para(G)) { goto l1567; } goto l1554;
  6707. l1567:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yy_Plain(G)) { goto l1551; }
  6708. }
  6709. l1554:;
  6710. yyprintf((stderr, " ok %s @ %s\n", "Block", G->buf+G->pos));
  6711. return 1;
  6712. l1551:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6713. yyprintf((stderr, " fail %s @ %s\n", "Block", G->buf+G->pos));
  6714. return 0;
  6715. }
  6716. YY_RULE(int) yy_FrontMatter(GREG *G)
  6717. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6718. yyprintf((stderr, "%s\n", "FrontMatter")); if (!yy_LocMarker(G)) { goto l1568; } yyDo(G, yySet, -1, 0);
  6719. { int yypos1569= G->pos, yythunkpos1569= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_FRONTMATTER) )) goto l1569; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1569; if (!yymatchString(G, "---")) goto l1569; if (!yy_Newline(G)) { goto l1569; }
  6720. l1571:;
  6721. { int yypos1572= G->pos, yythunkpos1572= G->thunkpos; if (!yy_FrontMatterBlock(G)) { goto l1572; } goto l1571;
  6722. l1572:; G->pos= yypos1572; G->thunkpos= yythunkpos1572;
  6723. } if (!yy_FrontMatterEndMark(G)) { goto l1569; } if (!yy_Newline(G)) { goto l1569; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1569; yyDo(G, yy_1_FrontMatter, G->begin, G->end); goto l1570;
  6724. l1569:; G->pos= yypos1569; G->thunkpos= yythunkpos1569;
  6725. }
  6726. l1570:;
  6727. yyprintf((stderr, " ok %s @ %s\n", "FrontMatter", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6728. return 1;
  6729. l1568:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6730. yyprintf((stderr, " fail %s @ %s\n", "FrontMatter", G->buf+G->pos));
  6731. return 0;
  6732. }
  6733. YY_RULE(int) yy_Doc(GREG *G)
  6734. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6735. yyprintf((stderr, "%s\n", "Doc")); if (!yy_FrontMatter(G)) { goto l1573; }
  6736. l1574:;
  6737. { int yypos1575= G->pos, yythunkpos1575= G->thunkpos; if (!yy_Block(G)) { goto l1575; } goto l1574;
  6738. l1575:; G->pos= yypos1575; G->thunkpos= yythunkpos1575;
  6739. }
  6740. yyprintf((stderr, " ok %s @ %s\n", "Doc", G->buf+G->pos));
  6741. return 1;
  6742. l1573:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6743. yyprintf((stderr, " fail %s @ %s\n", "Doc", G->buf+G->pos));
  6744. return 0;
  6745. }
  6746. #ifndef YY_PART
  6747. typedef int (*yyrule)(GREG *G);
  6748. YY_PARSE(int) YY_NAME(parse_from)(GREG *G, yyrule yystart)
  6749. {
  6750. int yyok;
  6751. if (!G->buflen)
  6752. {
  6753. G->buflen= YY_BUFFER_START_SIZE;
  6754. G->buf= (char *)YY_ALLOC(G->buflen, G->data);
  6755. G->textlen= YY_BUFFER_START_SIZE;
  6756. G->text= (char *)YY_ALLOC(G->textlen, G->data);
  6757. G->thunkslen= YY_STACK_SIZE;
  6758. G->thunks= (yythunk *)YY_ALLOC(sizeof(yythunk) * G->thunkslen, G->data);
  6759. G->valslen= YY_STACK_SIZE;
  6760. G->vals= (YYSTYPE*)YY_ALLOC(sizeof(YYSTYPE) * G->valslen, G->data);
  6761. G->begin= G->end= G->pos= G->limit= G->thunkpos= 0;
  6762. }
  6763. G->pos = 0;
  6764. G->begin= G->end= G->pos;
  6765. G->thunkpos= 0;
  6766. G->val= G->vals;
  6767. yyok= yystart(G);
  6768. if (yyok) yyDone(G);
  6769. yyCommit(G);
  6770. return yyok;
  6771. (void)yyrefill(NULL);
  6772. (void)yymatchDot(NULL);
  6773. (void)yymatchChar(NULL, 0);
  6774. (void)yymatchString(NULL, NULL);
  6775. (void)yymatchClass(NULL, NULL);
  6776. (void)yyDo(NULL, NULL, 0, 0);
  6777. (void)yyText(NULL, 0, 0);
  6778. (void)yyDone(NULL);
  6779. (void)yyCommit(NULL);
  6780. (void)yyAccept(NULL, 0);
  6781. (void)yyPush(NULL, NULL, 0, NULL, NULL);
  6782. (void)yyPop(NULL, NULL, 0, NULL, NULL);
  6783. (void)yySet(NULL, NULL, 0, NULL, NULL);
  6784. }
  6785. YY_PARSE(int) YY_NAME(parse)(GREG *G)
  6786. {
  6787. return YY_NAME(parse_from)(G, yy_Doc);
  6788. }
  6789. YY_PARSE(GREG *) YY_NAME(parse_new)(YY_XTYPE data)
  6790. {
  6791. GREG *G = (GREG *)YY_CALLOC(1, sizeof(GREG), G->data);
  6792. G->data = data;
  6793. return G;
  6794. }
  6795. YY_PARSE(void) YY_NAME(parse_free)(GREG *G)
  6796. {
  6797. YY_FREE(G->buf);
  6798. YY_FREE(G->text);
  6799. YY_FREE(G->thunks);
  6800. YY_FREE(G->vals);
  6801. YY_FREE(G);
  6802. }
  6803. #endif
  6804. /* PEG Markdown Highlight
  6805. * Copyright 2011-2016 Ali Rantakari -- http://hasseg.org
  6806. * Licensed under the GPL2+ and MIT licenses (see LICENSE for more info).
  6807. *
  6808. * pmh_parser_foot.c
  6809. *
  6810. * Code to be appended to the end of the parser code generated from the
  6811. * PEG grammar.
  6812. */
  6813. static void _parse(parser_data *p_data, yyrule start_rule)
  6814. {
  6815. GREG *g = YY_NAME(parse_new)(p_data);
  6816. if (start_rule == NULL)
  6817. YY_NAME(parse)(g);
  6818. else
  6819. YY_NAME(parse_from)(g, start_rule);
  6820. YY_NAME(parse_free)(g);
  6821. pmh_PRINTF("\n\n");
  6822. }
  6823. static void parse_markdown(parser_data *p_data)
  6824. {
  6825. pmh_PRINTF("\nPARSING DOCUMENT: ");
  6826. _parse(p_data, NULL);
  6827. }
  6828. static void parse_references(parser_data *p_data)
  6829. {
  6830. pmh_PRINTF("\nPARSING REFERENCES: ");
  6831. p_data->parsing_only_references = true;
  6832. _parse(p_data, yy_References);
  6833. p_data->parsing_only_references = false;
  6834. p_data->references = p_data->head_elems[pmh_REFERENCE];
  6835. p_data->head_elems[pmh_REFERENCE] = NULL;
  6836. }