1
0

pmh_parser.c 348 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090
  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 249
  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); /* 249 */
  1091. YY_RULE(int) yy_RawNoteReference(GREG *G); /* 248 */
  1092. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G); /* 247 */
  1093. YY_RULE(int) yy_AlphanumericAscii(GREG *G); /* 246 */
  1094. YY_RULE(int) yy_Quoted(GREG *G); /* 245 */
  1095. YY_RULE(int) yy_HtmlTag(GREG *G); /* 244 */
  1096. YY_RULE(int) yy_MarkTagClose(GREG *G); /* 243 */
  1097. YY_RULE(int) yy_MarkTagText(GREG *G); /* 242 */
  1098. YY_RULE(int) yy_MarkTagOpen(GREG *G); /* 241 */
  1099. YY_RULE(int) yy_Ticks5(GREG *G); /* 240 */
  1100. YY_RULE(int) yy_Ticks4(GREG *G); /* 239 */
  1101. YY_RULE(int) yy_Ticks3(GREG *G); /* 238 */
  1102. YY_RULE(int) yy_Ticks2(GREG *G); /* 237 */
  1103. YY_RULE(int) yy_Ticks1(GREG *G); /* 236 */
  1104. YY_RULE(int) yy_SkipBlock(GREG *G); /* 235 */
  1105. YY_RULE(int) yy_References(GREG *G); /* 234 */
  1106. YY_RULE(int) yy_EmptyTitle(GREG *G); /* 233 */
  1107. YY_RULE(int) yy_RefTitleParens(GREG *G); /* 232 */
  1108. YY_RULE(int) yy_RefTitleDouble(GREG *G); /* 231 */
  1109. YY_RULE(int) yy_RefTitleSingle(GREG *G); /* 230 */
  1110. YY_RULE(int) yy_LabelInline(GREG *G); /* 229 */
  1111. YY_RULE(int) yy_RefTitle(GREG *G); /* 228 */
  1112. YY_RULE(int) yy_RefSrc(GREG *G); /* 227 */
  1113. YY_RULE(int) yy_AutoLinkEmail(GREG *G); /* 226 */
  1114. YY_RULE(int) yy_AutoLinkUrl(GREG *G); /* 225 */
  1115. YY_RULE(int) yy_ImageSizeHeight(GREG *G); /* 224 */
  1116. YY_RULE(int) yy_ImageSizeWidth(GREG *G); /* 223 */
  1117. YY_RULE(int) yy_ImageSizeComplete(GREG *G); /* 222 */
  1118. YY_RULE(int) yy_TitleDoubleExt(GREG *G); /* 221 */
  1119. YY_RULE(int) yy_TitleSingleExt(GREG *G); /* 220 */
  1120. YY_RULE(int) yy_TitleDouble(GREG *G); /* 219 */
  1121. YY_RULE(int) yy_TitleSingle(GREG *G); /* 218 */
  1122. YY_RULE(int) yy_SourceContents(GREG *G); /* 217 */
  1123. YY_RULE(int) yy_ImageSize(GREG *G); /* 216 */
  1124. YY_RULE(int) yy_TitleExt(GREG *G); /* 215 */
  1125. YY_RULE(int) yy_Title(GREG *G); /* 214 */
  1126. YY_RULE(int) yy_Source(GREG *G); /* 213 */
  1127. YY_RULE(int) yy_Label(GREG *G); /* 212 */
  1128. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G); /* 211 */
  1129. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G); /* 210 */
  1130. YY_RULE(int) yy_AutoLink(GREG *G); /* 209 */
  1131. YY_RULE(int) yy_ReferenceLink(GREG *G); /* 208 */
  1132. YY_RULE(int) yy_ExplicitLinkSize(GREG *G); /* 207 */
  1133. YY_RULE(int) yy_ExplicitLink(GREG *G); /* 206 */
  1134. YY_RULE(int) yy_StrongUl(GREG *G); /* 205 */
  1135. YY_RULE(int) yy_StrongStar(GREG *G); /* 204 */
  1136. YY_RULE(int) yy_Whitespace(GREG *G); /* 203 */
  1137. YY_RULE(int) yy_EmphUl(GREG *G); /* 202 */
  1138. YY_RULE(int) yy_EmphStar(GREG *G); /* 201 */
  1139. YY_RULE(int) yy_StarLine(GREG *G); /* 200 */
  1140. YY_RULE(int) yy_UlLine(GREG *G); /* 199 */
  1141. YY_RULE(int) yy_SpecialChar(GREG *G); /* 198 */
  1142. YY_RULE(int) yy_Eof(GREG *G); /* 197 */
  1143. YY_RULE(int) yy_NormalEndline(GREG *G); /* 196 */
  1144. YY_RULE(int) yy_TerminalEndline(GREG *G); /* 195 */
  1145. YY_RULE(int) yy_LineBreak(GREG *G); /* 194 */
  1146. YY_RULE(int) yy_CharEntity(GREG *G); /* 193 */
  1147. YY_RULE(int) yy_DecEntity(GREG *G); /* 192 */
  1148. YY_RULE(int) yy_HexEntity(GREG *G); /* 191 */
  1149. YY_RULE(int) yy_Alphanumeric(GREG *G); /* 190 */
  1150. YY_RULE(int) yy_NormalChar(GREG *G); /* 189 */
  1151. YY_RULE(int) yy_Symbol(GREG *G); /* 188 */
  1152. YY_RULE(int) yy_EscapedChar(GREG *G); /* 187 */
  1153. YY_RULE(int) yy_Entity(GREG *G); /* 186 */
  1154. YY_RULE(int) yy_RawHtml(GREG *G); /* 185 */
  1155. YY_RULE(int) yy_Mark(GREG *G); /* 184 */
  1156. YY_RULE(int) yy_Code(GREG *G); /* 183 */
  1157. YY_RULE(int) yy_InlineNote(GREG *G); /* 182 */
  1158. YY_RULE(int) yy_NoteReference(GREG *G); /* 181 */
  1159. YY_RULE(int) yy_Link(GREG *G); /* 180 */
  1160. YY_RULE(int) yy_Image(GREG *G); /* 179 */
  1161. YY_RULE(int) yy_Strike(GREG *G); /* 178 */
  1162. YY_RULE(int) yy_Emph(GREG *G); /* 177 */
  1163. YY_RULE(int) yy_Strong(GREG *G); /* 176 */
  1164. YY_RULE(int) yy_UlOrStarLine(GREG *G); /* 175 */
  1165. YY_RULE(int) yy_Str(GREG *G); /* 174 */
  1166. YY_RULE(int) yy_InStyleTags(GREG *G); /* 173 */
  1167. YY_RULE(int) yy_StyleClose(GREG *G); /* 172 */
  1168. YY_RULE(int) yy_StyleOpen(GREG *G); /* 171 */
  1169. YY_RULE(int) yy_HtmlBlockType(GREG *G); /* 170 */
  1170. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G); /* 169 */
  1171. YY_RULE(int) yy_HtmlComment(GREG *G); /* 168 */
  1172. YY_RULE(int) yy_HtmlBlockInTags(GREG *G); /* 167 */
  1173. YY_RULE(int) yy_HtmlBlockHead(GREG *G); /* 166 */
  1174. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G); /* 165 */
  1175. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G); /* 164 */
  1176. YY_RULE(int) yy_HtmlBlockScript(GREG *G); /* 163 */
  1177. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G); /* 162 */
  1178. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G); /* 161 */
  1179. YY_RULE(int) yy_HtmlBlockTr(GREG *G); /* 160 */
  1180. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G); /* 159 */
  1181. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G); /* 158 */
  1182. YY_RULE(int) yy_HtmlBlockThead(GREG *G); /* 157 */
  1183. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G); /* 156 */
  1184. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G); /* 155 */
  1185. YY_RULE(int) yy_HtmlBlockTh(GREG *G); /* 154 */
  1186. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G); /* 153 */
  1187. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G); /* 152 */
  1188. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G); /* 151 */
  1189. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G); /* 150 */
  1190. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G); /* 149 */
  1191. YY_RULE(int) yy_HtmlBlockTd(GREG *G); /* 148 */
  1192. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G); /* 147 */
  1193. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G); /* 146 */
  1194. YY_RULE(int) yy_HtmlBlockTbody(GREG *G); /* 145 */
  1195. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G); /* 144 */
  1196. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G); /* 143 */
  1197. YY_RULE(int) yy_HtmlBlockLi(GREG *G); /* 142 */
  1198. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G); /* 141 */
  1199. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G); /* 140 */
  1200. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G); /* 139 */
  1201. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G); /* 138 */
  1202. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G); /* 137 */
  1203. YY_RULE(int) yy_HtmlBlockDt(GREG *G); /* 136 */
  1204. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G); /* 135 */
  1205. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G); /* 134 */
  1206. YY_RULE(int) yy_HtmlBlockDd(GREG *G); /* 133 */
  1207. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G); /* 132 */
  1208. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G); /* 131 */
  1209. YY_RULE(int) yy_HtmlBlockUl(GREG *G); /* 130 */
  1210. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G); /* 129 */
  1211. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G); /* 128 */
  1212. YY_RULE(int) yy_HtmlBlockTable(GREG *G); /* 127 */
  1213. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G); /* 126 */
  1214. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G); /* 125 */
  1215. YY_RULE(int) yy_HtmlBlockPre(GREG *G); /* 124 */
  1216. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G); /* 123 */
  1217. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G); /* 122 */
  1218. YY_RULE(int) yy_HtmlBlockP(GREG *G); /* 121 */
  1219. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G); /* 120 */
  1220. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G); /* 119 */
  1221. YY_RULE(int) yy_HtmlBlockOl(GREG *G); /* 118 */
  1222. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G); /* 117 */
  1223. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G); /* 116 */
  1224. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G); /* 115 */
  1225. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G); /* 114 */
  1226. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G); /* 113 */
  1227. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G); /* 112 */
  1228. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G); /* 111 */
  1229. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G); /* 110 */
  1230. YY_RULE(int) yy_HtmlBlockMenu(GREG *G); /* 109 */
  1231. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G); /* 108 */
  1232. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G); /* 107 */
  1233. YY_RULE(int) yy_HtmlBlockH6(GREG *G); /* 106 */
  1234. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G); /* 105 */
  1235. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G); /* 104 */
  1236. YY_RULE(int) yy_HtmlBlockH5(GREG *G); /* 103 */
  1237. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G); /* 102 */
  1238. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G); /* 101 */
  1239. YY_RULE(int) yy_HtmlBlockH4(GREG *G); /* 100 */
  1240. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G); /* 99 */
  1241. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G); /* 98 */
  1242. YY_RULE(int) yy_HtmlBlockH3(GREG *G); /* 97 */
  1243. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G); /* 96 */
  1244. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G); /* 95 */
  1245. YY_RULE(int) yy_HtmlBlockH2(GREG *G); /* 94 */
  1246. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G); /* 93 */
  1247. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G); /* 92 */
  1248. YY_RULE(int) yy_HtmlBlockH1(GREG *G); /* 91 */
  1249. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G); /* 90 */
  1250. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G); /* 89 */
  1251. YY_RULE(int) yy_HtmlBlockForm(GREG *G); /* 88 */
  1252. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G); /* 87 */
  1253. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G); /* 86 */
  1254. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G); /* 85 */
  1255. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G); /* 84 */
  1256. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G); /* 83 */
  1257. YY_RULE(int) yy_HtmlBlockDl(GREG *G); /* 82 */
  1258. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G); /* 81 */
  1259. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G); /* 80 */
  1260. YY_RULE(int) yy_HtmlBlockDiv(GREG *G); /* 79 */
  1261. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G); /* 78 */
  1262. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G); /* 77 */
  1263. YY_RULE(int) yy_HtmlBlockDir(GREG *G); /* 76 */
  1264. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G); /* 75 */
  1265. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G); /* 74 */
  1266. YY_RULE(int) yy_HtmlBlockCenter(GREG *G); /* 73 */
  1267. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G); /* 72 */
  1268. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G); /* 71 */
  1269. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G); /* 70 */
  1270. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G); /* 69 */
  1271. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G); /* 68 */
  1272. YY_RULE(int) yy_HtmlBlockAddress(GREG *G); /* 67 */
  1273. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G); /* 66 */
  1274. YY_RULE(int) yy_HtmlAttribute(GREG *G); /* 65 */
  1275. YY_RULE(int) yy_Spnl(GREG *G); /* 64 */
  1276. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G); /* 63 */
  1277. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G); /* 62 */
  1278. YY_RULE(int) yy_Indent(GREG *G); /* 61 */
  1279. YY_RULE(int) yy_ListBlockLine(GREG *G); /* 60 */
  1280. YY_RULE(int) yy_ListContinuationBlock(GREG *G); /* 59 */
  1281. YY_RULE(int) yy_ListBlock(GREG *G); /* 58 */
  1282. YY_RULE(int) yy_ListItem(GREG *G); /* 57 */
  1283. YY_RULE(int) yy_Enumerator(GREG *G); /* 56 */
  1284. YY_RULE(int) yy_ListItemTight(GREG *G); /* 55 */
  1285. YY_RULE(int) yy_ListLoose(GREG *G); /* 54 */
  1286. YY_RULE(int) yy_ListTight(GREG *G); /* 53 */
  1287. YY_RULE(int) yy_Bullet(GREG *G); /* 52 */
  1288. YY_RULE(int) yy_Nonspacechar(GREG *G); /* 51 */
  1289. YY_RULE(int) yy_InlineEquationMultiple(GREG *G); /* 50 */
  1290. YY_RULE(int) yy_InlineEquationSingle(GREG *G); /* 49 */
  1291. YY_RULE(int) yy_InlineEquation(GREG *G); /* 48 */
  1292. YY_RULE(int) yy_Spacechar(GREG *G); /* 47 */
  1293. YY_RULE(int) yy_FencedCodeBlockEnd(GREG *G); /* 46 */
  1294. YY_RULE(int) yy_FencedCodeBlockChunk(GREG *G); /* 45 */
  1295. YY_RULE(int) yy_FencedCodeBlockStart(GREG *G); /* 44 */
  1296. YY_RULE(int) yy_VerbatimChunk(GREG *G); /* 43 */
  1297. YY_RULE(int) yy_IndentedLine(GREG *G); /* 42 */
  1298. YY_RULE(int) yy_NonblankIndentedLine(GREG *G); /* 41 */
  1299. YY_RULE(int) yy_Line(GREG *G); /* 40 */
  1300. YY_RULE(int) yy_StartList(GREG *G); /* 39 */
  1301. YY_RULE(int) yy_BlockQuoteRaw(GREG *G); /* 38 */
  1302. YY_RULE(int) yy_Endline(GREG *G); /* 37 */
  1303. YY_RULE(int) yy_RawLine(GREG *G); /* 36 */
  1304. YY_RULE(int) yy_SetextBottom2(GREG *G); /* 35 */
  1305. YY_RULE(int) yy_SetextBottom1(GREG *G); /* 34 */
  1306. YY_RULE(int) yy_SetextHeading2(GREG *G); /* 33 */
  1307. YY_RULE(int) yy_SetextHeading1(GREG *G); /* 32 */
  1308. YY_RULE(int) yy_SetextHeading(GREG *G); /* 31 */
  1309. YY_RULE(int) yy_Space(GREG *G); /* 30 */
  1310. YY_RULE(int) yy_AtxHeading(GREG *G); /* 29 */
  1311. YY_RULE(int) yy_AtxStart(GREG *G); /* 28 */
  1312. YY_RULE(int) yy_Inline(GREG *G); /* 27 */
  1313. YY_RULE(int) yy_Sp(GREG *G); /* 26 */
  1314. YY_RULE(int) yy_AtxInline(GREG *G); /* 25 */
  1315. YY_RULE(int) yy_Inlines(GREG *G); /* 24 */
  1316. YY_RULE(int) yy_NonindentSpace(GREG *G); /* 23 */
  1317. YY_RULE(int) yy_Plain(GREG *G); /* 22 */
  1318. YY_RULE(int) yy_Para(GREG *G); /* 21 */
  1319. YY_RULE(int) yy_StyleBlock(GREG *G); /* 20 */
  1320. YY_RULE(int) yy_HtmlBlock(GREG *G); /* 19 */
  1321. YY_RULE(int) yy_BulletList(GREG *G); /* 18 */
  1322. YY_RULE(int) yy_OrderedList(GREG *G); /* 17 */
  1323. YY_RULE(int) yy_Heading(GREG *G); /* 16 */
  1324. YY_RULE(int) yy_HorizontalRule(GREG *G); /* 15 */
  1325. YY_RULE(int) yy_Reference(GREG *G); /* 14 */
  1326. YY_RULE(int) yy_Note(GREG *G); /* 13 */
  1327. YY_RULE(int) yy_DisplayFormula(GREG *G); /* 12 */
  1328. YY_RULE(int) yy_FencedCodeBlock(GREG *G); /* 11 */
  1329. YY_RULE(int) yy_Verbatim(GREG *G); /* 10 */
  1330. YY_RULE(int) yy_BlockQuote(GREG *G); /* 9 */
  1331. YY_RULE(int) yy_BlankLine(GREG *G); /* 8 */
  1332. YY_RULE(int) yy_FrontMatterEndMark(GREG *G); /* 7 */
  1333. YY_RULE(int) yy_FrontMatterBlock(GREG *G); /* 6 */
  1334. YY_RULE(int) yy_Newline(GREG *G); /* 5 */
  1335. YY_RULE(int) yy_LocMarker(GREG *G); /* 4 */
  1336. YY_RULE(int) yy_Block(GREG *G); /* 3 */
  1337. YY_RULE(int) yy_FrontMatter(GREG *G); /* 2 */
  1338. YY_RULE(int) yy_Doc(GREG *G); /* 1 */
  1339. YY_ACTION(void) yy_1_InlineNote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1340. {
  1341. #define s G->val[-1]
  1342. yyprintf((stderr, "do yy_1_InlineNote\n"));
  1343. ADD(elem_s(pmh_NOTE)); ;
  1344. #undef s
  1345. }
  1346. YY_ACTION(void) yy_1_Note(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1347. {
  1348. #define s G->val[-1]
  1349. yyprintf((stderr, "do yy_1_Note\n"));
  1350. ADD(elem_s(pmh_NOTE)); ;
  1351. #undef s
  1352. }
  1353. YY_ACTION(void) yy_1_NoteReference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1354. {
  1355. yyprintf((stderr, "do yy_1_NoteReference\n"));
  1356. ADD(elem(pmh_NOTE)); ;
  1357. }
  1358. YY_ACTION(void) yy_1_RawLine(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1359. {
  1360. yyprintf((stderr, "do yy_1_RawLine\n"));
  1361. yy = elem(pmh_RAW); ;
  1362. }
  1363. YY_ACTION(void) yy_1_Line(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1364. {
  1365. yyprintf((stderr, "do yy_1_Line\n"));
  1366. yy = mk_element((parser_data *)G->data, pmh_RAW, yy->pos, yy->end); ;
  1367. }
  1368. YY_ACTION(void) yy_1_StartList(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1369. {
  1370. yyprintf((stderr, "do yy_1_StartList\n"));
  1371. yy = NULL; ;
  1372. }
  1373. YY_ACTION(void) yy_1_HtmlComment(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1374. {
  1375. #define s G->val[-1]
  1376. yyprintf((stderr, "do yy_1_HtmlComment\n"));
  1377. ADD(elem_s(pmh_COMMENT)); ;
  1378. #undef s
  1379. }
  1380. YY_ACTION(void) yy_1_RawHtml(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1381. {
  1382. #define s G->val[-1]
  1383. yyprintf((stderr, "do yy_1_RawHtml\n"));
  1384. ADD(elem_s(pmh_HTML)); ;
  1385. #undef s
  1386. }
  1387. YY_ACTION(void) yy_1_MarkTagClose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1388. {
  1389. #define s G->val[-1]
  1390. yyprintf((stderr, "do yy_1_MarkTagClose\n"));
  1391. yy = elem_s(pmh_HTML); ;
  1392. #undef s
  1393. }
  1394. YY_ACTION(void) yy_1_MarkTagOpen(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1395. {
  1396. #define s G->val[-1]
  1397. yyprintf((stderr, "do yy_1_MarkTagOpen\n"));
  1398. yy = elem_s(pmh_HTML); ;
  1399. #undef s
  1400. }
  1401. YY_ACTION(void) yy_1_Mark(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1402. {
  1403. #define c G->val[-1]
  1404. #define o G->val[-2]
  1405. yyprintf((stderr, "do yy_1_Mark\n"));
  1406. ADD(o);
  1407. ADD(mk_element((parser_data *)G->data, pmh_MARK, o->end, c->pos));
  1408. ADD(c);
  1409. ;
  1410. #undef c
  1411. #undef o
  1412. }
  1413. YY_ACTION(void) yy_1_Code(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1414. {
  1415. #define s G->val[-1]
  1416. yyprintf((stderr, "do yy_1_Code\n"));
  1417. ADD(elem_s(pmh_CODE)); ;
  1418. #undef s
  1419. }
  1420. YY_ACTION(void) yy_1_Ticks5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1421. {
  1422. yyprintf((stderr, "do yy_1_Ticks5\n"));
  1423. yy = elem(pmh_NO_TYPE); ;
  1424. }
  1425. YY_ACTION(void) yy_1_Ticks4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1426. {
  1427. yyprintf((stderr, "do yy_1_Ticks4\n"));
  1428. yy = elem(pmh_NO_TYPE); ;
  1429. }
  1430. YY_ACTION(void) yy_1_Ticks3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1431. {
  1432. yyprintf((stderr, "do yy_1_Ticks3\n"));
  1433. yy = elem(pmh_NO_TYPE); ;
  1434. }
  1435. YY_ACTION(void) yy_1_Ticks2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1436. {
  1437. yyprintf((stderr, "do yy_1_Ticks2\n"));
  1438. yy = elem(pmh_NO_TYPE); ;
  1439. }
  1440. YY_ACTION(void) yy_1_Ticks1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1441. {
  1442. yyprintf((stderr, "do yy_1_Ticks1\n"));
  1443. yy = elem(pmh_NO_TYPE); ;
  1444. }
  1445. YY_ACTION(void) yy_1_RefSrc(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1446. {
  1447. yyprintf((stderr, "do yy_1_RefSrc\n"));
  1448. yy = mk_notype; yy->address = COPY_YYTEXT_ORIG(); ;
  1449. }
  1450. YY_ACTION(void) yy_2_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1451. {
  1452. #define s G->val[-1]
  1453. yyprintf((stderr, "do yy_2_Label\n"));
  1454. s->pos = s->pos;
  1455. s->end = thunk->end;
  1456. yy = s;
  1457. ;
  1458. #undef s
  1459. }
  1460. YY_ACTION(void) yy_1_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1461. {
  1462. #define s G->val[-1]
  1463. yyprintf((stderr, "do yy_1_Label\n"));
  1464. s->label = COPY_YYTEXT_ORIG(); ;
  1465. #undef s
  1466. }
  1467. YY_ACTION(void) yy_1_Reference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1468. {
  1469. #define r G->val[-1]
  1470. #define l G->val[-2]
  1471. #define s G->val[-3]
  1472. yyprintf((stderr, "do yy_1_Reference\n"));
  1473. pmh_realelement *el = elem_s(pmh_REFERENCE);
  1474. el->label = strdup_or_null(l->label);
  1475. el->address = strdup_or_null(r->address);
  1476. ADD(el);
  1477. FREE_LABEL(l);
  1478. FREE_ADDRESS(r);
  1479. ;
  1480. #undef r
  1481. #undef l
  1482. #undef s
  1483. }
  1484. YY_ACTION(void) yy_3_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1485. {
  1486. #define s G->val[-1]
  1487. yyprintf((stderr, "do yy_3_AutoLinkEmail\n"));
  1488. s->end = thunk->end;
  1489. ADD(s);
  1490. ;
  1491. #undef s
  1492. }
  1493. YY_ACTION(void) yy_2_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1494. {
  1495. #define s G->val[-1]
  1496. yyprintf((stderr, "do yy_2_AutoLinkEmail\n"));
  1497. s->address = COPY_YYTEXT_ORIG(); ;
  1498. #undef s
  1499. }
  1500. YY_ACTION(void) yy_1_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1501. {
  1502. #define s G->val[-1]
  1503. yyprintf((stderr, "do yy_1_AutoLinkEmail\n"));
  1504. s->type = pmh_AUTO_LINK_EMAIL; ;
  1505. #undef s
  1506. }
  1507. YY_ACTION(void) yy_3_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1508. {
  1509. #define s G->val[-1]
  1510. yyprintf((stderr, "do yy_3_AutoLinkUrl\n"));
  1511. s->end = thunk->end;
  1512. ADD(s);
  1513. ;
  1514. #undef s
  1515. }
  1516. YY_ACTION(void) yy_2_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1517. {
  1518. #define s G->val[-1]
  1519. yyprintf((stderr, "do yy_2_AutoLinkUrl\n"));
  1520. s->address = COPY_YYTEXT_ORIG(); ;
  1521. #undef s
  1522. }
  1523. YY_ACTION(void) yy_1_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1524. {
  1525. #define s G->val[-1]
  1526. yyprintf((stderr, "do yy_1_AutoLinkUrl\n"));
  1527. s->type = pmh_AUTO_LINK_URL; ;
  1528. #undef s
  1529. }
  1530. YY_ACTION(void) yy_3_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1531. {
  1532. yyprintf((stderr, "do yy_3_Source\n"));
  1533. yy->address = COPY_YYTEXT_ORIG(); ;
  1534. }
  1535. YY_ACTION(void) yy_2_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1536. {
  1537. yyprintf((stderr, "do yy_2_Source\n"));
  1538. yy->address = COPY_YYTEXT_ORIG(); ;
  1539. }
  1540. YY_ACTION(void) yy_1_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1541. {
  1542. yyprintf((stderr, "do yy_1_Source\n"));
  1543. yy = mk_notype; ;
  1544. }
  1545. YY_ACTION(void) yy_1_ExplicitLinkSize(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1546. {
  1547. #define l G->val[-1]
  1548. #define s G->val[-2]
  1549. yyprintf((stderr, "do yy_1_ExplicitLinkSize\n"));
  1550. yy = elem_s(pmh_LINK);
  1551. if (l->address != NULL)
  1552. yy->address = strdup_or_null(l->address);
  1553. FREE_LABEL(s);
  1554. FREE_ADDRESS(l);
  1555. ;
  1556. #undef l
  1557. #undef s
  1558. }
  1559. YY_ACTION(void) yy_1_ExplicitLink(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1560. {
  1561. #define l G->val[-1]
  1562. #define s G->val[-2]
  1563. yyprintf((stderr, "do yy_1_ExplicitLink\n"));
  1564. yy = elem_s(pmh_LINK);
  1565. if (l->address != NULL)
  1566. yy->address = strdup_or_null(l->address);
  1567. FREE_LABEL(s);
  1568. FREE_ADDRESS(l);
  1569. ;
  1570. #undef l
  1571. #undef s
  1572. }
  1573. YY_ACTION(void) yy_1_ReferenceLinkSingle(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1574. {
  1575. #define s G->val[-1]
  1576. yyprintf((stderr, "do yy_1_ReferenceLinkSingle\n"));
  1577. pmh_realelement *reference = GET_REF(s->label);
  1578. if (reference) {
  1579. yy = elem_s(pmh_LINK);
  1580. yy->label = strdup_or_null(s->label);
  1581. yy->address = strdup_or_null(reference->address);
  1582. } else
  1583. yy = NULL;
  1584. FREE_LABEL(s);
  1585. ;
  1586. #undef s
  1587. }
  1588. YY_ACTION(void) yy_1_ReferenceLinkDouble(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1589. {
  1590. #define l G->val[-1]
  1591. #define s G->val[-2]
  1592. yyprintf((stderr, "do yy_1_ReferenceLinkDouble\n"));
  1593. pmh_realelement *reference = GET_REF(l->label);
  1594. if (reference) {
  1595. yy = elem_s(pmh_LINK);
  1596. yy->label = strdup_or_null(l->label);
  1597. yy->address = strdup_or_null(reference->address);
  1598. } else
  1599. yy = NULL;
  1600. FREE_LABEL(s);
  1601. FREE_LABEL(l);
  1602. ;
  1603. #undef l
  1604. #undef s
  1605. }
  1606. YY_ACTION(void) yy_1_Link(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1607. {
  1608. yyprintf((stderr, "do yy_1_Link\n"));
  1609. if (yy) ADD(yy); ;
  1610. }
  1611. YY_ACTION(void) yy_1_Image(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1612. {
  1613. yyprintf((stderr, "do yy_1_Image\n"));
  1614. if (yy != NULL) {
  1615. yy->type = pmh_IMAGE;
  1616. yy->pos -= 1;
  1617. ADD(yy);
  1618. }
  1619. ;
  1620. }
  1621. YY_ACTION(void) yy_1_Strike(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1622. {
  1623. #define s G->val[-1]
  1624. yyprintf((stderr, "do yy_1_Strike\n"));
  1625. ADD(elem_s(pmh_STRIKE)); ;
  1626. #undef s
  1627. }
  1628. YY_ACTION(void) yy_1_StrongUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1629. {
  1630. #define s G->val[-1]
  1631. yyprintf((stderr, "do yy_1_StrongUl\n"));
  1632. ADD(elem_s(pmh_STRONG)); ;
  1633. #undef s
  1634. }
  1635. YY_ACTION(void) yy_1_StrongStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1636. {
  1637. #define s G->val[-1]
  1638. yyprintf((stderr, "do yy_1_StrongStar\n"));
  1639. ADD(elem_s(pmh_STRONG)); ;
  1640. #undef s
  1641. }
  1642. YY_ACTION(void) yy_1_EmphUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1643. {
  1644. #define s G->val[-1]
  1645. yyprintf((stderr, "do yy_1_EmphUl\n"));
  1646. ADD(elem_s(pmh_EMPH)); ;
  1647. #undef s
  1648. }
  1649. YY_ACTION(void) yy_1_EmphStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1650. {
  1651. #define s G->val[-1]
  1652. yyprintf((stderr, "do yy_1_EmphStar\n"));
  1653. ADD(elem_s(pmh_EMPH)); ;
  1654. #undef s
  1655. }
  1656. YY_ACTION(void) yy_1_Entity(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1657. {
  1658. #define s G->val[-1]
  1659. yyprintf((stderr, "do yy_1_Entity\n"));
  1660. ADD(elem_s(pmh_HTML_ENTITY)); ;
  1661. #undef s
  1662. }
  1663. YY_ACTION(void) yy_1_StyleBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1664. {
  1665. #define s G->val[-1]
  1666. yyprintf((stderr, "do yy_1_StyleBlock\n"));
  1667. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1668. #undef s
  1669. }
  1670. YY_ACTION(void) yy_1_HtmlBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1671. {
  1672. #define s G->val[-1]
  1673. yyprintf((stderr, "do yy_1_HtmlBlock\n"));
  1674. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1675. #undef s
  1676. }
  1677. YY_ACTION(void) yy_1_HtmlBlockH6(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1678. {
  1679. #define s G->val[-1]
  1680. yyprintf((stderr, "do yy_1_HtmlBlockH6\n"));
  1681. ADD(elem_s(pmh_H6)); ;
  1682. #undef s
  1683. }
  1684. YY_ACTION(void) yy_1_HtmlBlockH5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1685. {
  1686. #define s G->val[-1]
  1687. yyprintf((stderr, "do yy_1_HtmlBlockH5\n"));
  1688. ADD(elem_s(pmh_H5)); ;
  1689. #undef s
  1690. }
  1691. YY_ACTION(void) yy_1_HtmlBlockH4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1692. {
  1693. #define s G->val[-1]
  1694. yyprintf((stderr, "do yy_1_HtmlBlockH4\n"));
  1695. ADD(elem_s(pmh_H4)); ;
  1696. #undef s
  1697. }
  1698. YY_ACTION(void) yy_1_HtmlBlockH3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1699. {
  1700. #define s G->val[-1]
  1701. yyprintf((stderr, "do yy_1_HtmlBlockH3\n"));
  1702. ADD(elem_s(pmh_H3)); ;
  1703. #undef s
  1704. }
  1705. YY_ACTION(void) yy_1_HtmlBlockH2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1706. {
  1707. #define s G->val[-1]
  1708. yyprintf((stderr, "do yy_1_HtmlBlockH2\n"));
  1709. ADD(elem_s(pmh_H2)); ;
  1710. #undef s
  1711. }
  1712. YY_ACTION(void) yy_1_HtmlBlockH1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1713. {
  1714. #define s G->val[-1]
  1715. yyprintf((stderr, "do yy_1_HtmlBlockH1\n"));
  1716. ADD(elem_s(pmh_H1)); ;
  1717. #undef s
  1718. }
  1719. YY_ACTION(void) yy_1_Enumerator(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1720. {
  1721. yyprintf((stderr, "do yy_1_Enumerator\n"));
  1722. ADD(elem(pmh_LIST_ENUMERATOR)); ;
  1723. }
  1724. YY_ACTION(void) yy_3_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1725. {
  1726. #define a G->val[-1]
  1727. yyprintf((stderr, "do yy_3_ListContinuationBlock\n"));
  1728. yy = a; ;
  1729. #undef a
  1730. }
  1731. YY_ACTION(void) yy_2_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1732. {
  1733. #define a G->val[-1]
  1734. yyprintf((stderr, "do yy_2_ListContinuationBlock\n"));
  1735. a = cons(yy, a); ;
  1736. #undef a
  1737. }
  1738. YY_ACTION(void) yy_1_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1739. {
  1740. #define a G->val[-1]
  1741. yyprintf((stderr, "do yy_1_ListContinuationBlock\n"));
  1742. if (*yytext == '\0') /* if strlen(yytext) == 0 */
  1743. a = cons(elem(pmh_SEPARATOR), a);
  1744. else
  1745. a = cons(elem(pmh_RAW), a);
  1746. ;
  1747. #undef a
  1748. }
  1749. YY_ACTION(void) yy_3_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1750. {
  1751. #define a G->val[-1]
  1752. yyprintf((stderr, "do yy_3_ListBlock\n"));
  1753. yy = a; ;
  1754. #undef a
  1755. }
  1756. YY_ACTION(void) yy_2_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1757. {
  1758. #define a G->val[-1]
  1759. yyprintf((stderr, "do yy_2_ListBlock\n"));
  1760. a = cons(elem(pmh_RAW), a); ;
  1761. #undef a
  1762. }
  1763. YY_ACTION(void) yy_1_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1764. {
  1765. #define a G->val[-1]
  1766. yyprintf((stderr, "do yy_1_ListBlock\n"));
  1767. a = cons(yy, a); ;
  1768. #undef a
  1769. }
  1770. YY_ACTION(void) yy_3_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1771. {
  1772. #define a G->val[-1]
  1773. yyprintf((stderr, "do yy_3_ListItemTight\n"));
  1774. yy = a; ;
  1775. #undef a
  1776. }
  1777. YY_ACTION(void) yy_2_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1778. {
  1779. #define a G->val[-1]
  1780. yyprintf((stderr, "do yy_2_ListItemTight\n"));
  1781. a = cons(yy, a); ;
  1782. #undef a
  1783. }
  1784. YY_ACTION(void) yy_1_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1785. {
  1786. #define a G->val[-1]
  1787. yyprintf((stderr, "do yy_1_ListItemTight\n"));
  1788. a = cons(yy, a); ;
  1789. #undef a
  1790. }
  1791. YY_ACTION(void) yy_3_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1792. {
  1793. #define a G->val[-1]
  1794. yyprintf((stderr, "do yy_3_ListItem\n"));
  1795. yy = a; ;
  1796. #undef a
  1797. }
  1798. YY_ACTION(void) yy_2_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1799. {
  1800. #define a G->val[-1]
  1801. yyprintf((stderr, "do yy_2_ListItem\n"));
  1802. a = cons(yy, a); ;
  1803. #undef a
  1804. }
  1805. YY_ACTION(void) yy_1_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1806. {
  1807. #define a G->val[-1]
  1808. yyprintf((stderr, "do yy_1_ListItem\n"));
  1809. a = cons(yy, a); ;
  1810. #undef a
  1811. }
  1812. YY_ACTION(void) yy_2_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1813. {
  1814. #define b G->val[-1]
  1815. #define a G->val[-2]
  1816. yyprintf((stderr, "do yy_2_ListLoose\n"));
  1817. pmh_realelement *cur = a;
  1818. while (cur != NULL) {
  1819. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1820. rawlist->children = reverse(cur->children);
  1821. ADD(rawlist);
  1822. cur = cur->next;
  1823. }
  1824. ;
  1825. #undef b
  1826. #undef a
  1827. }
  1828. YY_ACTION(void) yy_1_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1829. {
  1830. #define b G->val[-1]
  1831. #define a G->val[-2]
  1832. yyprintf((stderr, "do yy_1_ListLoose\n"));
  1833. b = cons(etext("\n\n"), b); /* In loose list, \n\n added to end of each element */
  1834. pmh_realelement *el = mk_notype;
  1835. el->children = b;
  1836. a = cons(el, a);
  1837. ;
  1838. #undef b
  1839. #undef a
  1840. }
  1841. YY_ACTION(void) yy_2_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1842. {
  1843. #define a G->val[-1]
  1844. yyprintf((stderr, "do yy_2_ListTight\n"));
  1845. pmh_realelement *cur = a;
  1846. while (cur != NULL) {
  1847. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1848. rawlist->children = reverse(cur->children);
  1849. ADD(rawlist);
  1850. cur = cur->next;
  1851. }
  1852. ;
  1853. #undef a
  1854. }
  1855. YY_ACTION(void) yy_1_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1856. {
  1857. #define a G->val[-1]
  1858. yyprintf((stderr, "do yy_1_ListTight\n"));
  1859. pmh_realelement *el = mk_notype;
  1860. el->children = yy;
  1861. a = cons(el, a);
  1862. ;
  1863. #undef a
  1864. }
  1865. YY_ACTION(void) yy_1_Bullet(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1866. {
  1867. yyprintf((stderr, "do yy_1_Bullet\n"));
  1868. ADD(elem(pmh_LIST_BULLET)); ;
  1869. }
  1870. YY_ACTION(void) yy_1_HorizontalRule(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1871. {
  1872. yyprintf((stderr, "do yy_1_HorizontalRule\n"));
  1873. ADD(elem(pmh_HRULE)); ;
  1874. }
  1875. YY_ACTION(void) yy_1_InlineEquation(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1876. {
  1877. yyprintf((stderr, "do yy_1_InlineEquation\n"));
  1878. ADD(elem(pmh_INLINEEQUATION)); ;
  1879. }
  1880. YY_ACTION(void) yy_1_DisplayFormula(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1881. {
  1882. yyprintf((stderr, "do yy_1_DisplayFormula\n"));
  1883. ADD(elem(pmh_DISPLAYFORMULA)); ;
  1884. }
  1885. YY_ACTION(void) yy_1_FencedCodeBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1886. {
  1887. #define s G->val[-1]
  1888. yyprintf((stderr, "do yy_1_FencedCodeBlock\n"));
  1889. ADD(elem(pmh_FENCEDCODEBLOCK)); ;
  1890. #undef s
  1891. }
  1892. YY_ACTION(void) yy_1_Verbatim(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1893. {
  1894. #define s G->val[-1]
  1895. yyprintf((stderr, "do yy_1_Verbatim\n"));
  1896. ADD(elem_s(pmh_VERBATIM)); ;
  1897. #undef s
  1898. }
  1899. YY_ACTION(void) yy_5_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1900. {
  1901. #define a G->val[-1]
  1902. yyprintf((stderr, "do yy_5_BlockQuoteRaw\n"));
  1903. yy = a; ;
  1904. #undef a
  1905. }
  1906. YY_ACTION(void) yy_4_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1907. {
  1908. #define a G->val[-1]
  1909. yyprintf((stderr, "do yy_4_BlockQuoteRaw\n"));
  1910. a = cons(etext("\n"), a); ;
  1911. #undef a
  1912. }
  1913. YY_ACTION(void) yy_3_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1914. {
  1915. #define a G->val[-1]
  1916. yyprintf((stderr, "do yy_3_BlockQuoteRaw\n"));
  1917. a = cons(yy, a); ;
  1918. #undef a
  1919. }
  1920. YY_ACTION(void) yy_2_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1921. {
  1922. #define a G->val[-1]
  1923. yyprintf((stderr, "do yy_2_BlockQuoteRaw\n"));
  1924. a = cons(yy, a); ;
  1925. #undef a
  1926. }
  1927. YY_ACTION(void) yy_1_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1928. {
  1929. #define a G->val[-1]
  1930. yyprintf((stderr, "do yy_1_BlockQuoteRaw\n"));
  1931. ADD(elem(pmh_BLOCKQUOTE)); ;
  1932. #undef a
  1933. }
  1934. YY_ACTION(void) yy_1_BlockQuote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1935. {
  1936. #define a G->val[-1]
  1937. yyprintf((stderr, "do yy_1_BlockQuote\n"));
  1938. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1939. rawlist->children = reverse(a);
  1940. ADD(rawlist);
  1941. ;
  1942. #undef a
  1943. }
  1944. YY_ACTION(void) yy_1_SetextHeading2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1945. {
  1946. #define s G->val[-1]
  1947. yyprintf((stderr, "do yy_1_SetextHeading2\n"));
  1948. ADD(elem_s(pmh_H2)); ;
  1949. #undef s
  1950. }
  1951. YY_ACTION(void) yy_1_SetextHeading1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1952. {
  1953. #define s G->val[-1]
  1954. yyprintf((stderr, "do yy_1_SetextHeading1\n"));
  1955. ADD(elem_s(pmh_H1)); ;
  1956. #undef s
  1957. }
  1958. YY_ACTION(void) yy_1_AtxHeading(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1959. {
  1960. #define s G->val[-1]
  1961. yyprintf((stderr, "do yy_1_AtxHeading\n"));
  1962. ADD(elem_s(s->type)); ;
  1963. #undef s
  1964. }
  1965. YY_ACTION(void) yy_1_AtxStart(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1966. {
  1967. yyprintf((stderr, "do yy_1_AtxStart\n"));
  1968. yy = elem((pmh_element_type)(pmh_H1 + (strlen(yytext) - 1))); ;
  1969. }
  1970. YY_ACTION(void) yy_1_FrontMatter(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1971. {
  1972. #define s G->val[-1]
  1973. yyprintf((stderr, "do yy_1_FrontMatter\n"));
  1974. ADD(elem(pmh_FRONTMATTER));
  1975. ;
  1976. #undef s
  1977. }
  1978. YY_ACTION(void) yy_1_LocMarker(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1979. {
  1980. yyprintf((stderr, "do yy_1_LocMarker\n"));
  1981. yy = elem(pmh_NO_TYPE); ;
  1982. }
  1983. YY_RULE(int) yy_RawNoteBlock(GREG *G)
  1984. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  1985. yyprintf((stderr, "%s\n", "RawNoteBlock"));
  1986. { int yypos4= G->pos, yythunkpos4= G->thunkpos; if (!yy_BlankLine(G)) { goto l4; } goto l1;
  1987. l4:; G->pos= yypos4; G->thunkpos= yythunkpos4;
  1988. } if (!yy_OptionallyIndentedLine(G)) { goto l1; }
  1989. l2:;
  1990. { int yypos3= G->pos, yythunkpos3= G->thunkpos;
  1991. { int yypos5= G->pos, yythunkpos5= G->thunkpos; if (!yy_BlankLine(G)) { goto l5; } goto l3;
  1992. l5:; G->pos= yypos5; G->thunkpos= yythunkpos5;
  1993. } if (!yy_OptionallyIndentedLine(G)) { goto l3; } goto l2;
  1994. l3:; G->pos= yypos3; G->thunkpos= yythunkpos3;
  1995. }
  1996. l6:;
  1997. { int yypos7= G->pos, yythunkpos7= G->thunkpos; if (!yy_BlankLine(G)) { goto l7; } goto l6;
  1998. l7:; G->pos= yypos7; G->thunkpos= yythunkpos7;
  1999. }
  2000. yyprintf((stderr, " ok %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2001. return 1;
  2002. l1:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2003. yyprintf((stderr, " fail %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2004. return 0;
  2005. }
  2006. YY_RULE(int) yy_RawNoteReference(GREG *G)
  2007. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2008. yyprintf((stderr, "%s\n", "RawNoteReference")); if (!yymatchString(G, "[^")) goto l8;
  2009. { int yypos11= G->pos, yythunkpos11= G->thunkpos; if (!yy_Newline(G)) { goto l11; } goto l8;
  2010. l11:; G->pos= yypos11; G->thunkpos= yythunkpos11;
  2011. }
  2012. { int yypos12= G->pos, yythunkpos12= G->thunkpos; if (!yymatchChar(G, ']')) goto l12; goto l8;
  2013. l12:; G->pos= yypos12; G->thunkpos= yythunkpos12;
  2014. } if (!yymatchDot(G)) goto l8;
  2015. l9:;
  2016. { int yypos10= G->pos, yythunkpos10= G->thunkpos;
  2017. { int yypos13= G->pos, yythunkpos13= G->thunkpos; if (!yy_Newline(G)) { goto l13; } goto l10;
  2018. l13:; G->pos= yypos13; G->thunkpos= yythunkpos13;
  2019. }
  2020. { int yypos14= G->pos, yythunkpos14= G->thunkpos; if (!yymatchChar(G, ']')) goto l14; goto l10;
  2021. l14:; G->pos= yypos14; G->thunkpos= yythunkpos14;
  2022. } if (!yymatchDot(G)) goto l10; goto l9;
  2023. l10:; G->pos= yypos10; G->thunkpos= yythunkpos10;
  2024. } if (!yymatchChar(G, ']')) goto l8;
  2025. yyprintf((stderr, " ok %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2026. return 1;
  2027. l8:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2028. yyprintf((stderr, " fail %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2029. return 0;
  2030. }
  2031. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G)
  2032. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2033. yyprintf((stderr, "%s\n", "ExtendedSpecialChar"));
  2034. { 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;
  2035. 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;
  2036. }
  2037. l16:;
  2038. yyprintf((stderr, " ok %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  2039. return 1;
  2040. l15:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2041. yyprintf((stderr, " fail %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  2042. return 0;
  2043. }
  2044. YY_RULE(int) yy_AlphanumericAscii(GREG *G)
  2045. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2046. 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;
  2047. yyprintf((stderr, " ok %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2048. return 1;
  2049. l18:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2050. yyprintf((stderr, " fail %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2051. return 0;
  2052. }
  2053. YY_RULE(int) yy_Quoted(GREG *G)
  2054. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2055. yyprintf((stderr, "%s\n", "Quoted"));
  2056. { int yypos20= G->pos, yythunkpos20= G->thunkpos; if (!yymatchChar(G, '"')) goto l21;
  2057. l22:;
  2058. { int yypos23= G->pos, yythunkpos23= G->thunkpos;
  2059. { int yypos24= G->pos, yythunkpos24= G->thunkpos; if (!yymatchChar(G, '"')) goto l24; goto l23;
  2060. l24:; G->pos= yypos24; G->thunkpos= yythunkpos24;
  2061. } if (!yymatchDot(G)) goto l23; goto l22;
  2062. l23:; G->pos= yypos23; G->thunkpos= yythunkpos23;
  2063. } if (!yymatchChar(G, '"')) goto l21; goto l20;
  2064. l21:; G->pos= yypos20; G->thunkpos= yythunkpos20; if (!yymatchChar(G, '\'')) goto l19;
  2065. l25:;
  2066. { int yypos26= G->pos, yythunkpos26= G->thunkpos;
  2067. { int yypos27= G->pos, yythunkpos27= G->thunkpos; if (!yymatchChar(G, '\'')) goto l27; goto l26;
  2068. l27:; G->pos= yypos27; G->thunkpos= yythunkpos27;
  2069. } if (!yymatchDot(G)) goto l26; goto l25;
  2070. l26:; G->pos= yypos26; G->thunkpos= yythunkpos26;
  2071. } if (!yymatchChar(G, '\'')) goto l19;
  2072. }
  2073. l20:;
  2074. yyprintf((stderr, " ok %s @ %s\n", "Quoted", G->buf+G->pos));
  2075. return 1;
  2076. l19:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2077. yyprintf((stderr, " fail %s @ %s\n", "Quoted", G->buf+G->pos));
  2078. return 0;
  2079. }
  2080. YY_RULE(int) yy_HtmlTag(GREG *G)
  2081. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2082. yyprintf((stderr, "%s\n", "HtmlTag")); if (!yymatchChar(G, '<')) goto l28; if (!yy_Spnl(G)) { goto l28; }
  2083. { int yypos29= G->pos, yythunkpos29= G->thunkpos; if (!yymatchChar(G, '/')) goto l29; goto l30;
  2084. l29:; G->pos= yypos29; G->thunkpos= yythunkpos29;
  2085. }
  2086. l30:; if (!yy_AlphanumericAscii(G)) { goto l28; }
  2087. l31:;
  2088. { int yypos32= G->pos, yythunkpos32= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l32; } goto l31;
  2089. l32:; G->pos= yypos32; G->thunkpos= yythunkpos32;
  2090. } if (!yy_Spnl(G)) { goto l28; }
  2091. l33:;
  2092. { int yypos34= G->pos, yythunkpos34= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l34; } goto l33;
  2093. l34:; G->pos= yypos34; G->thunkpos= yythunkpos34;
  2094. }
  2095. { int yypos35= G->pos, yythunkpos35= G->thunkpos; if (!yymatchChar(G, '/')) goto l35; goto l36;
  2096. l35:; G->pos= yypos35; G->thunkpos= yythunkpos35;
  2097. }
  2098. l36:; if (!yy_Spnl(G)) { goto l28; } if (!yymatchChar(G, '>')) goto l28;
  2099. yyprintf((stderr, " ok %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2100. return 1;
  2101. l28:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2102. yyprintf((stderr, " fail %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2103. return 0;
  2104. }
  2105. YY_RULE(int) yy_MarkTagClose(GREG *G)
  2106. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2107. 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;
  2108. { int yypos38= G->pos, yythunkpos38= G->thunkpos; if (!yymatchString(G, "mark")) goto l39; goto l38;
  2109. l39:; G->pos= yypos38; G->thunkpos= yythunkpos38; if (!yymatchString(G, "MARK")) goto l37;
  2110. }
  2111. 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);
  2112. yyprintf((stderr, " ok %s @ %s\n", "MarkTagClose", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2113. return 1;
  2114. l37:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2115. yyprintf((stderr, " fail %s @ %s\n", "MarkTagClose", G->buf+G->pos));
  2116. return 0;
  2117. }
  2118. YY_RULE(int) yy_MarkTagText(GREG *G)
  2119. {
  2120. yyprintf((stderr, "%s\n", "MarkTagText"));
  2121. l41:;
  2122. { int yypos42= G->pos, yythunkpos42= G->thunkpos;
  2123. { int yypos43= G->pos, yythunkpos43= G->thunkpos; if (!yy_MarkTagClose(G)) { goto l43; } goto l42;
  2124. l43:; G->pos= yypos43; G->thunkpos= yythunkpos43;
  2125. }
  2126. { int yypos44= G->pos, yythunkpos44= G->thunkpos; if (!yy_RawHtml(G)) { goto l45; } goto l44;
  2127. l45:; G->pos= yypos44; G->thunkpos= yythunkpos44; if (!yymatchDot(G)) goto l42;
  2128. }
  2129. l44:; goto l41;
  2130. l42:; G->pos= yypos42; G->thunkpos= yythunkpos42;
  2131. }
  2132. yyprintf((stderr, " ok %s @ %s\n", "MarkTagText", G->buf+G->pos));
  2133. return 1;
  2134. }
  2135. YY_RULE(int) yy_MarkTagOpen(GREG *G)
  2136. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2137. 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; }
  2138. { int yypos47= G->pos, yythunkpos47= G->thunkpos; if (!yymatchString(G, "mark")) goto l48; goto l47;
  2139. l48:; G->pos= yypos47; G->thunkpos= yythunkpos47; if (!yymatchString(G, "MARK")) goto l46;
  2140. }
  2141. l47:; if (!yy_Spnl(G)) { goto l46; }
  2142. l49:;
  2143. { int yypos50= G->pos, yythunkpos50= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l50; } goto l49;
  2144. l50:; G->pos= yypos50; G->thunkpos= yythunkpos50;
  2145. } 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);
  2146. yyprintf((stderr, " ok %s @ %s\n", "MarkTagOpen", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2147. return 1;
  2148. l46:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2149. yyprintf((stderr, " fail %s @ %s\n", "MarkTagOpen", G->buf+G->pos));
  2150. return 0;
  2151. }
  2152. YY_RULE(int) yy_Ticks5(GREG *G)
  2153. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2154. 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;
  2155. { int yypos52= G->pos, yythunkpos52= G->thunkpos; if (!yymatchChar(G, '`')) goto l52; goto l51;
  2156. l52:; G->pos= yypos52; G->thunkpos= yythunkpos52;
  2157. } yyDo(G, yy_1_Ticks5, G->begin, G->end);
  2158. yyprintf((stderr, " ok %s @ %s\n", "Ticks5", G->buf+G->pos));
  2159. return 1;
  2160. l51:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2161. yyprintf((stderr, " fail %s @ %s\n", "Ticks5", G->buf+G->pos));
  2162. return 0;
  2163. }
  2164. YY_RULE(int) yy_Ticks4(GREG *G)
  2165. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2166. 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;
  2167. { int yypos54= G->pos, yythunkpos54= G->thunkpos; if (!yymatchChar(G, '`')) goto l54; goto l53;
  2168. l54:; G->pos= yypos54; G->thunkpos= yythunkpos54;
  2169. } yyDo(G, yy_1_Ticks4, G->begin, G->end);
  2170. yyprintf((stderr, " ok %s @ %s\n", "Ticks4", G->buf+G->pos));
  2171. return 1;
  2172. l53:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2173. yyprintf((stderr, " fail %s @ %s\n", "Ticks4", G->buf+G->pos));
  2174. return 0;
  2175. }
  2176. YY_RULE(int) yy_Ticks3(GREG *G)
  2177. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2178. 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;
  2179. { int yypos56= G->pos, yythunkpos56= G->thunkpos; if (!yymatchChar(G, '`')) goto l56; goto l55;
  2180. l56:; G->pos= yypos56; G->thunkpos= yythunkpos56;
  2181. } yyDo(G, yy_1_Ticks3, G->begin, G->end);
  2182. yyprintf((stderr, " ok %s @ %s\n", "Ticks3", G->buf+G->pos));
  2183. return 1;
  2184. l55:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2185. yyprintf((stderr, " fail %s @ %s\n", "Ticks3", G->buf+G->pos));
  2186. return 0;
  2187. }
  2188. YY_RULE(int) yy_Ticks2(GREG *G)
  2189. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2190. 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;
  2191. { int yypos58= G->pos, yythunkpos58= G->thunkpos; if (!yymatchChar(G, '`')) goto l58; goto l57;
  2192. l58:; G->pos= yypos58; G->thunkpos= yythunkpos58;
  2193. } yyDo(G, yy_1_Ticks2, G->begin, G->end);
  2194. yyprintf((stderr, " ok %s @ %s\n", "Ticks2", G->buf+G->pos));
  2195. return 1;
  2196. l57:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2197. yyprintf((stderr, " fail %s @ %s\n", "Ticks2", G->buf+G->pos));
  2198. return 0;
  2199. }
  2200. YY_RULE(int) yy_Ticks1(GREG *G)
  2201. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2202. 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;
  2203. { int yypos60= G->pos, yythunkpos60= G->thunkpos; if (!yymatchChar(G, '`')) goto l60; goto l59;
  2204. l60:; G->pos= yypos60; G->thunkpos= yythunkpos60;
  2205. } yyDo(G, yy_1_Ticks1, G->begin, G->end);
  2206. yyprintf((stderr, " ok %s @ %s\n", "Ticks1", G->buf+G->pos));
  2207. return 1;
  2208. l59:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2209. yyprintf((stderr, " fail %s @ %s\n", "Ticks1", G->buf+G->pos));
  2210. return 0;
  2211. }
  2212. YY_RULE(int) yy_SkipBlock(GREG *G)
  2213. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2214. yyprintf((stderr, "%s\n", "SkipBlock"));
  2215. { int yypos62= G->pos, yythunkpos62= G->thunkpos;
  2216. { int yypos66= G->pos, yythunkpos66= G->thunkpos; if (!yy_BlankLine(G)) { goto l66; } goto l63;
  2217. l66:; G->pos= yypos66; G->thunkpos= yythunkpos66;
  2218. } if (!yy_RawLine(G)) { goto l63; }
  2219. l64:;
  2220. { int yypos65= G->pos, yythunkpos65= G->thunkpos;
  2221. { int yypos67= G->pos, yythunkpos67= G->thunkpos; if (!yy_BlankLine(G)) { goto l67; } goto l65;
  2222. l67:; G->pos= yypos67; G->thunkpos= yythunkpos67;
  2223. } if (!yy_RawLine(G)) { goto l65; } goto l64;
  2224. l65:; G->pos= yypos65; G->thunkpos= yythunkpos65;
  2225. }
  2226. l68:;
  2227. { int yypos69= G->pos, yythunkpos69= G->thunkpos; if (!yy_BlankLine(G)) { goto l69; } goto l68;
  2228. l69:; G->pos= yypos69; G->thunkpos= yythunkpos69;
  2229. } goto l62;
  2230. l63:; G->pos= yypos62; G->thunkpos= yythunkpos62; if (!yy_BlankLine(G)) { goto l61; }
  2231. l70:;
  2232. { int yypos71= G->pos, yythunkpos71= G->thunkpos; if (!yy_BlankLine(G)) { goto l71; } goto l70;
  2233. l71:; G->pos= yypos71; G->thunkpos= yythunkpos71;
  2234. }
  2235. }
  2236. l62:;
  2237. yyprintf((stderr, " ok %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2238. return 1;
  2239. l61:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2240. yyprintf((stderr, " fail %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2241. return 0;
  2242. }
  2243. YY_RULE(int) yy_References(GREG *G)
  2244. {
  2245. yyprintf((stderr, "%s\n", "References"));
  2246. l73:;
  2247. { int yypos74= G->pos, yythunkpos74= G->thunkpos;
  2248. { int yypos75= G->pos, yythunkpos75= G->thunkpos; if (!yy_Reference(G)) { goto l76; } goto l75;
  2249. l76:; G->pos= yypos75; G->thunkpos= yythunkpos75; if (!yy_SkipBlock(G)) { goto l74; }
  2250. }
  2251. l75:; goto l73;
  2252. l74:; G->pos= yypos74; G->thunkpos= yythunkpos74;
  2253. }
  2254. yyprintf((stderr, " ok %s @ %s\n", "References", G->buf+G->pos));
  2255. return 1;
  2256. }
  2257. YY_RULE(int) yy_EmptyTitle(GREG *G)
  2258. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2259. yyprintf((stderr, "%s\n", "EmptyTitle")); if (!yymatchString(G, "")) goto l77;
  2260. yyprintf((stderr, " ok %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2261. return 1;
  2262. l77:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2263. yyprintf((stderr, " fail %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2264. return 0;
  2265. }
  2266. YY_RULE(int) yy_RefTitleParens(GREG *G)
  2267. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2268. yyprintf((stderr, "%s\n", "RefTitleParens")); if (!yy_Spnl(G)) { goto l78; } if (!yymatchChar(G, '(')) goto l78;
  2269. l79:;
  2270. { int yypos80= G->pos, yythunkpos80= G->thunkpos;
  2271. { int yypos81= G->pos, yythunkpos81= G->thunkpos;
  2272. { 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;
  2273. l83:; G->pos= yypos82; G->thunkpos= yythunkpos82; if (!yy_Newline(G)) { goto l81; }
  2274. }
  2275. l82:; goto l80;
  2276. l81:; G->pos= yypos81; G->thunkpos= yythunkpos81;
  2277. } if (!yymatchDot(G)) goto l80; goto l79;
  2278. l80:; G->pos= yypos80; G->thunkpos= yythunkpos80;
  2279. } if (!yymatchChar(G, ')')) goto l78;
  2280. yyprintf((stderr, " ok %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2281. return 1;
  2282. l78:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2283. yyprintf((stderr, " fail %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2284. return 0;
  2285. }
  2286. YY_RULE(int) yy_RefTitleDouble(GREG *G)
  2287. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2288. yyprintf((stderr, "%s\n", "RefTitleDouble")); if (!yy_Spnl(G)) { goto l84; } if (!yymatchChar(G, '"')) goto l84;
  2289. l85:;
  2290. { int yypos86= G->pos, yythunkpos86= G->thunkpos;
  2291. { int yypos87= G->pos, yythunkpos87= G->thunkpos;
  2292. { 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;
  2293. l89:; G->pos= yypos88; G->thunkpos= yythunkpos88; if (!yy_Newline(G)) { goto l87; }
  2294. }
  2295. l88:; goto l86;
  2296. l87:; G->pos= yypos87; G->thunkpos= yythunkpos87;
  2297. } if (!yymatchDot(G)) goto l86; goto l85;
  2298. l86:; G->pos= yypos86; G->thunkpos= yythunkpos86;
  2299. } if (!yymatchChar(G, '"')) goto l84;
  2300. yyprintf((stderr, " ok %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2301. return 1;
  2302. l84:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2303. yyprintf((stderr, " fail %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2304. return 0;
  2305. }
  2306. YY_RULE(int) yy_RefTitleSingle(GREG *G)
  2307. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2308. yyprintf((stderr, "%s\n", "RefTitleSingle")); if (!yy_Spnl(G)) { goto l90; } if (!yymatchChar(G, '\'')) goto l90;
  2309. l91:;
  2310. { int yypos92= G->pos, yythunkpos92= G->thunkpos;
  2311. { int yypos93= G->pos, yythunkpos93= G->thunkpos;
  2312. { 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;
  2313. l95:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_Newline(G)) { goto l93; }
  2314. }
  2315. l94:; goto l92;
  2316. l93:; G->pos= yypos93; G->thunkpos= yythunkpos93;
  2317. } if (!yymatchDot(G)) goto l92; goto l91;
  2318. l92:; G->pos= yypos92; G->thunkpos= yythunkpos92;
  2319. } if (!yymatchChar(G, '\'')) goto l90;
  2320. yyprintf((stderr, " ok %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2321. return 1;
  2322. l90:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2323. yyprintf((stderr, " fail %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2324. return 0;
  2325. }
  2326. YY_RULE(int) yy_LabelInline(GREG *G)
  2327. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2328. yyprintf((stderr, "%s\n", "LabelInline"));
  2329. { int yypos97= G->pos, yythunkpos97= G->thunkpos; if (!yy_Str(G)) { goto l98; } goto l97;
  2330. l98:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_Endline(G)) { goto l99; } goto l97;
  2331. l99:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_Space(G)) { goto l100; } goto l97;
  2332. l100:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_RawHtml(G)) { goto l101; } goto l97;
  2333. l101:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_Entity(G)) { goto l102; } goto l97;
  2334. l102:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_EscapedChar(G)) { goto l103; } goto l97;
  2335. l103:; G->pos= yypos97; G->thunkpos= yythunkpos97; if (!yy_Symbol(G)) { goto l96; }
  2336. }
  2337. l97:;
  2338. yyprintf((stderr, " ok %s @ %s\n", "LabelInline", G->buf+G->pos));
  2339. return 1;
  2340. l96:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2341. yyprintf((stderr, " fail %s @ %s\n", "LabelInline", G->buf+G->pos));
  2342. return 0;
  2343. }
  2344. YY_RULE(int) yy_RefTitle(GREG *G)
  2345. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2346. yyprintf((stderr, "%s\n", "RefTitle"));
  2347. { int yypos105= G->pos, yythunkpos105= G->thunkpos; if (!yy_RefTitleSingle(G)) { goto l106; } goto l105;
  2348. l106:; G->pos= yypos105; G->thunkpos= yythunkpos105; if (!yy_RefTitleDouble(G)) { goto l107; } goto l105;
  2349. l107:; G->pos= yypos105; G->thunkpos= yythunkpos105; if (!yy_RefTitleParens(G)) { goto l108; } goto l105;
  2350. l108:; G->pos= yypos105; G->thunkpos= yythunkpos105; if (!yy_EmptyTitle(G)) { goto l104; }
  2351. }
  2352. l105:;
  2353. yyprintf((stderr, " ok %s @ %s\n", "RefTitle", G->buf+G->pos));
  2354. return 1;
  2355. l104:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2356. yyprintf((stderr, " fail %s @ %s\n", "RefTitle", G->buf+G->pos));
  2357. return 0;
  2358. }
  2359. YY_RULE(int) yy_RefSrc(GREG *G)
  2360. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2361. yyprintf((stderr, "%s\n", "RefSrc")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l109; if (!yy_Nonspacechar(G)) { goto l109; }
  2362. l110:;
  2363. { int yypos111= G->pos, yythunkpos111= G->thunkpos; if (!yy_Nonspacechar(G)) { goto l111; } goto l110;
  2364. l111:; G->pos= yypos111; G->thunkpos= yythunkpos111;
  2365. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l109; yyDo(G, yy_1_RefSrc, G->begin, G->end);
  2366. yyprintf((stderr, " ok %s @ %s\n", "RefSrc", G->buf+G->pos));
  2367. return 1;
  2368. l109:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2369. yyprintf((stderr, " fail %s @ %s\n", "RefSrc", G->buf+G->pos));
  2370. return 0;
  2371. }
  2372. YY_RULE(int) yy_AutoLinkEmail(GREG *G)
  2373. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2374. yyprintf((stderr, "%s\n", "AutoLinkEmail")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l112; if (!yy_LocMarker(G)) { goto l112; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '<')) goto l112;
  2375. { int yypos113= G->pos, yythunkpos113= G->thunkpos; if (!yymatchString(G, "mailto:")) goto l113; goto l114;
  2376. l113:; G->pos= yypos113; G->thunkpos= yythunkpos113;
  2377. }
  2378. l114:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l112; 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 l112;
  2379. l115:;
  2380. { int yypos116= G->pos, yythunkpos116= 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 l116; goto l115;
  2381. l116:; G->pos= yypos116; G->thunkpos= yythunkpos116;
  2382. } if (!yymatchChar(G, '@')) goto l112;
  2383. { int yypos119= G->pos, yythunkpos119= G->thunkpos; if (!yy_Newline(G)) { goto l119; } goto l112;
  2384. l119:; G->pos= yypos119; G->thunkpos= yythunkpos119;
  2385. }
  2386. { int yypos120= G->pos, yythunkpos120= G->thunkpos; if (!yymatchChar(G, '>')) goto l120; goto l112;
  2387. l120:; G->pos= yypos120; G->thunkpos= yythunkpos120;
  2388. } if (!yymatchDot(G)) goto l112;
  2389. l117:;
  2390. { int yypos118= G->pos, yythunkpos118= G->thunkpos;
  2391. { int yypos121= G->pos, yythunkpos121= G->thunkpos; if (!yy_Newline(G)) { goto l121; } goto l118;
  2392. l121:; G->pos= yypos121; G->thunkpos= yythunkpos121;
  2393. }
  2394. { int yypos122= G->pos, yythunkpos122= G->thunkpos; if (!yymatchChar(G, '>')) goto l122; goto l118;
  2395. l122:; G->pos= yypos122; G->thunkpos= yythunkpos122;
  2396. } if (!yymatchDot(G)) goto l118; goto l117;
  2397. l118:; G->pos= yypos118; G->thunkpos= yythunkpos118;
  2398. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l112; yyDo(G, yy_2_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '>')) goto l112; yyText(G, G->begin, G->end); if (!(YY_END)) goto l112; yyDo(G, yy_3_AutoLinkEmail, G->begin, G->end);
  2399. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkEmail", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2400. return 1;
  2401. l112:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2402. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkEmail", G->buf+G->pos));
  2403. return 0;
  2404. }
  2405. YY_RULE(int) yy_AutoLinkUrl(GREG *G)
  2406. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2407. yyprintf((stderr, "%s\n", "AutoLinkUrl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l123; if (!yy_LocMarker(G)) { goto l123; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '<')) goto l123; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l123; 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 l123;
  2408. l124:;
  2409. { int yypos125= G->pos, yythunkpos125= 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 l125; goto l124;
  2410. l125:; G->pos= yypos125; G->thunkpos= yythunkpos125;
  2411. } if (!yymatchString(G, "://")) goto l123;
  2412. { int yypos128= G->pos, yythunkpos128= G->thunkpos; if (!yy_Newline(G)) { goto l128; } goto l123;
  2413. l128:; G->pos= yypos128; G->thunkpos= yythunkpos128;
  2414. }
  2415. { int yypos129= G->pos, yythunkpos129= G->thunkpos; if (!yymatchChar(G, '>')) goto l129; goto l123;
  2416. l129:; G->pos= yypos129; G->thunkpos= yythunkpos129;
  2417. } if (!yymatchDot(G)) goto l123;
  2418. l126:;
  2419. { int yypos127= G->pos, yythunkpos127= G->thunkpos;
  2420. { int yypos130= G->pos, yythunkpos130= G->thunkpos; if (!yy_Newline(G)) { goto l130; } goto l127;
  2421. l130:; G->pos= yypos130; G->thunkpos= yythunkpos130;
  2422. }
  2423. { int yypos131= G->pos, yythunkpos131= G->thunkpos; if (!yymatchChar(G, '>')) goto l131; goto l127;
  2424. l131:; G->pos= yypos131; G->thunkpos= yythunkpos131;
  2425. } if (!yymatchDot(G)) goto l127; goto l126;
  2426. l127:; G->pos= yypos127; G->thunkpos= yythunkpos127;
  2427. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l123; yyDo(G, yy_2_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '>')) goto l123; yyText(G, G->begin, G->end); if (!(YY_END)) goto l123; yyDo(G, yy_3_AutoLinkUrl, G->begin, G->end);
  2428. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkUrl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2429. return 1;
  2430. l123:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2431. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkUrl", G->buf+G->pos));
  2432. return 0;
  2433. }
  2434. YY_RULE(int) yy_ImageSizeHeight(GREG *G)
  2435. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2436. yyprintf((stderr, "%s\n", "ImageSizeHeight")); if (!yymatchString(G, "=x")) goto l132; 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;
  2437. l133:;
  2438. { 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;
  2439. l134:; G->pos= yypos134; G->thunkpos= yythunkpos134;
  2440. }
  2441. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2442. return 1;
  2443. l132:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2444. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2445. return 0;
  2446. }
  2447. YY_RULE(int) yy_ImageSizeWidth(GREG *G)
  2448. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2449. yyprintf((stderr, "%s\n", "ImageSizeWidth")); if (!yymatchChar(G, '=')) goto l135; 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 l135;
  2450. l136:;
  2451. { int yypos137= G->pos, yythunkpos137= 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 l137; goto l136;
  2452. l137:; G->pos= yypos137; G->thunkpos= yythunkpos137;
  2453. } if (!yymatchChar(G, 'x')) goto l135;
  2454. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2455. return 1;
  2456. l135:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2457. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2458. return 0;
  2459. }
  2460. YY_RULE(int) yy_ImageSizeComplete(GREG *G)
  2461. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2462. yyprintf((stderr, "%s\n", "ImageSizeComplete")); if (!yymatchChar(G, '=')) goto l138; 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 l138;
  2463. l139:;
  2464. { int yypos140= G->pos, yythunkpos140= 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 l140; goto l139;
  2465. l140:; G->pos= yypos140; G->thunkpos= yythunkpos140;
  2466. } if (!yymatchChar(G, 'x')) goto l138; 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 l138;
  2467. l141:;
  2468. { int yypos142= G->pos, yythunkpos142= 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 l142; goto l141;
  2469. l142:; G->pos= yypos142; G->thunkpos= yythunkpos142;
  2470. }
  2471. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2472. return 1;
  2473. l138:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2474. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2475. return 0;
  2476. }
  2477. YY_RULE(int) yy_TitleDoubleExt(GREG *G)
  2478. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2479. yyprintf((stderr, "%s\n", "TitleDoubleExt")); if (!yymatchChar(G, '"')) goto l143;
  2480. l144:;
  2481. { int yypos145= G->pos, yythunkpos145= G->thunkpos;
  2482. { int yypos146= G->pos, yythunkpos146= G->thunkpos;
  2483. { int yypos147= G->pos, yythunkpos147= G->thunkpos; if (!yymatchChar(G, '"')) goto l148; goto l147;
  2484. l148:; G->pos= yypos147; G->thunkpos= yythunkpos147; if (!yy_Newline(G)) { goto l146; }
  2485. }
  2486. l147:; goto l145;
  2487. l146:; G->pos= yypos146; G->thunkpos= yythunkpos146;
  2488. } if (!yymatchDot(G)) goto l145; goto l144;
  2489. l145:; G->pos= yypos145; G->thunkpos= yythunkpos145;
  2490. } if (!yymatchChar(G, '"')) goto l143;
  2491. yyprintf((stderr, " ok %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2492. return 1;
  2493. l143:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2494. yyprintf((stderr, " fail %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2495. return 0;
  2496. }
  2497. YY_RULE(int) yy_TitleSingleExt(GREG *G)
  2498. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2499. yyprintf((stderr, "%s\n", "TitleSingleExt")); if (!yymatchChar(G, '\'')) goto l149;
  2500. l150:;
  2501. { int yypos151= G->pos, yythunkpos151= G->thunkpos;
  2502. { int yypos152= G->pos, yythunkpos152= G->thunkpos;
  2503. { int yypos153= G->pos, yythunkpos153= G->thunkpos; if (!yymatchChar(G, '\'')) goto l154; goto l153;
  2504. l154:; G->pos= yypos153; G->thunkpos= yythunkpos153; if (!yy_Newline(G)) { goto l152; }
  2505. }
  2506. l153:; goto l151;
  2507. l152:; G->pos= yypos152; G->thunkpos= yythunkpos152;
  2508. } if (!yymatchDot(G)) goto l151; goto l150;
  2509. l151:; G->pos= yypos151; G->thunkpos= yythunkpos151;
  2510. } if (!yymatchChar(G, '\'')) goto l149;
  2511. yyprintf((stderr, " ok %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2512. return 1;
  2513. l149:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2514. yyprintf((stderr, " fail %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2515. return 0;
  2516. }
  2517. YY_RULE(int) yy_TitleDouble(GREG *G)
  2518. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2519. yyprintf((stderr, "%s\n", "TitleDouble")); if (!yymatchChar(G, '"')) goto l155;
  2520. l156:;
  2521. { int yypos157= G->pos, yythunkpos157= G->thunkpos;
  2522. { int yypos158= G->pos, yythunkpos158= G->thunkpos; if (!yymatchChar(G, '"')) goto l158; if (!yy_Sp(G)) { goto l158; }
  2523. { int yypos159= G->pos, yythunkpos159= G->thunkpos; if (!yymatchChar(G, ')')) goto l160; goto l159;
  2524. l160:; G->pos= yypos159; G->thunkpos= yythunkpos159; if (!yy_Newline(G)) { goto l158; }
  2525. }
  2526. l159:; goto l157;
  2527. l158:; G->pos= yypos158; G->thunkpos= yythunkpos158;
  2528. } if (!yymatchDot(G)) goto l157; goto l156;
  2529. l157:; G->pos= yypos157; G->thunkpos= yythunkpos157;
  2530. } if (!yymatchChar(G, '"')) goto l155;
  2531. yyprintf((stderr, " ok %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2532. return 1;
  2533. l155:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2534. yyprintf((stderr, " fail %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2535. return 0;
  2536. }
  2537. YY_RULE(int) yy_TitleSingle(GREG *G)
  2538. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2539. yyprintf((stderr, "%s\n", "TitleSingle")); if (!yymatchChar(G, '\'')) goto l161;
  2540. l162:;
  2541. { int yypos163= G->pos, yythunkpos163= G->thunkpos;
  2542. { int yypos164= G->pos, yythunkpos164= G->thunkpos; if (!yymatchChar(G, '\'')) goto l164; if (!yy_Sp(G)) { goto l164; }
  2543. { int yypos165= G->pos, yythunkpos165= G->thunkpos; if (!yymatchChar(G, ')')) goto l166; goto l165;
  2544. l166:; G->pos= yypos165; G->thunkpos= yythunkpos165; if (!yy_Newline(G)) { goto l164; }
  2545. }
  2546. l165:; goto l163;
  2547. l164:; G->pos= yypos164; G->thunkpos= yythunkpos164;
  2548. } if (!yymatchDot(G)) goto l163; goto l162;
  2549. l163:; G->pos= yypos163; G->thunkpos= yythunkpos163;
  2550. } if (!yymatchChar(G, '\'')) goto l161;
  2551. yyprintf((stderr, " ok %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2552. return 1;
  2553. l161:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2554. yyprintf((stderr, " fail %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2555. return 0;
  2556. }
  2557. YY_RULE(int) yy_SourceContents(GREG *G)
  2558. {
  2559. yyprintf((stderr, "%s\n", "SourceContents"));
  2560. l168:;
  2561. { int yypos169= G->pos, yythunkpos169= G->thunkpos;
  2562. { int yypos170= G->pos, yythunkpos170= G->thunkpos;
  2563. { int yypos174= G->pos, yythunkpos174= G->thunkpos; if (!yymatchChar(G, '(')) goto l174; goto l171;
  2564. l174:; G->pos= yypos174; G->thunkpos= yythunkpos174;
  2565. }
  2566. { int yypos175= G->pos, yythunkpos175= G->thunkpos; if (!yymatchChar(G, ')')) goto l175; goto l171;
  2567. l175:; G->pos= yypos175; G->thunkpos= yythunkpos175;
  2568. }
  2569. { int yypos176= G->pos, yythunkpos176= G->thunkpos; if (!yymatchChar(G, '>')) goto l176; goto l171;
  2570. l176:; G->pos= yypos176; G->thunkpos= yythunkpos176;
  2571. } if (!yy_Nonspacechar(G)) { goto l171; }
  2572. l172:;
  2573. { int yypos173= G->pos, yythunkpos173= G->thunkpos;
  2574. { int yypos177= G->pos, yythunkpos177= G->thunkpos; if (!yymatchChar(G, '(')) goto l177; goto l173;
  2575. l177:; G->pos= yypos177; G->thunkpos= yythunkpos177;
  2576. }
  2577. { int yypos178= G->pos, yythunkpos178= G->thunkpos; if (!yymatchChar(G, ')')) goto l178; goto l173;
  2578. l178:; G->pos= yypos178; G->thunkpos= yythunkpos178;
  2579. }
  2580. { int yypos179= G->pos, yythunkpos179= G->thunkpos; if (!yymatchChar(G, '>')) goto l179; goto l173;
  2581. l179:; G->pos= yypos179; G->thunkpos= yythunkpos179;
  2582. } if (!yy_Nonspacechar(G)) { goto l173; } goto l172;
  2583. l173:; G->pos= yypos173; G->thunkpos= yythunkpos173;
  2584. } goto l170;
  2585. l171:; G->pos= yypos170; G->thunkpos= yythunkpos170; if (!yymatchChar(G, '(')) goto l169; if (!yy_SourceContents(G)) { goto l169; } if (!yymatchChar(G, ')')) goto l169;
  2586. }
  2587. l170:; goto l168;
  2588. l169:; G->pos= yypos169; G->thunkpos= yythunkpos169;
  2589. }
  2590. yyprintf((stderr, " ok %s @ %s\n", "SourceContents", G->buf+G->pos));
  2591. return 1;
  2592. }
  2593. YY_RULE(int) yy_ImageSize(GREG *G)
  2594. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2595. yyprintf((stderr, "%s\n", "ImageSize"));
  2596. { int yypos181= G->pos, yythunkpos181= G->thunkpos; if (!yy_ImageSizeComplete(G)) { goto l182; } goto l181;
  2597. l182:; G->pos= yypos181; G->thunkpos= yythunkpos181; if (!yy_ImageSizeWidth(G)) { goto l183; } goto l181;
  2598. l183:; G->pos= yypos181; G->thunkpos= yythunkpos181; if (!yy_ImageSizeHeight(G)) { goto l184; } goto l181;
  2599. l184:; G->pos= yypos181; G->thunkpos= yythunkpos181; if (!yymatchString(G, "")) goto l180;
  2600. }
  2601. l181:;
  2602. yyprintf((stderr, " ok %s @ %s\n", "ImageSize", G->buf+G->pos));
  2603. return 1;
  2604. l180:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2605. yyprintf((stderr, " fail %s @ %s\n", "ImageSize", G->buf+G->pos));
  2606. return 0;
  2607. }
  2608. YY_RULE(int) yy_TitleExt(GREG *G)
  2609. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2610. yyprintf((stderr, "%s\n", "TitleExt"));
  2611. { int yypos186= G->pos, yythunkpos186= G->thunkpos; if (!yy_TitleSingleExt(G)) { goto l187; } goto l186;
  2612. l187:; G->pos= yypos186; G->thunkpos= yythunkpos186; if (!yy_TitleDoubleExt(G)) { goto l188; } goto l186;
  2613. l188:; G->pos= yypos186; G->thunkpos= yythunkpos186; if (!yymatchString(G, "")) goto l185;
  2614. }
  2615. l186:;
  2616. yyprintf((stderr, " ok %s @ %s\n", "TitleExt", G->buf+G->pos));
  2617. return 1;
  2618. l185:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2619. yyprintf((stderr, " fail %s @ %s\n", "TitleExt", G->buf+G->pos));
  2620. return 0;
  2621. }
  2622. YY_RULE(int) yy_Title(GREG *G)
  2623. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2624. yyprintf((stderr, "%s\n", "Title"));
  2625. { int yypos190= G->pos, yythunkpos190= G->thunkpos; if (!yy_TitleSingle(G)) { goto l191; } goto l190;
  2626. l191:; G->pos= yypos190; G->thunkpos= yythunkpos190; if (!yy_TitleDouble(G)) { goto l192; } goto l190;
  2627. l192:; G->pos= yypos190; G->thunkpos= yythunkpos190; if (!yymatchString(G, "")) goto l189;
  2628. }
  2629. l190:;
  2630. yyprintf((stderr, " ok %s @ %s\n", "Title", G->buf+G->pos));
  2631. return 1;
  2632. l189:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2633. yyprintf((stderr, " fail %s @ %s\n", "Title", G->buf+G->pos));
  2634. return 0;
  2635. }
  2636. YY_RULE(int) yy_Source(GREG *G)
  2637. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2638. yyprintf((stderr, "%s\n", "Source")); yyDo(G, yy_1_Source, G->begin, G->end);
  2639. { int yypos194= G->pos, yythunkpos194= G->thunkpos; if (!yymatchChar(G, '<')) goto l195; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l195; if (!yy_SourceContents(G)) { goto l195; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l195; yyDo(G, yy_2_Source, G->begin, G->end); if (!yymatchChar(G, '>')) goto l195; goto l194;
  2640. l195:; G->pos= yypos194; G->thunkpos= yythunkpos194; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l193; if (!yy_SourceContents(G)) { goto l193; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l193; yyDo(G, yy_3_Source, G->begin, G->end);
  2641. }
  2642. l194:;
  2643. yyprintf((stderr, " ok %s @ %s\n", "Source", G->buf+G->pos));
  2644. return 1;
  2645. l193:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2646. yyprintf((stderr, " fail %s @ %s\n", "Source", G->buf+G->pos));
  2647. return 0;
  2648. }
  2649. YY_RULE(int) yy_Label(GREG *G)
  2650. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2651. yyprintf((stderr, "%s\n", "Label")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l196; if (!yy_LocMarker(G)) { goto l196; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '[')) goto l196;
  2652. { int yypos197= G->pos, yythunkpos197= G->thunkpos;
  2653. { int yypos199= G->pos, yythunkpos199= G->thunkpos; if (!yymatchChar(G, '^')) goto l199; goto l198;
  2654. l199:; G->pos= yypos199; G->thunkpos= yythunkpos199;
  2655. } yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l198; goto l197;
  2656. l198:; G->pos= yypos197; G->thunkpos= yythunkpos197;
  2657. { int yypos200= G->pos, yythunkpos200= G->thunkpos; if (!yymatchDot(G)) goto l196; G->pos= yypos200; G->thunkpos= yythunkpos200;
  2658. } yyText(G, G->begin, G->end); if (!( !EXT(pmh_EXT_NOTES) )) goto l196;
  2659. }
  2660. l197:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l196;
  2661. l201:;
  2662. { int yypos202= G->pos, yythunkpos202= G->thunkpos;
  2663. { int yypos203= G->pos, yythunkpos203= G->thunkpos; if (!yymatchChar(G, ']')) goto l203; goto l202;
  2664. l203:; G->pos= yypos203; G->thunkpos= yythunkpos203;
  2665. }
  2666. { int yypos204= G->pos, yythunkpos204= G->thunkpos; if (!yymatchChar(G, '[')) goto l204; goto l202;
  2667. l204:; G->pos= yypos204; G->thunkpos= yythunkpos204;
  2668. } if (!yy_LabelInline(G)) { goto l202; } goto l201;
  2669. l202:; G->pos= yypos202; G->thunkpos= yythunkpos202;
  2670. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l196; yyDo(G, yy_1_Label, G->begin, G->end); if (!yymatchChar(G, ']')) goto l196; yyText(G, G->begin, G->end); if (!(YY_END)) goto l196; yyDo(G, yy_2_Label, G->begin, G->end);
  2671. yyprintf((stderr, " ok %s @ %s\n", "Label", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2672. return 1;
  2673. l196:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2674. yyprintf((stderr, " fail %s @ %s\n", "Label", G->buf+G->pos));
  2675. return 0;
  2676. }
  2677. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G)
  2678. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2679. yyprintf((stderr, "%s\n", "ReferenceLinkSingle")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l205; if (!yy_Label(G)) { goto l205; } yyDo(G, yySet, -1, 0);
  2680. { int yypos206= G->pos, yythunkpos206= G->thunkpos; if (!yy_Spnl(G)) { goto l206; } if (!yymatchString(G, "[]")) goto l206; goto l207;
  2681. l206:; G->pos= yypos206; G->thunkpos= yythunkpos206;
  2682. }
  2683. l207:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l205; yyDo(G, yy_1_ReferenceLinkSingle, G->begin, G->end);
  2684. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2685. return 1;
  2686. l205:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2687. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos));
  2688. return 0;
  2689. }
  2690. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G)
  2691. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2692. yyprintf((stderr, "%s\n", "ReferenceLinkDouble")); 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; }
  2693. { int yypos209= G->pos, yythunkpos209= G->thunkpos; if (!yymatchString(G, "[]")) goto l209; goto l208;
  2694. l209:; G->pos= yypos209; G->thunkpos= yythunkpos209;
  2695. } if (!yy_Label(G)) { goto l208; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_END)) goto l208; yyDo(G, yy_1_ReferenceLinkDouble, G->begin, G->end);
  2696. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2697. return 1;
  2698. l208:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2699. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos));
  2700. return 0;
  2701. }
  2702. YY_RULE(int) yy_AutoLink(GREG *G)
  2703. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2704. yyprintf((stderr, "%s\n", "AutoLink"));
  2705. { int yypos211= G->pos, yythunkpos211= G->thunkpos; if (!yy_AutoLinkUrl(G)) { goto l212; } goto l211;
  2706. l212:; G->pos= yypos211; G->thunkpos= yythunkpos211; if (!yy_AutoLinkEmail(G)) { goto l210; }
  2707. }
  2708. l211:;
  2709. yyprintf((stderr, " ok %s @ %s\n", "AutoLink", G->buf+G->pos));
  2710. return 1;
  2711. l210:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2712. yyprintf((stderr, " fail %s @ %s\n", "AutoLink", G->buf+G->pos));
  2713. return 0;
  2714. }
  2715. YY_RULE(int) yy_ReferenceLink(GREG *G)
  2716. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2717. yyprintf((stderr, "%s\n", "ReferenceLink"));
  2718. { int yypos214= G->pos, yythunkpos214= G->thunkpos; if (!yy_ReferenceLinkDouble(G)) { goto l215; } goto l214;
  2719. l215:; G->pos= yypos214; G->thunkpos= yythunkpos214; if (!yy_ReferenceLinkSingle(G)) { goto l213; }
  2720. }
  2721. l214:;
  2722. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2723. return 1;
  2724. l213:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2725. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2726. return 0;
  2727. }
  2728. YY_RULE(int) yy_ExplicitLinkSize(GREG *G)
  2729. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2730. yyprintf((stderr, "%s\n", "ExplicitLinkSize")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l216; if (!yy_Label(G)) { goto l216; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l216; } if (!yymatchChar(G, '(')) goto l216; if (!yy_Sp(G)) { goto l216; } if (!yy_Source(G)) { goto l216; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l216; } if (!yy_TitleExt(G)) { goto l216; } if (!yy_Sp(G)) { goto l216; } if (!yy_ImageSize(G)) { goto l216; } if (!yy_Sp(G)) { goto l216; } if (!yymatchChar(G, ')')) goto l216; yyText(G, G->begin, G->end); if (!(YY_END)) goto l216; yyDo(G, yy_1_ExplicitLinkSize, G->begin, G->end);
  2731. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2732. return 1;
  2733. l216:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2734. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos));
  2735. return 0;
  2736. }
  2737. YY_RULE(int) yy_ExplicitLink(GREG *G)
  2738. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2739. yyprintf((stderr, "%s\n", "ExplicitLink")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l217; if (!yy_Label(G)) { goto l217; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l217; } if (!yymatchChar(G, '(')) goto l217; if (!yy_Sp(G)) { goto l217; } if (!yy_Source(G)) { goto l217; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l217; } if (!yy_Title(G)) { goto l217; } if (!yy_Sp(G)) { goto l217; } if (!yymatchChar(G, ')')) goto l217; yyText(G, G->begin, G->end); if (!(YY_END)) goto l217; yyDo(G, yy_1_ExplicitLink, G->begin, G->end);
  2740. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLink", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2741. return 1;
  2742. l217:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2743. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLink", G->buf+G->pos));
  2744. return 0;
  2745. }
  2746. YY_RULE(int) yy_StrongUl(GREG *G)
  2747. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2748. yyprintf((stderr, "%s\n", "StrongUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l218; if (!yy_LocMarker(G)) { goto l218; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "__")) goto l218;
  2749. { int yypos219= G->pos, yythunkpos219= G->thunkpos; if (!yy_Whitespace(G)) { goto l219; } goto l218;
  2750. l219:; G->pos= yypos219; G->thunkpos= yythunkpos219;
  2751. }
  2752. { int yypos222= G->pos, yythunkpos222= G->thunkpos; if (!yymatchString(G, "__")) goto l222; goto l218;
  2753. l222:; G->pos= yypos222; G->thunkpos= yythunkpos222;
  2754. } if (!yy_Inline(G)) { goto l218; }
  2755. l220:;
  2756. { int yypos221= G->pos, yythunkpos221= G->thunkpos;
  2757. { int yypos223= G->pos, yythunkpos223= G->thunkpos; if (!yymatchString(G, "__")) goto l223; goto l221;
  2758. l223:; G->pos= yypos223; G->thunkpos= yythunkpos223;
  2759. } if (!yy_Inline(G)) { goto l221; } goto l220;
  2760. l221:; G->pos= yypos221; G->thunkpos= yythunkpos221;
  2761. } if (!yymatchString(G, "__")) goto l218; yyText(G, G->begin, G->end); if (!(YY_END)) goto l218; yyDo(G, yy_1_StrongUl, G->begin, G->end);
  2762. yyprintf((stderr, " ok %s @ %s\n", "StrongUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2763. return 1;
  2764. l218:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2765. yyprintf((stderr, " fail %s @ %s\n", "StrongUl", G->buf+G->pos));
  2766. return 0;
  2767. }
  2768. YY_RULE(int) yy_StrongStar(GREG *G)
  2769. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2770. yyprintf((stderr, "%s\n", "StrongStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l224; if (!yy_LocMarker(G)) { goto l224; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "**")) goto l224;
  2771. { int yypos225= G->pos, yythunkpos225= G->thunkpos; if (!yy_Whitespace(G)) { goto l225; } goto l224;
  2772. l225:; G->pos= yypos225; G->thunkpos= yythunkpos225;
  2773. }
  2774. { int yypos228= G->pos, yythunkpos228= G->thunkpos; if (!yymatchString(G, "**")) goto l228; goto l224;
  2775. l228:; G->pos= yypos228; G->thunkpos= yythunkpos228;
  2776. } if (!yy_Inline(G)) { goto l224; }
  2777. l226:;
  2778. { int yypos227= G->pos, yythunkpos227= G->thunkpos;
  2779. { int yypos229= G->pos, yythunkpos229= G->thunkpos; if (!yymatchString(G, "**")) goto l229; goto l227;
  2780. l229:; G->pos= yypos229; G->thunkpos= yythunkpos229;
  2781. } if (!yy_Inline(G)) { goto l227; } goto l226;
  2782. l227:; G->pos= yypos227; G->thunkpos= yythunkpos227;
  2783. } if (!yymatchString(G, "**")) goto l224; yyText(G, G->begin, G->end); if (!(YY_END)) goto l224; yyDo(G, yy_1_StrongStar, G->begin, G->end);
  2784. yyprintf((stderr, " ok %s @ %s\n", "StrongStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2785. return 1;
  2786. l224:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2787. yyprintf((stderr, " fail %s @ %s\n", "StrongStar", G->buf+G->pos));
  2788. return 0;
  2789. }
  2790. YY_RULE(int) yy_Whitespace(GREG *G)
  2791. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2792. yyprintf((stderr, "%s\n", "Whitespace"));
  2793. { int yypos231= G->pos, yythunkpos231= G->thunkpos; if (!yy_Spacechar(G)) { goto l232; } goto l231;
  2794. l232:; G->pos= yypos231; G->thunkpos= yythunkpos231; if (!yy_Newline(G)) { goto l230; }
  2795. }
  2796. l231:;
  2797. yyprintf((stderr, " ok %s @ %s\n", "Whitespace", G->buf+G->pos));
  2798. return 1;
  2799. l230:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2800. yyprintf((stderr, " fail %s @ %s\n", "Whitespace", G->buf+G->pos));
  2801. return 0;
  2802. }
  2803. YY_RULE(int) yy_EmphUl(GREG *G)
  2804. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2805. yyprintf((stderr, "%s\n", "EmphUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l233; if (!yy_LocMarker(G)) { goto l233; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '_')) goto l233;
  2806. { int yypos234= G->pos, yythunkpos234= G->thunkpos; if (!yy_Whitespace(G)) { goto l234; } goto l233;
  2807. l234:; G->pos= yypos234; G->thunkpos= yythunkpos234;
  2808. }
  2809. { int yypos237= G->pos, yythunkpos237= G->thunkpos;
  2810. { int yypos239= G->pos, yythunkpos239= G->thunkpos; if (!yymatchChar(G, '_')) goto l239; goto l238;
  2811. l239:; G->pos= yypos239; G->thunkpos= yythunkpos239;
  2812. } if (!yy_Inline(G)) { goto l238; } goto l237;
  2813. l238:; G->pos= yypos237; G->thunkpos= yythunkpos237; if (!yy_StrongUl(G)) { goto l233; }
  2814. }
  2815. l237:;
  2816. l235:;
  2817. { int yypos236= G->pos, yythunkpos236= G->thunkpos;
  2818. { int yypos240= G->pos, yythunkpos240= G->thunkpos;
  2819. { int yypos242= G->pos, yythunkpos242= G->thunkpos; if (!yymatchChar(G, '_')) goto l242; goto l241;
  2820. l242:; G->pos= yypos242; G->thunkpos= yythunkpos242;
  2821. } if (!yy_Inline(G)) { goto l241; } goto l240;
  2822. l241:; G->pos= yypos240; G->thunkpos= yythunkpos240; if (!yy_StrongUl(G)) { goto l236; }
  2823. }
  2824. l240:; goto l235;
  2825. l236:; G->pos= yypos236; G->thunkpos= yythunkpos236;
  2826. } if (!yymatchChar(G, '_')) goto l233; yyText(G, G->begin, G->end); if (!(YY_END)) goto l233; yyDo(G, yy_1_EmphUl, G->begin, G->end);
  2827. yyprintf((stderr, " ok %s @ %s\n", "EmphUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2828. return 1;
  2829. l233:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2830. yyprintf((stderr, " fail %s @ %s\n", "EmphUl", G->buf+G->pos));
  2831. return 0;
  2832. }
  2833. YY_RULE(int) yy_EmphStar(GREG *G)
  2834. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2835. yyprintf((stderr, "%s\n", "EmphStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l243; if (!yy_LocMarker(G)) { goto l243; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '*')) goto l243;
  2836. { int yypos244= G->pos, yythunkpos244= G->thunkpos; if (!yy_Whitespace(G)) { goto l244; } goto l243;
  2837. l244:; G->pos= yypos244; G->thunkpos= yythunkpos244;
  2838. }
  2839. { int yypos247= G->pos, yythunkpos247= G->thunkpos;
  2840. { int yypos249= G->pos, yythunkpos249= G->thunkpos; if (!yymatchChar(G, '*')) goto l249; goto l248;
  2841. l249:; G->pos= yypos249; G->thunkpos= yythunkpos249;
  2842. } if (!yy_Inline(G)) { goto l248; } goto l247;
  2843. l248:; G->pos= yypos247; G->thunkpos= yythunkpos247; if (!yy_StrongStar(G)) { goto l243; }
  2844. }
  2845. l247:;
  2846. l245:;
  2847. { int yypos246= G->pos, yythunkpos246= G->thunkpos;
  2848. { int yypos250= G->pos, yythunkpos250= G->thunkpos;
  2849. { int yypos252= G->pos, yythunkpos252= G->thunkpos; if (!yymatchChar(G, '*')) goto l252; goto l251;
  2850. l252:; G->pos= yypos252; G->thunkpos= yythunkpos252;
  2851. } if (!yy_Inline(G)) { goto l251; } goto l250;
  2852. l251:; G->pos= yypos250; G->thunkpos= yythunkpos250; if (!yy_StrongStar(G)) { goto l246; }
  2853. }
  2854. l250:; goto l245;
  2855. l246:; G->pos= yypos246; G->thunkpos= yythunkpos246;
  2856. } if (!yymatchChar(G, '*')) goto l243; yyText(G, G->begin, G->end); if (!(YY_END)) goto l243; yyDo(G, yy_1_EmphStar, G->begin, G->end);
  2857. yyprintf((stderr, " ok %s @ %s\n", "EmphStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2858. return 1;
  2859. l243:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2860. yyprintf((stderr, " fail %s @ %s\n", "EmphStar", G->buf+G->pos));
  2861. return 0;
  2862. }
  2863. YY_RULE(int) yy_StarLine(GREG *G)
  2864. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2865. yyprintf((stderr, "%s\n", "StarLine"));
  2866. { int yypos254= G->pos, yythunkpos254= G->thunkpos; if (!yymatchString(G, "****")) goto l255;
  2867. l256:;
  2868. { int yypos257= G->pos, yythunkpos257= G->thunkpos; if (!yymatchChar(G, '*')) goto l257; goto l256;
  2869. l257:; G->pos= yypos257; G->thunkpos= yythunkpos257;
  2870. } goto l254;
  2871. l255:; G->pos= yypos254; G->thunkpos= yythunkpos254; if (!yy_Spacechar(G)) { goto l253; } if (!yymatchChar(G, '*')) goto l253;
  2872. l258:;
  2873. { int yypos259= G->pos, yythunkpos259= G->thunkpos; if (!yymatchChar(G, '*')) goto l259; goto l258;
  2874. l259:; G->pos= yypos259; G->thunkpos= yythunkpos259;
  2875. }
  2876. { int yypos260= G->pos, yythunkpos260= G->thunkpos; if (!yy_Spacechar(G)) { goto l253; } G->pos= yypos260; G->thunkpos= yythunkpos260;
  2877. }
  2878. }
  2879. l254:;
  2880. yyprintf((stderr, " ok %s @ %s\n", "StarLine", G->buf+G->pos));
  2881. return 1;
  2882. l253:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2883. yyprintf((stderr, " fail %s @ %s\n", "StarLine", G->buf+G->pos));
  2884. return 0;
  2885. }
  2886. YY_RULE(int) yy_UlLine(GREG *G)
  2887. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2888. yyprintf((stderr, "%s\n", "UlLine"));
  2889. { int yypos262= G->pos, yythunkpos262= G->thunkpos; if (!yymatchString(G, "____")) goto l263;
  2890. l264:;
  2891. { int yypos265= G->pos, yythunkpos265= G->thunkpos; if (!yymatchChar(G, '_')) goto l265; goto l264;
  2892. l265:; G->pos= yypos265; G->thunkpos= yythunkpos265;
  2893. } goto l262;
  2894. l263:; G->pos= yypos262; G->thunkpos= yythunkpos262; if (!yy_Spacechar(G)) { goto l261; } if (!yymatchChar(G, '_')) goto l261;
  2895. l266:;
  2896. { int yypos267= G->pos, yythunkpos267= G->thunkpos; if (!yymatchChar(G, '_')) goto l267; goto l266;
  2897. l267:; G->pos= yypos267; G->thunkpos= yythunkpos267;
  2898. }
  2899. { int yypos268= G->pos, yythunkpos268= G->thunkpos; if (!yy_Spacechar(G)) { goto l261; } G->pos= yypos268; G->thunkpos= yythunkpos268;
  2900. }
  2901. }
  2902. l262:;
  2903. yyprintf((stderr, " ok %s @ %s\n", "UlLine", G->buf+G->pos));
  2904. return 1;
  2905. l261:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2906. yyprintf((stderr, " fail %s @ %s\n", "UlLine", G->buf+G->pos));
  2907. return 0;
  2908. }
  2909. YY_RULE(int) yy_SpecialChar(GREG *G)
  2910. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2911. yyprintf((stderr, "%s\n", "SpecialChar"));
  2912. { int yypos270= G->pos, yythunkpos270= G->thunkpos; if (!yymatchChar(G, '~')) goto l271; goto l270;
  2913. l271:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '*')) goto l272; goto l270;
  2914. l272:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '_')) goto l273; goto l270;
  2915. l273:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '`')) goto l274; goto l270;
  2916. l274:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '&')) goto l275; goto l270;
  2917. l275:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '[')) goto l276; goto l270;
  2918. l276:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, ']')) goto l277; goto l270;
  2919. l277:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '(')) goto l278; goto l270;
  2920. l278:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, ')')) goto l279; goto l270;
  2921. l279:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '<')) goto l280; goto l270;
  2922. l280:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '!')) goto l281; goto l270;
  2923. l281:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '#')) goto l282; goto l270;
  2924. l282:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '\\')) goto l283; goto l270;
  2925. l283:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '\'')) goto l284; goto l270;
  2926. l284:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yymatchChar(G, '"')) goto l285; goto l270;
  2927. l285:; G->pos= yypos270; G->thunkpos= yythunkpos270; if (!yy_ExtendedSpecialChar(G)) { goto l269; }
  2928. }
  2929. l270:;
  2930. yyprintf((stderr, " ok %s @ %s\n", "SpecialChar", G->buf+G->pos));
  2931. return 1;
  2932. l269:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2933. yyprintf((stderr, " fail %s @ %s\n", "SpecialChar", G->buf+G->pos));
  2934. return 0;
  2935. }
  2936. YY_RULE(int) yy_Eof(GREG *G)
  2937. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2938. yyprintf((stderr, "%s\n", "Eof"));
  2939. { int yypos287= G->pos, yythunkpos287= G->thunkpos; if (!yymatchDot(G)) goto l287; goto l286;
  2940. l287:; G->pos= yypos287; G->thunkpos= yythunkpos287;
  2941. }
  2942. yyprintf((stderr, " ok %s @ %s\n", "Eof", G->buf+G->pos));
  2943. return 1;
  2944. l286:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2945. yyprintf((stderr, " fail %s @ %s\n", "Eof", G->buf+G->pos));
  2946. return 0;
  2947. }
  2948. YY_RULE(int) yy_NormalEndline(GREG *G)
  2949. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2950. yyprintf((stderr, "%s\n", "NormalEndline")); if (!yy_Sp(G)) { goto l288; } if (!yy_Newline(G)) { goto l288; }
  2951. { int yypos289= G->pos, yythunkpos289= G->thunkpos; if (!yy_BlankLine(G)) { goto l289; } goto l288;
  2952. l289:; G->pos= yypos289; G->thunkpos= yythunkpos289;
  2953. }
  2954. { int yypos290= G->pos, yythunkpos290= G->thunkpos; if (!yymatchChar(G, '>')) goto l290; goto l288;
  2955. l290:; G->pos= yypos290; G->thunkpos= yythunkpos290;
  2956. }
  2957. { int yypos291= G->pos, yythunkpos291= G->thunkpos; if (!yy_AtxStart(G)) { goto l291; } goto l288;
  2958. l291:; G->pos= yypos291; G->thunkpos= yythunkpos291;
  2959. }
  2960. { int yypos292= G->pos, yythunkpos292= G->thunkpos; if (!yy_Line(G)) { goto l292; }
  2961. { int yypos293= G->pos, yythunkpos293= G->thunkpos; if (!yymatchChar(G, '=')) goto l294;
  2962. l295:;
  2963. { int yypos296= G->pos, yythunkpos296= G->thunkpos; if (!yymatchChar(G, '=')) goto l296; goto l295;
  2964. l296:; G->pos= yypos296; G->thunkpos= yythunkpos296;
  2965. } goto l293;
  2966. l294:; G->pos= yypos293; G->thunkpos= yythunkpos293; if (!yymatchChar(G, '-')) goto l292;
  2967. l297:;
  2968. { int yypos298= G->pos, yythunkpos298= G->thunkpos; if (!yymatchChar(G, '-')) goto l298; goto l297;
  2969. l298:; G->pos= yypos298; G->thunkpos= yythunkpos298;
  2970. }
  2971. }
  2972. l293:; if (!yy_Newline(G)) { goto l292; } goto l288;
  2973. l292:; G->pos= yypos292; G->thunkpos= yythunkpos292;
  2974. }
  2975. yyprintf((stderr, " ok %s @ %s\n", "NormalEndline", G->buf+G->pos));
  2976. return 1;
  2977. l288:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2978. yyprintf((stderr, " fail %s @ %s\n", "NormalEndline", G->buf+G->pos));
  2979. return 0;
  2980. }
  2981. YY_RULE(int) yy_TerminalEndline(GREG *G)
  2982. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2983. yyprintf((stderr, "%s\n", "TerminalEndline")); if (!yy_Sp(G)) { goto l299; } if (!yy_Newline(G)) { goto l299; } if (!yy_Eof(G)) { goto l299; }
  2984. yyprintf((stderr, " ok %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  2985. return 1;
  2986. l299:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2987. yyprintf((stderr, " fail %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  2988. return 0;
  2989. }
  2990. YY_RULE(int) yy_LineBreak(GREG *G)
  2991. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2992. yyprintf((stderr, "%s\n", "LineBreak")); if (!yymatchString(G, " ")) goto l300; if (!yy_NormalEndline(G)) { goto l300; }
  2993. yyprintf((stderr, " ok %s @ %s\n", "LineBreak", G->buf+G->pos));
  2994. return 1;
  2995. l300:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2996. yyprintf((stderr, " fail %s @ %s\n", "LineBreak", G->buf+G->pos));
  2997. return 0;
  2998. }
  2999. YY_RULE(int) yy_CharEntity(GREG *G)
  3000. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3001. yyprintf((stderr, "%s\n", "CharEntity")); if (!yymatchChar(G, '&')) goto l301; 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 l301;
  3002. l302:;
  3003. { int yypos303= G->pos, yythunkpos303= 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;
  3004. l303:; G->pos= yypos303; G->thunkpos= yythunkpos303;
  3005. } if (!yymatchChar(G, ';')) goto l301;
  3006. yyprintf((stderr, " ok %s @ %s\n", "CharEntity", G->buf+G->pos));
  3007. return 1;
  3008. l301:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3009. yyprintf((stderr, " fail %s @ %s\n", "CharEntity", G->buf+G->pos));
  3010. return 0;
  3011. }
  3012. YY_RULE(int) yy_DecEntity(GREG *G)
  3013. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3014. yyprintf((stderr, "%s\n", "DecEntity")); if (!yymatchChar(G, '&')) goto l304; if (!yymatchChar(G, '#')) goto l304; 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 l304;
  3015. l305:;
  3016. { int yypos306= G->pos, yythunkpos306= 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 l306; goto l305;
  3017. l306:; G->pos= yypos306; G->thunkpos= yythunkpos306;
  3018. } if (!yymatchChar(G, ';')) goto l304;
  3019. yyprintf((stderr, " ok %s @ %s\n", "DecEntity", G->buf+G->pos));
  3020. return 1;
  3021. l304:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3022. yyprintf((stderr, " fail %s @ %s\n", "DecEntity", G->buf+G->pos));
  3023. return 0;
  3024. }
  3025. YY_RULE(int) yy_HexEntity(GREG *G)
  3026. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3027. yyprintf((stderr, "%s\n", "HexEntity")); if (!yymatchChar(G, '&')) goto l307; if (!yymatchChar(G, '#')) goto l307; 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 l307; 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 l307;
  3028. l308:;
  3029. { int yypos309= G->pos, yythunkpos309= 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 l309; goto l308;
  3030. l309:; G->pos= yypos309; G->thunkpos= yythunkpos309;
  3031. } if (!yymatchChar(G, ';')) goto l307;
  3032. yyprintf((stderr, " ok %s @ %s\n", "HexEntity", G->buf+G->pos));
  3033. return 1;
  3034. l307:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3035. yyprintf((stderr, " fail %s @ %s\n", "HexEntity", G->buf+G->pos));
  3036. return 0;
  3037. }
  3038. YY_RULE(int) yy_Alphanumeric(GREG *G)
  3039. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3040. yyprintf((stderr, "%s\n", "Alphanumeric"));
  3041. { int yypos311= G->pos, yythunkpos311= 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 l312; goto l311;
  3042. l312:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\200")) goto l313; goto l311;
  3043. l313:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\201")) goto l314; goto l311;
  3044. l314:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\202")) goto l315; goto l311;
  3045. l315:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\203")) goto l316; goto l311;
  3046. l316:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\204")) goto l317; goto l311;
  3047. l317:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\205")) goto l318; goto l311;
  3048. l318:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\206")) goto l319; goto l311;
  3049. l319:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\207")) goto l320; goto l311;
  3050. l320:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\210")) goto l321; goto l311;
  3051. l321:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\211")) goto l322; goto l311;
  3052. l322:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\212")) goto l323; goto l311;
  3053. l323:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\213")) goto l324; goto l311;
  3054. l324:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\214")) goto l325; goto l311;
  3055. l325:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\215")) goto l326; goto l311;
  3056. l326:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\216")) goto l327; goto l311;
  3057. l327:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\217")) goto l328; goto l311;
  3058. l328:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\220")) goto l329; goto l311;
  3059. l329:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\221")) goto l330; goto l311;
  3060. l330:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\222")) goto l331; goto l311;
  3061. l331:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\223")) goto l332; goto l311;
  3062. l332:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\224")) goto l333; goto l311;
  3063. l333:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\225")) goto l334; goto l311;
  3064. l334:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\226")) goto l335; goto l311;
  3065. l335:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\227")) goto l336; goto l311;
  3066. l336:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\230")) goto l337; goto l311;
  3067. l337:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\231")) goto l338; goto l311;
  3068. l338:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\232")) goto l339; goto l311;
  3069. l339:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\233")) goto l340; goto l311;
  3070. l340:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\234")) goto l341; goto l311;
  3071. l341:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\235")) goto l342; goto l311;
  3072. l342:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\236")) goto l343; goto l311;
  3073. l343:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\237")) goto l344; goto l311;
  3074. l344:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\240")) goto l345; goto l311;
  3075. l345:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\241")) goto l346; goto l311;
  3076. l346:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\242")) goto l347; goto l311;
  3077. l347:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\243")) goto l348; goto l311;
  3078. l348:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\244")) goto l349; goto l311;
  3079. l349:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\245")) goto l350; goto l311;
  3080. l350:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\246")) goto l351; goto l311;
  3081. l351:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\247")) goto l352; goto l311;
  3082. l352:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\250")) goto l353; goto l311;
  3083. l353:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\251")) goto l354; goto l311;
  3084. l354:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\252")) goto l355; goto l311;
  3085. l355:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\253")) goto l356; goto l311;
  3086. l356:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\254")) goto l357; goto l311;
  3087. l357:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\255")) goto l358; goto l311;
  3088. l358:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\256")) goto l359; goto l311;
  3089. l359:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\257")) goto l360; goto l311;
  3090. l360:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\260")) goto l361; goto l311;
  3091. l361:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\261")) goto l362; goto l311;
  3092. l362:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\262")) goto l363; goto l311;
  3093. l363:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\263")) goto l364; goto l311;
  3094. l364:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\264")) goto l365; goto l311;
  3095. l365:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\265")) goto l366; goto l311;
  3096. l366:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\266")) goto l367; goto l311;
  3097. l367:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\267")) goto l368; goto l311;
  3098. l368:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\270")) goto l369; goto l311;
  3099. l369:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\271")) goto l370; goto l311;
  3100. l370:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\272")) goto l371; goto l311;
  3101. l371:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\273")) goto l372; goto l311;
  3102. l372:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\274")) goto l373; goto l311;
  3103. l373:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\275")) goto l374; goto l311;
  3104. l374:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\276")) goto l375; goto l311;
  3105. l375:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\277")) goto l376; goto l311;
  3106. l376:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\300")) goto l377; goto l311;
  3107. l377:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\301")) goto l378; goto l311;
  3108. l378:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\302")) goto l379; goto l311;
  3109. l379:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\303")) goto l380; goto l311;
  3110. l380:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\304")) goto l381; goto l311;
  3111. l381:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\305")) goto l382; goto l311;
  3112. l382:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\306")) goto l383; goto l311;
  3113. l383:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\307")) goto l384; goto l311;
  3114. l384:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\310")) goto l385; goto l311;
  3115. l385:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\311")) goto l386; goto l311;
  3116. l386:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\312")) goto l387; goto l311;
  3117. l387:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\313")) goto l388; goto l311;
  3118. l388:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\314")) goto l389; goto l311;
  3119. l389:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\315")) goto l390; goto l311;
  3120. l390:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\316")) goto l391; goto l311;
  3121. l391:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\317")) goto l392; goto l311;
  3122. l392:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\320")) goto l393; goto l311;
  3123. l393:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\321")) goto l394; goto l311;
  3124. l394:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\322")) goto l395; goto l311;
  3125. l395:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\323")) goto l396; goto l311;
  3126. l396:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\324")) goto l397; goto l311;
  3127. l397:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\325")) goto l398; goto l311;
  3128. l398:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\326")) goto l399; goto l311;
  3129. l399:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\327")) goto l400; goto l311;
  3130. l400:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\330")) goto l401; goto l311;
  3131. l401:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\331")) goto l402; goto l311;
  3132. l402:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\332")) goto l403; goto l311;
  3133. l403:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\333")) goto l404; goto l311;
  3134. l404:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\334")) goto l405; goto l311;
  3135. l405:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\335")) goto l406; goto l311;
  3136. l406:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\336")) goto l407; goto l311;
  3137. l407:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\337")) goto l408; goto l311;
  3138. l408:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\340")) goto l409; goto l311;
  3139. l409:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\341")) goto l410; goto l311;
  3140. l410:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\342")) goto l411; goto l311;
  3141. l411:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\343")) goto l412; goto l311;
  3142. l412:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\344")) goto l413; goto l311;
  3143. l413:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\345")) goto l414; goto l311;
  3144. l414:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\346")) goto l415; goto l311;
  3145. l415:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\347")) goto l416; goto l311;
  3146. l416:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\350")) goto l417; goto l311;
  3147. l417:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\351")) goto l418; goto l311;
  3148. l418:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\352")) goto l419; goto l311;
  3149. l419:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\353")) goto l420; goto l311;
  3150. l420:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\354")) goto l421; goto l311;
  3151. l421:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\355")) goto l422; goto l311;
  3152. l422:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\356")) goto l423; goto l311;
  3153. l423:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\357")) goto l424; goto l311;
  3154. l424:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\360")) goto l425; goto l311;
  3155. l425:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\361")) goto l426; goto l311;
  3156. l426:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\362")) goto l427; goto l311;
  3157. l427:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\363")) goto l428; goto l311;
  3158. l428:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\364")) goto l429; goto l311;
  3159. l429:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\365")) goto l430; goto l311;
  3160. l430:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\366")) goto l431; goto l311;
  3161. l431:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\367")) goto l432; goto l311;
  3162. l432:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\370")) goto l433; goto l311;
  3163. l433:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\371")) goto l434; goto l311;
  3164. l434:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\372")) goto l435; goto l311;
  3165. l435:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\373")) goto l436; goto l311;
  3166. l436:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\374")) goto l437; goto l311;
  3167. l437:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\375")) goto l438; goto l311;
  3168. l438:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\376")) goto l439; goto l311;
  3169. l439:; G->pos= yypos311; G->thunkpos= yythunkpos311; if (!yymatchString(G, "\377")) goto l310;
  3170. }
  3171. l311:;
  3172. yyprintf((stderr, " ok %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3173. return 1;
  3174. l310:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3175. yyprintf((stderr, " fail %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3176. return 0;
  3177. }
  3178. YY_RULE(int) yy_NormalChar(GREG *G)
  3179. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3180. yyprintf((stderr, "%s\n", "NormalChar"));
  3181. { int yypos441= G->pos, yythunkpos441= G->thunkpos;
  3182. { int yypos442= G->pos, yythunkpos442= G->thunkpos; if (!yy_SpecialChar(G)) { goto l443; } goto l442;
  3183. l443:; G->pos= yypos442; G->thunkpos= yythunkpos442; if (!yy_Spacechar(G)) { goto l444; } goto l442;
  3184. l444:; G->pos= yypos442; G->thunkpos= yythunkpos442; if (!yy_Newline(G)) { goto l441; }
  3185. }
  3186. l442:; goto l440;
  3187. l441:; G->pos= yypos441; G->thunkpos= yythunkpos441;
  3188. } if (!yymatchDot(G)) goto l440;
  3189. yyprintf((stderr, " ok %s @ %s\n", "NormalChar", G->buf+G->pos));
  3190. return 1;
  3191. l440:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3192. yyprintf((stderr, " fail %s @ %s\n", "NormalChar", G->buf+G->pos));
  3193. return 0;
  3194. }
  3195. YY_RULE(int) yy_Symbol(GREG *G)
  3196. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3197. yyprintf((stderr, "%s\n", "Symbol")); if (!yy_SpecialChar(G)) { goto l445; }
  3198. yyprintf((stderr, " ok %s @ %s\n", "Symbol", G->buf+G->pos));
  3199. return 1;
  3200. l445:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3201. yyprintf((stderr, " fail %s @ %s\n", "Symbol", G->buf+G->pos));
  3202. return 0;
  3203. }
  3204. YY_RULE(int) yy_EscapedChar(GREG *G)
  3205. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3206. yyprintf((stderr, "%s\n", "EscapedChar")); if (!yymatchChar(G, '\\')) goto l446;
  3207. { int yypos447= G->pos, yythunkpos447= G->thunkpos; if (!yy_Newline(G)) { goto l447; } goto l446;
  3208. l447:; G->pos= yypos447; G->thunkpos= yythunkpos447;
  3209. } 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 l446;
  3210. yyprintf((stderr, " ok %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3211. return 1;
  3212. l446:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3213. yyprintf((stderr, " fail %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3214. return 0;
  3215. }
  3216. YY_RULE(int) yy_Entity(GREG *G)
  3217. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3218. yyprintf((stderr, "%s\n", "Entity")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l448; if (!yy_LocMarker(G)) { goto l448; } yyDo(G, yySet, -1, 0);
  3219. { int yypos449= G->pos, yythunkpos449= G->thunkpos; if (!yy_HexEntity(G)) { goto l450; } goto l449;
  3220. l450:; G->pos= yypos449; G->thunkpos= yythunkpos449; if (!yy_DecEntity(G)) { goto l451; } goto l449;
  3221. l451:; G->pos= yypos449; G->thunkpos= yythunkpos449; if (!yy_CharEntity(G)) { goto l448; }
  3222. }
  3223. l449:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l448; yyDo(G, yy_1_Entity, G->begin, G->end);
  3224. yyprintf((stderr, " ok %s @ %s\n", "Entity", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3225. return 1;
  3226. l448:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3227. yyprintf((stderr, " fail %s @ %s\n", "Entity", G->buf+G->pos));
  3228. return 0;
  3229. }
  3230. YY_RULE(int) yy_RawHtml(GREG *G)
  3231. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3232. yyprintf((stderr, "%s\n", "RawHtml")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l452; if (!yy_LocMarker(G)) { goto l452; } yyDo(G, yySet, -1, 0);
  3233. { int yypos453= G->pos, yythunkpos453= G->thunkpos; if (!yy_HtmlComment(G)) { goto l454; } goto l453;
  3234. l454:; G->pos= yypos453; G->thunkpos= yythunkpos453; if (!yy_HtmlBlockScript(G)) { goto l455; } goto l453;
  3235. l455:; G->pos= yypos453; G->thunkpos= yythunkpos453; if (!yy_HtmlTag(G)) { goto l452; }
  3236. }
  3237. l453:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l452; yyDo(G, yy_1_RawHtml, G->begin, G->end);
  3238. yyprintf((stderr, " ok %s @ %s\n", "RawHtml", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3239. return 1;
  3240. l452:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3241. yyprintf((stderr, " fail %s @ %s\n", "RawHtml", G->buf+G->pos));
  3242. return 0;
  3243. }
  3244. YY_RULE(int) yy_Mark(GREG *G)
  3245. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  3246. yyprintf((stderr, "%s\n", "Mark")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MARK) )) goto l456; if (!yy_MarkTagOpen(G)) { goto l456; } yyDo(G, yySet, -2, 0); if (!yy_MarkTagText(G)) { goto l456; } if (!yy_MarkTagClose(G)) { goto l456; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_Mark, G->begin, G->end);
  3247. yyprintf((stderr, " ok %s @ %s\n", "Mark", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  3248. return 1;
  3249. l456:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3250. yyprintf((stderr, " fail %s @ %s\n", "Mark", G->buf+G->pos));
  3251. return 0;
  3252. }
  3253. YY_RULE(int) yy_Code(GREG *G)
  3254. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3255. yyprintf((stderr, "%s\n", "Code")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l457;
  3256. { int yypos458= G->pos, yythunkpos458= G->thunkpos; if (!yy_Ticks1(G)) { goto l459; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l459; }
  3257. { int yypos462= G->pos, yythunkpos462= G->thunkpos;
  3258. { int yypos466= G->pos, yythunkpos466= G->thunkpos; if (!yymatchChar(G, '`')) goto l466; goto l463;
  3259. l466:; G->pos= yypos466; G->thunkpos= yythunkpos466;
  3260. } if (!yy_Nonspacechar(G)) { goto l463; }
  3261. l464:;
  3262. { int yypos465= G->pos, yythunkpos465= G->thunkpos;
  3263. { int yypos467= G->pos, yythunkpos467= G->thunkpos; if (!yymatchChar(G, '`')) goto l467; goto l465;
  3264. l467:; G->pos= yypos467; G->thunkpos= yythunkpos467;
  3265. } if (!yy_Nonspacechar(G)) { goto l465; } goto l464;
  3266. l465:; G->pos= yypos465; G->thunkpos= yythunkpos465;
  3267. } goto l462;
  3268. l463:; G->pos= yypos462; G->thunkpos= yythunkpos462;
  3269. { int yypos469= G->pos, yythunkpos469= G->thunkpos; if (!yy_Ticks1(G)) { goto l469; } goto l468;
  3270. l469:; G->pos= yypos469; G->thunkpos= yythunkpos469;
  3271. } if (!yymatchChar(G, '`')) goto l468;
  3272. l470:;
  3273. { int yypos471= G->pos, yythunkpos471= G->thunkpos; if (!yymatchChar(G, '`')) goto l471; goto l470;
  3274. l471:; G->pos= yypos471; G->thunkpos= yythunkpos471;
  3275. } goto l462;
  3276. l468:; G->pos= yypos462; G->thunkpos= yythunkpos462;
  3277. { int yypos472= G->pos, yythunkpos472= G->thunkpos; if (!yy_Sp(G)) { goto l472; } if (!yy_Ticks1(G)) { goto l472; } goto l459;
  3278. l472:; G->pos= yypos472; G->thunkpos= yythunkpos472;
  3279. }
  3280. { int yypos473= G->pos, yythunkpos473= G->thunkpos; if (!yy_Spacechar(G)) { goto l474; } goto l473;
  3281. l474:; G->pos= yypos473; G->thunkpos= yythunkpos473; if (!yy_Newline(G)) { goto l459; }
  3282. { int yypos475= G->pos, yythunkpos475= G->thunkpos; if (!yy_BlankLine(G)) { goto l475; } goto l459;
  3283. l475:; G->pos= yypos475; G->thunkpos= yythunkpos475;
  3284. }
  3285. }
  3286. l473:;
  3287. }
  3288. l462:;
  3289. l460:;
  3290. { int yypos461= G->pos, yythunkpos461= G->thunkpos;
  3291. { int yypos476= G->pos, yythunkpos476= G->thunkpos;
  3292. { int yypos480= G->pos, yythunkpos480= G->thunkpos; if (!yymatchChar(G, '`')) goto l480; goto l477;
  3293. l480:; G->pos= yypos480; G->thunkpos= yythunkpos480;
  3294. } if (!yy_Nonspacechar(G)) { goto l477; }
  3295. l478:;
  3296. { int yypos479= G->pos, yythunkpos479= G->thunkpos;
  3297. { int yypos481= G->pos, yythunkpos481= G->thunkpos; if (!yymatchChar(G, '`')) goto l481; goto l479;
  3298. l481:; G->pos= yypos481; G->thunkpos= yythunkpos481;
  3299. } if (!yy_Nonspacechar(G)) { goto l479; } goto l478;
  3300. l479:; G->pos= yypos479; G->thunkpos= yythunkpos479;
  3301. } goto l476;
  3302. l477:; G->pos= yypos476; G->thunkpos= yythunkpos476;
  3303. { int yypos483= G->pos, yythunkpos483= G->thunkpos; if (!yy_Ticks1(G)) { goto l483; } goto l482;
  3304. l483:; G->pos= yypos483; G->thunkpos= yythunkpos483;
  3305. } if (!yymatchChar(G, '`')) goto l482;
  3306. l484:;
  3307. { int yypos485= G->pos, yythunkpos485= G->thunkpos; if (!yymatchChar(G, '`')) goto l485; goto l484;
  3308. l485:; G->pos= yypos485; G->thunkpos= yythunkpos485;
  3309. } goto l476;
  3310. l482:; G->pos= yypos476; G->thunkpos= yythunkpos476;
  3311. { int yypos486= G->pos, yythunkpos486= G->thunkpos; if (!yy_Sp(G)) { goto l486; } if (!yy_Ticks1(G)) { goto l486; } goto l461;
  3312. l486:; G->pos= yypos486; G->thunkpos= yythunkpos486;
  3313. }
  3314. { int yypos487= G->pos, yythunkpos487= G->thunkpos; if (!yy_Spacechar(G)) { goto l488; } goto l487;
  3315. l488:; G->pos= yypos487; G->thunkpos= yythunkpos487; if (!yy_Newline(G)) { goto l461; }
  3316. { int yypos489= G->pos, yythunkpos489= G->thunkpos; if (!yy_BlankLine(G)) { goto l489; } goto l461;
  3317. l489:; G->pos= yypos489; G->thunkpos= yythunkpos489;
  3318. }
  3319. }
  3320. l487:;
  3321. }
  3322. l476:; goto l460;
  3323. l461:; G->pos= yypos461; G->thunkpos= yythunkpos461;
  3324. } if (!yy_Sp(G)) { goto l459; } if (!yy_Ticks1(G)) { goto l459; } goto l458;
  3325. l459:; G->pos= yypos458; G->thunkpos= yythunkpos458; if (!yy_Ticks2(G)) { goto l490; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l490; }
  3326. { int yypos493= G->pos, yythunkpos493= G->thunkpos;
  3327. { int yypos497= G->pos, yythunkpos497= G->thunkpos; if (!yymatchChar(G, '`')) goto l497; goto l494;
  3328. l497:; G->pos= yypos497; G->thunkpos= yythunkpos497;
  3329. } if (!yy_Nonspacechar(G)) { goto l494; }
  3330. l495:;
  3331. { int yypos496= G->pos, yythunkpos496= G->thunkpos;
  3332. { int yypos498= G->pos, yythunkpos498= G->thunkpos; if (!yymatchChar(G, '`')) goto l498; goto l496;
  3333. l498:; G->pos= yypos498; G->thunkpos= yythunkpos498;
  3334. } if (!yy_Nonspacechar(G)) { goto l496; } goto l495;
  3335. l496:; G->pos= yypos496; G->thunkpos= yythunkpos496;
  3336. } goto l493;
  3337. l494:; G->pos= yypos493; G->thunkpos= yythunkpos493;
  3338. { int yypos500= G->pos, yythunkpos500= G->thunkpos; if (!yy_Ticks2(G)) { goto l500; } goto l499;
  3339. l500:; G->pos= yypos500; G->thunkpos= yythunkpos500;
  3340. } if (!yymatchChar(G, '`')) goto l499;
  3341. l501:;
  3342. { int yypos502= G->pos, yythunkpos502= G->thunkpos; if (!yymatchChar(G, '`')) goto l502; goto l501;
  3343. l502:; G->pos= yypos502; G->thunkpos= yythunkpos502;
  3344. } goto l493;
  3345. l499:; G->pos= yypos493; G->thunkpos= yythunkpos493;
  3346. { int yypos503= G->pos, yythunkpos503= G->thunkpos; if (!yy_Sp(G)) { goto l503; } if (!yy_Ticks2(G)) { goto l503; } goto l490;
  3347. l503:; G->pos= yypos503; G->thunkpos= yythunkpos503;
  3348. }
  3349. { int yypos504= G->pos, yythunkpos504= G->thunkpos; if (!yy_Spacechar(G)) { goto l505; } goto l504;
  3350. l505:; G->pos= yypos504; G->thunkpos= yythunkpos504; if (!yy_Newline(G)) { goto l490; }
  3351. { int yypos506= G->pos, yythunkpos506= G->thunkpos; if (!yy_BlankLine(G)) { goto l506; } goto l490;
  3352. l506:; G->pos= yypos506; G->thunkpos= yythunkpos506;
  3353. }
  3354. }
  3355. l504:;
  3356. }
  3357. l493:;
  3358. l491:;
  3359. { int yypos492= G->pos, yythunkpos492= G->thunkpos;
  3360. { int yypos507= G->pos, yythunkpos507= G->thunkpos;
  3361. { int yypos511= G->pos, yythunkpos511= G->thunkpos; if (!yymatchChar(G, '`')) goto l511; goto l508;
  3362. l511:; G->pos= yypos511; G->thunkpos= yythunkpos511;
  3363. } if (!yy_Nonspacechar(G)) { goto l508; }
  3364. l509:;
  3365. { int yypos510= G->pos, yythunkpos510= G->thunkpos;
  3366. { int yypos512= G->pos, yythunkpos512= G->thunkpos; if (!yymatchChar(G, '`')) goto l512; goto l510;
  3367. l512:; G->pos= yypos512; G->thunkpos= yythunkpos512;
  3368. } if (!yy_Nonspacechar(G)) { goto l510; } goto l509;
  3369. l510:; G->pos= yypos510; G->thunkpos= yythunkpos510;
  3370. } goto l507;
  3371. l508:; G->pos= yypos507; G->thunkpos= yythunkpos507;
  3372. { int yypos514= G->pos, yythunkpos514= G->thunkpos; if (!yy_Ticks2(G)) { goto l514; } goto l513;
  3373. l514:; G->pos= yypos514; G->thunkpos= yythunkpos514;
  3374. } if (!yymatchChar(G, '`')) goto l513;
  3375. l515:;
  3376. { int yypos516= G->pos, yythunkpos516= G->thunkpos; if (!yymatchChar(G, '`')) goto l516; goto l515;
  3377. l516:; G->pos= yypos516; G->thunkpos= yythunkpos516;
  3378. } goto l507;
  3379. l513:; G->pos= yypos507; G->thunkpos= yythunkpos507;
  3380. { int yypos517= G->pos, yythunkpos517= G->thunkpos; if (!yy_Sp(G)) { goto l517; } if (!yy_Ticks2(G)) { goto l517; } goto l492;
  3381. l517:; G->pos= yypos517; G->thunkpos= yythunkpos517;
  3382. }
  3383. { int yypos518= G->pos, yythunkpos518= G->thunkpos; if (!yy_Spacechar(G)) { goto l519; } goto l518;
  3384. l519:; G->pos= yypos518; G->thunkpos= yythunkpos518; if (!yy_Newline(G)) { goto l492; }
  3385. { int yypos520= G->pos, yythunkpos520= G->thunkpos; if (!yy_BlankLine(G)) { goto l520; } goto l492;
  3386. l520:; G->pos= yypos520; G->thunkpos= yythunkpos520;
  3387. }
  3388. }
  3389. l518:;
  3390. }
  3391. l507:; goto l491;
  3392. l492:; G->pos= yypos492; G->thunkpos= yythunkpos492;
  3393. } if (!yy_Sp(G)) { goto l490; } if (!yy_Ticks2(G)) { goto l490; } goto l458;
  3394. l490:; G->pos= yypos458; G->thunkpos= yythunkpos458; if (!yy_Ticks3(G)) { goto l521; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l521; }
  3395. { int yypos524= G->pos, yythunkpos524= G->thunkpos;
  3396. { int yypos528= G->pos, yythunkpos528= G->thunkpos; if (!yymatchChar(G, '`')) goto l528; goto l525;
  3397. l528:; G->pos= yypos528; G->thunkpos= yythunkpos528;
  3398. } if (!yy_Nonspacechar(G)) { goto l525; }
  3399. l526:;
  3400. { int yypos527= G->pos, yythunkpos527= G->thunkpos;
  3401. { int yypos529= G->pos, yythunkpos529= G->thunkpos; if (!yymatchChar(G, '`')) goto l529; goto l527;
  3402. l529:; G->pos= yypos529; G->thunkpos= yythunkpos529;
  3403. } if (!yy_Nonspacechar(G)) { goto l527; } goto l526;
  3404. l527:; G->pos= yypos527; G->thunkpos= yythunkpos527;
  3405. } goto l524;
  3406. l525:; G->pos= yypos524; G->thunkpos= yythunkpos524;
  3407. { int yypos531= G->pos, yythunkpos531= G->thunkpos; if (!yy_Ticks3(G)) { goto l531; } goto l530;
  3408. l531:; G->pos= yypos531; G->thunkpos= yythunkpos531;
  3409. } if (!yymatchChar(G, '`')) goto l530;
  3410. l532:;
  3411. { int yypos533= G->pos, yythunkpos533= G->thunkpos; if (!yymatchChar(G, '`')) goto l533; goto l532;
  3412. l533:; G->pos= yypos533; G->thunkpos= yythunkpos533;
  3413. } goto l524;
  3414. l530:; G->pos= yypos524; G->thunkpos= yythunkpos524;
  3415. { int yypos534= G->pos, yythunkpos534= G->thunkpos; if (!yy_Sp(G)) { goto l534; } if (!yy_Ticks3(G)) { goto l534; } goto l521;
  3416. l534:; G->pos= yypos534; G->thunkpos= yythunkpos534;
  3417. }
  3418. { int yypos535= G->pos, yythunkpos535= G->thunkpos; if (!yy_Spacechar(G)) { goto l536; } goto l535;
  3419. l536:; G->pos= yypos535; G->thunkpos= yythunkpos535; if (!yy_Newline(G)) { goto l521; }
  3420. { int yypos537= G->pos, yythunkpos537= G->thunkpos; if (!yy_BlankLine(G)) { goto l537; } goto l521;
  3421. l537:; G->pos= yypos537; G->thunkpos= yythunkpos537;
  3422. }
  3423. }
  3424. l535:;
  3425. }
  3426. l524:;
  3427. l522:;
  3428. { int yypos523= G->pos, yythunkpos523= G->thunkpos;
  3429. { int yypos538= G->pos, yythunkpos538= G->thunkpos;
  3430. { int yypos542= G->pos, yythunkpos542= G->thunkpos; if (!yymatchChar(G, '`')) goto l542; goto l539;
  3431. l542:; G->pos= yypos542; G->thunkpos= yythunkpos542;
  3432. } if (!yy_Nonspacechar(G)) { goto l539; }
  3433. l540:;
  3434. { int yypos541= G->pos, yythunkpos541= G->thunkpos;
  3435. { int yypos543= G->pos, yythunkpos543= G->thunkpos; if (!yymatchChar(G, '`')) goto l543; goto l541;
  3436. l543:; G->pos= yypos543; G->thunkpos= yythunkpos543;
  3437. } if (!yy_Nonspacechar(G)) { goto l541; } goto l540;
  3438. l541:; G->pos= yypos541; G->thunkpos= yythunkpos541;
  3439. } goto l538;
  3440. l539:; G->pos= yypos538; G->thunkpos= yythunkpos538;
  3441. { int yypos545= G->pos, yythunkpos545= G->thunkpos; if (!yy_Ticks3(G)) { goto l545; } goto l544;
  3442. l545:; G->pos= yypos545; G->thunkpos= yythunkpos545;
  3443. } if (!yymatchChar(G, '`')) goto l544;
  3444. l546:;
  3445. { int yypos547= G->pos, yythunkpos547= G->thunkpos; if (!yymatchChar(G, '`')) goto l547; goto l546;
  3446. l547:; G->pos= yypos547; G->thunkpos= yythunkpos547;
  3447. } goto l538;
  3448. l544:; G->pos= yypos538; G->thunkpos= yythunkpos538;
  3449. { int yypos548= G->pos, yythunkpos548= G->thunkpos; if (!yy_Sp(G)) { goto l548; } if (!yy_Ticks3(G)) { goto l548; } goto l523;
  3450. l548:; G->pos= yypos548; G->thunkpos= yythunkpos548;
  3451. }
  3452. { int yypos549= G->pos, yythunkpos549= G->thunkpos; if (!yy_Spacechar(G)) { goto l550; } goto l549;
  3453. l550:; G->pos= yypos549; G->thunkpos= yythunkpos549; if (!yy_Newline(G)) { goto l523; }
  3454. { int yypos551= G->pos, yythunkpos551= G->thunkpos; if (!yy_BlankLine(G)) { goto l551; } goto l523;
  3455. l551:; G->pos= yypos551; G->thunkpos= yythunkpos551;
  3456. }
  3457. }
  3458. l549:;
  3459. }
  3460. l538:; goto l522;
  3461. l523:; G->pos= yypos523; G->thunkpos= yythunkpos523;
  3462. } if (!yy_Sp(G)) { goto l521; } if (!yy_Ticks3(G)) { goto l521; } goto l458;
  3463. l521:; G->pos= yypos458; G->thunkpos= yythunkpos458; if (!yy_Ticks4(G)) { goto l552; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l552; }
  3464. { int yypos555= G->pos, yythunkpos555= G->thunkpos;
  3465. { int yypos559= G->pos, yythunkpos559= G->thunkpos; if (!yymatchChar(G, '`')) goto l559; goto l556;
  3466. l559:; G->pos= yypos559; G->thunkpos= yythunkpos559;
  3467. } if (!yy_Nonspacechar(G)) { goto l556; }
  3468. l557:;
  3469. { int yypos558= G->pos, yythunkpos558= G->thunkpos;
  3470. { int yypos560= G->pos, yythunkpos560= G->thunkpos; if (!yymatchChar(G, '`')) goto l560; goto l558;
  3471. l560:; G->pos= yypos560; G->thunkpos= yythunkpos560;
  3472. } if (!yy_Nonspacechar(G)) { goto l558; } goto l557;
  3473. l558:; G->pos= yypos558; G->thunkpos= yythunkpos558;
  3474. } goto l555;
  3475. l556:; G->pos= yypos555; G->thunkpos= yythunkpos555;
  3476. { int yypos562= G->pos, yythunkpos562= G->thunkpos; if (!yy_Ticks4(G)) { goto l562; } goto l561;
  3477. l562:; G->pos= yypos562; G->thunkpos= yythunkpos562;
  3478. } if (!yymatchChar(G, '`')) goto l561;
  3479. l563:;
  3480. { int yypos564= G->pos, yythunkpos564= G->thunkpos; if (!yymatchChar(G, '`')) goto l564; goto l563;
  3481. l564:; G->pos= yypos564; G->thunkpos= yythunkpos564;
  3482. } goto l555;
  3483. l561:; G->pos= yypos555; G->thunkpos= yythunkpos555;
  3484. { int yypos565= G->pos, yythunkpos565= G->thunkpos; if (!yy_Sp(G)) { goto l565; } if (!yy_Ticks4(G)) { goto l565; } goto l552;
  3485. l565:; G->pos= yypos565; G->thunkpos= yythunkpos565;
  3486. }
  3487. { int yypos566= G->pos, yythunkpos566= G->thunkpos; if (!yy_Spacechar(G)) { goto l567; } goto l566;
  3488. l567:; G->pos= yypos566; G->thunkpos= yythunkpos566; if (!yy_Newline(G)) { goto l552; }
  3489. { int yypos568= G->pos, yythunkpos568= G->thunkpos; if (!yy_BlankLine(G)) { goto l568; } goto l552;
  3490. l568:; G->pos= yypos568; G->thunkpos= yythunkpos568;
  3491. }
  3492. }
  3493. l566:;
  3494. }
  3495. l555:;
  3496. l553:;
  3497. { int yypos554= G->pos, yythunkpos554= G->thunkpos;
  3498. { int yypos569= G->pos, yythunkpos569= G->thunkpos;
  3499. { int yypos573= G->pos, yythunkpos573= G->thunkpos; if (!yymatchChar(G, '`')) goto l573; goto l570;
  3500. l573:; G->pos= yypos573; G->thunkpos= yythunkpos573;
  3501. } if (!yy_Nonspacechar(G)) { goto l570; }
  3502. l571:;
  3503. { int yypos572= G->pos, yythunkpos572= G->thunkpos;
  3504. { int yypos574= G->pos, yythunkpos574= G->thunkpos; if (!yymatchChar(G, '`')) goto l574; goto l572;
  3505. l574:; G->pos= yypos574; G->thunkpos= yythunkpos574;
  3506. } if (!yy_Nonspacechar(G)) { goto l572; } goto l571;
  3507. l572:; G->pos= yypos572; G->thunkpos= yythunkpos572;
  3508. } goto l569;
  3509. l570:; G->pos= yypos569; G->thunkpos= yythunkpos569;
  3510. { int yypos576= G->pos, yythunkpos576= G->thunkpos; if (!yy_Ticks4(G)) { goto l576; } goto l575;
  3511. l576:; G->pos= yypos576; G->thunkpos= yythunkpos576;
  3512. } if (!yymatchChar(G, '`')) goto l575;
  3513. l577:;
  3514. { int yypos578= G->pos, yythunkpos578= G->thunkpos; if (!yymatchChar(G, '`')) goto l578; goto l577;
  3515. l578:; G->pos= yypos578; G->thunkpos= yythunkpos578;
  3516. } goto l569;
  3517. l575:; G->pos= yypos569; G->thunkpos= yythunkpos569;
  3518. { int yypos579= G->pos, yythunkpos579= G->thunkpos; if (!yy_Sp(G)) { goto l579; } if (!yy_Ticks4(G)) { goto l579; } goto l554;
  3519. l579:; G->pos= yypos579; G->thunkpos= yythunkpos579;
  3520. }
  3521. { int yypos580= G->pos, yythunkpos580= G->thunkpos; if (!yy_Spacechar(G)) { goto l581; } goto l580;
  3522. l581:; G->pos= yypos580; G->thunkpos= yythunkpos580; if (!yy_Newline(G)) { goto l554; }
  3523. { int yypos582= G->pos, yythunkpos582= G->thunkpos; if (!yy_BlankLine(G)) { goto l582; } goto l554;
  3524. l582:; G->pos= yypos582; G->thunkpos= yythunkpos582;
  3525. }
  3526. }
  3527. l580:;
  3528. }
  3529. l569:; goto l553;
  3530. l554:; G->pos= yypos554; G->thunkpos= yythunkpos554;
  3531. } if (!yy_Sp(G)) { goto l552; } if (!yy_Ticks4(G)) { goto l552; } goto l458;
  3532. l552:; G->pos= yypos458; G->thunkpos= yythunkpos458; if (!yy_Ticks5(G)) { goto l457; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l457; }
  3533. { int yypos585= G->pos, yythunkpos585= G->thunkpos;
  3534. { int yypos589= G->pos, yythunkpos589= G->thunkpos; if (!yymatchChar(G, '`')) goto l589; goto l586;
  3535. l589:; G->pos= yypos589; G->thunkpos= yythunkpos589;
  3536. } if (!yy_Nonspacechar(G)) { goto l586; }
  3537. l587:;
  3538. { int yypos588= G->pos, yythunkpos588= G->thunkpos;
  3539. { int yypos590= G->pos, yythunkpos590= G->thunkpos; if (!yymatchChar(G, '`')) goto l590; goto l588;
  3540. l590:; G->pos= yypos590; G->thunkpos= yythunkpos590;
  3541. } if (!yy_Nonspacechar(G)) { goto l588; } goto l587;
  3542. l588:; G->pos= yypos588; G->thunkpos= yythunkpos588;
  3543. } goto l585;
  3544. l586:; G->pos= yypos585; G->thunkpos= yythunkpos585;
  3545. { int yypos592= G->pos, yythunkpos592= G->thunkpos; if (!yy_Ticks5(G)) { goto l592; } goto l591;
  3546. l592:; G->pos= yypos592; G->thunkpos= yythunkpos592;
  3547. } if (!yymatchChar(G, '`')) goto l591;
  3548. l593:;
  3549. { int yypos594= G->pos, yythunkpos594= G->thunkpos; if (!yymatchChar(G, '`')) goto l594; goto l593;
  3550. l594:; G->pos= yypos594; G->thunkpos= yythunkpos594;
  3551. } goto l585;
  3552. l591:; G->pos= yypos585; G->thunkpos= yythunkpos585;
  3553. { int yypos595= G->pos, yythunkpos595= G->thunkpos; if (!yy_Sp(G)) { goto l595; } if (!yy_Ticks5(G)) { goto l595; } goto l457;
  3554. l595:; G->pos= yypos595; G->thunkpos= yythunkpos595;
  3555. }
  3556. { int yypos596= G->pos, yythunkpos596= G->thunkpos; if (!yy_Spacechar(G)) { goto l597; } goto l596;
  3557. l597:; G->pos= yypos596; G->thunkpos= yythunkpos596; if (!yy_Newline(G)) { goto l457; }
  3558. { int yypos598= G->pos, yythunkpos598= G->thunkpos; if (!yy_BlankLine(G)) { goto l598; } goto l457;
  3559. l598:; G->pos= yypos598; G->thunkpos= yythunkpos598;
  3560. }
  3561. }
  3562. l596:;
  3563. }
  3564. l585:;
  3565. l583:;
  3566. { int yypos584= G->pos, yythunkpos584= G->thunkpos;
  3567. { int yypos599= G->pos, yythunkpos599= G->thunkpos;
  3568. { int yypos603= G->pos, yythunkpos603= G->thunkpos; if (!yymatchChar(G, '`')) goto l603; goto l600;
  3569. l603:; G->pos= yypos603; G->thunkpos= yythunkpos603;
  3570. } if (!yy_Nonspacechar(G)) { goto l600; }
  3571. l601:;
  3572. { int yypos602= G->pos, yythunkpos602= G->thunkpos;
  3573. { int yypos604= G->pos, yythunkpos604= G->thunkpos; if (!yymatchChar(G, '`')) goto l604; goto l602;
  3574. l604:; G->pos= yypos604; G->thunkpos= yythunkpos604;
  3575. } if (!yy_Nonspacechar(G)) { goto l602; } goto l601;
  3576. l602:; G->pos= yypos602; G->thunkpos= yythunkpos602;
  3577. } goto l599;
  3578. l600:; G->pos= yypos599; G->thunkpos= yythunkpos599;
  3579. { int yypos606= G->pos, yythunkpos606= G->thunkpos; if (!yy_Ticks5(G)) { goto l606; } goto l605;
  3580. l606:; G->pos= yypos606; G->thunkpos= yythunkpos606;
  3581. } if (!yymatchChar(G, '`')) goto l605;
  3582. l607:;
  3583. { int yypos608= G->pos, yythunkpos608= G->thunkpos; if (!yymatchChar(G, '`')) goto l608; goto l607;
  3584. l608:; G->pos= yypos608; G->thunkpos= yythunkpos608;
  3585. } goto l599;
  3586. l605:; G->pos= yypos599; G->thunkpos= yythunkpos599;
  3587. { int yypos609= G->pos, yythunkpos609= G->thunkpos; if (!yy_Sp(G)) { goto l609; } if (!yy_Ticks5(G)) { goto l609; } goto l584;
  3588. l609:; G->pos= yypos609; G->thunkpos= yythunkpos609;
  3589. }
  3590. { int yypos610= G->pos, yythunkpos610= G->thunkpos; if (!yy_Spacechar(G)) { goto l611; } goto l610;
  3591. l611:; G->pos= yypos610; G->thunkpos= yythunkpos610; if (!yy_Newline(G)) { goto l584; }
  3592. { int yypos612= G->pos, yythunkpos612= G->thunkpos; if (!yy_BlankLine(G)) { goto l612; } goto l584;
  3593. l612:; G->pos= yypos612; G->thunkpos= yythunkpos612;
  3594. }
  3595. }
  3596. l610:;
  3597. }
  3598. l599:; goto l583;
  3599. l584:; G->pos= yypos584; G->thunkpos= yythunkpos584;
  3600. } if (!yy_Sp(G)) { goto l457; } if (!yy_Ticks5(G)) { goto l457; }
  3601. }
  3602. l458:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l457; yyDo(G, yy_1_Code, G->begin, G->end);
  3603. yyprintf((stderr, " ok %s @ %s\n", "Code", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3604. return 1;
  3605. l457:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3606. yyprintf((stderr, " fail %s @ %s\n", "Code", G->buf+G->pos));
  3607. return 0;
  3608. }
  3609. YY_RULE(int) yy_InlineNote(GREG *G)
  3610. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3611. yyprintf((stderr, "%s\n", "InlineNote")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l613; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l613; if (!yy_LocMarker(G)) { goto l613; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "^[")) goto l613;
  3612. { int yypos616= G->pos, yythunkpos616= G->thunkpos; if (!yymatchChar(G, ']')) goto l616; goto l613;
  3613. l616:; G->pos= yypos616; G->thunkpos= yythunkpos616;
  3614. } if (!yy_Inline(G)) { goto l613; }
  3615. l614:;
  3616. { int yypos615= G->pos, yythunkpos615= G->thunkpos;
  3617. { int yypos617= G->pos, yythunkpos617= G->thunkpos; if (!yymatchChar(G, ']')) goto l617; goto l615;
  3618. l617:; G->pos= yypos617; G->thunkpos= yythunkpos617;
  3619. } if (!yy_Inline(G)) { goto l615; } goto l614;
  3620. l615:; G->pos= yypos615; G->thunkpos= yythunkpos615;
  3621. } if (!yymatchChar(G, ']')) goto l613; yyText(G, G->begin, G->end); if (!(YY_END)) goto l613; yyDo(G, yy_1_InlineNote, G->begin, G->end);
  3622. yyprintf((stderr, " ok %s @ %s\n", "InlineNote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3623. return 1;
  3624. l613:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3625. yyprintf((stderr, " fail %s @ %s\n", "InlineNote", G->buf+G->pos));
  3626. return 0;
  3627. }
  3628. YY_RULE(int) yy_NoteReference(GREG *G)
  3629. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3630. yyprintf((stderr, "%s\n", "NoteReference")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l618; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l618; if (!yy_RawNoteReference(G)) { goto l618; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l618; yyDo(G, yy_1_NoteReference, G->begin, G->end);
  3631. yyprintf((stderr, " ok %s @ %s\n", "NoteReference", G->buf+G->pos));
  3632. return 1;
  3633. l618:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3634. yyprintf((stderr, " fail %s @ %s\n", "NoteReference", G->buf+G->pos));
  3635. return 0;
  3636. }
  3637. YY_RULE(int) yy_Link(GREG *G)
  3638. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3639. yyprintf((stderr, "%s\n", "Link"));
  3640. { int yypos620= G->pos, yythunkpos620= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l621; } goto l620;
  3641. l621:; G->pos= yypos620; G->thunkpos= yythunkpos620; if (!yy_ReferenceLink(G)) { goto l622; } goto l620;
  3642. l622:; G->pos= yypos620; G->thunkpos= yythunkpos620; if (!yy_AutoLink(G)) { goto l619; }
  3643. }
  3644. l620:; yyDo(G, yy_1_Link, G->begin, G->end);
  3645. yyprintf((stderr, " ok %s @ %s\n", "Link", G->buf+G->pos));
  3646. return 1;
  3647. l619:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3648. yyprintf((stderr, " fail %s @ %s\n", "Link", G->buf+G->pos));
  3649. return 0;
  3650. }
  3651. YY_RULE(int) yy_Image(GREG *G)
  3652. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3653. yyprintf((stderr, "%s\n", "Image")); if (!yymatchChar(G, '!')) goto l623;
  3654. { int yypos624= G->pos, yythunkpos624= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l625; } goto l624;
  3655. l625:; G->pos= yypos624; G->thunkpos= yythunkpos624; if (!yy_ExplicitLinkSize(G)) { goto l626; } goto l624;
  3656. l626:; G->pos= yypos624; G->thunkpos= yythunkpos624; if (!yy_ReferenceLink(G)) { goto l623; }
  3657. }
  3658. l624:; yyDo(G, yy_1_Image, G->begin, G->end);
  3659. yyprintf((stderr, " ok %s @ %s\n", "Image", G->buf+G->pos));
  3660. return 1;
  3661. l623:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3662. yyprintf((stderr, " fail %s @ %s\n", "Image", G->buf+G->pos));
  3663. return 0;
  3664. }
  3665. YY_RULE(int) yy_Strike(GREG *G)
  3666. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3667. yyprintf((stderr, "%s\n", "Strike")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_STRIKE) )) goto l627; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l627; if (!yy_LocMarker(G)) { goto l627; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "~~")) goto l627;
  3668. { int yypos628= G->pos, yythunkpos628= G->thunkpos; if (!yy_Whitespace(G)) { goto l628; } goto l627;
  3669. l628:; G->pos= yypos628; G->thunkpos= yythunkpos628;
  3670. }
  3671. { int yypos631= G->pos, yythunkpos631= G->thunkpos; if (!yymatchString(G, "~~")) goto l631; goto l627;
  3672. l631:; G->pos= yypos631; G->thunkpos= yythunkpos631;
  3673. } if (!yy_Inline(G)) { goto l627; }
  3674. l629:;
  3675. { int yypos630= G->pos, yythunkpos630= G->thunkpos;
  3676. { int yypos632= G->pos, yythunkpos632= G->thunkpos; if (!yymatchString(G, "~~")) goto l632; goto l630;
  3677. l632:; G->pos= yypos632; G->thunkpos= yythunkpos632;
  3678. } if (!yy_Inline(G)) { goto l630; } goto l629;
  3679. l630:; G->pos= yypos630; G->thunkpos= yythunkpos630;
  3680. } if (!yymatchString(G, "~~")) goto l627; yyText(G, G->begin, G->end); if (!(YY_END)) goto l627; yyDo(G, yy_1_Strike, G->begin, G->end);
  3681. yyprintf((stderr, " ok %s @ %s\n", "Strike", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3682. return 1;
  3683. l627:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3684. yyprintf((stderr, " fail %s @ %s\n", "Strike", G->buf+G->pos));
  3685. return 0;
  3686. }
  3687. YY_RULE(int) yy_Emph(GREG *G)
  3688. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3689. yyprintf((stderr, "%s\n", "Emph"));
  3690. { int yypos634= G->pos, yythunkpos634= G->thunkpos; if (!yy_EmphStar(G)) { goto l635; } goto l634;
  3691. l635:; G->pos= yypos634; G->thunkpos= yythunkpos634; if (!yy_EmphUl(G)) { goto l633; }
  3692. }
  3693. l634:;
  3694. yyprintf((stderr, " ok %s @ %s\n", "Emph", G->buf+G->pos));
  3695. return 1;
  3696. l633:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3697. yyprintf((stderr, " fail %s @ %s\n", "Emph", G->buf+G->pos));
  3698. return 0;
  3699. }
  3700. YY_RULE(int) yy_Strong(GREG *G)
  3701. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3702. yyprintf((stderr, "%s\n", "Strong"));
  3703. { int yypos637= G->pos, yythunkpos637= G->thunkpos; if (!yy_StrongStar(G)) { goto l638; } goto l637;
  3704. l638:; G->pos= yypos637; G->thunkpos= yythunkpos637; if (!yy_StrongUl(G)) { goto l636; }
  3705. }
  3706. l637:;
  3707. yyprintf((stderr, " ok %s @ %s\n", "Strong", G->buf+G->pos));
  3708. return 1;
  3709. l636:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3710. yyprintf((stderr, " fail %s @ %s\n", "Strong", G->buf+G->pos));
  3711. return 0;
  3712. }
  3713. YY_RULE(int) yy_UlOrStarLine(GREG *G)
  3714. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3715. yyprintf((stderr, "%s\n", "UlOrStarLine"));
  3716. { int yypos640= G->pos, yythunkpos640= G->thunkpos; if (!yy_UlLine(G)) { goto l641; } goto l640;
  3717. l641:; G->pos= yypos640; G->thunkpos= yythunkpos640; if (!yy_StarLine(G)) { goto l639; }
  3718. }
  3719. l640:;
  3720. yyprintf((stderr, " ok %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3721. return 1;
  3722. l639:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3723. yyprintf((stderr, " fail %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3724. return 0;
  3725. }
  3726. YY_RULE(int) yy_Str(GREG *G)
  3727. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3728. yyprintf((stderr, "%s\n", "Str")); if (!yy_NormalChar(G)) { goto l642; }
  3729. l643:;
  3730. { int yypos644= G->pos, yythunkpos644= G->thunkpos;
  3731. { int yypos645= G->pos, yythunkpos645= G->thunkpos; if (!yy_NormalChar(G)) { goto l646; } goto l645;
  3732. l646:; G->pos= yypos645; G->thunkpos= yythunkpos645; if (!yymatchChar(G, '_')) goto l644;
  3733. l647:;
  3734. { int yypos648= G->pos, yythunkpos648= G->thunkpos; if (!yymatchChar(G, '_')) goto l648; goto l647;
  3735. l648:; G->pos= yypos648; G->thunkpos= yythunkpos648;
  3736. }
  3737. { int yypos649= G->pos, yythunkpos649= G->thunkpos; if (!yy_Alphanumeric(G)) { goto l644; } G->pos= yypos649; G->thunkpos= yythunkpos649;
  3738. }
  3739. }
  3740. l645:; goto l643;
  3741. l644:; G->pos= yypos644; G->thunkpos= yythunkpos644;
  3742. }
  3743. yyprintf((stderr, " ok %s @ %s\n", "Str", G->buf+G->pos));
  3744. return 1;
  3745. l642:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3746. yyprintf((stderr, " fail %s @ %s\n", "Str", G->buf+G->pos));
  3747. return 0;
  3748. }
  3749. YY_RULE(int) yy_InStyleTags(GREG *G)
  3750. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3751. yyprintf((stderr, "%s\n", "InStyleTags")); if (!yy_StyleOpen(G)) { goto l650; }
  3752. l651:;
  3753. { int yypos652= G->pos, yythunkpos652= G->thunkpos;
  3754. { int yypos653= G->pos, yythunkpos653= G->thunkpos; if (!yy_StyleClose(G)) { goto l653; } goto l652;
  3755. l653:; G->pos= yypos653; G->thunkpos= yythunkpos653;
  3756. } if (!yymatchDot(G)) goto l652; goto l651;
  3757. l652:; G->pos= yypos652; G->thunkpos= yythunkpos652;
  3758. } if (!yy_StyleClose(G)) { goto l650; }
  3759. yyprintf((stderr, " ok %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3760. return 1;
  3761. l650:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3762. yyprintf((stderr, " fail %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3763. return 0;
  3764. }
  3765. YY_RULE(int) yy_StyleClose(GREG *G)
  3766. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3767. yyprintf((stderr, "%s\n", "StyleClose")); if (!yymatchChar(G, '<')) goto l654; if (!yy_Spnl(G)) { goto l654; } if (!yymatchChar(G, '/')) goto l654;
  3768. { int yypos655= G->pos, yythunkpos655= G->thunkpos; if (!yymatchString(G, "style")) goto l656; goto l655;
  3769. l656:; G->pos= yypos655; G->thunkpos= yythunkpos655; if (!yymatchString(G, "STYLE")) goto l654;
  3770. }
  3771. l655:; if (!yy_Spnl(G)) { goto l654; } if (!yymatchChar(G, '>')) goto l654;
  3772. yyprintf((stderr, " ok %s @ %s\n", "StyleClose", G->buf+G->pos));
  3773. return 1;
  3774. l654:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3775. yyprintf((stderr, " fail %s @ %s\n", "StyleClose", G->buf+G->pos));
  3776. return 0;
  3777. }
  3778. YY_RULE(int) yy_StyleOpen(GREG *G)
  3779. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3780. yyprintf((stderr, "%s\n", "StyleOpen")); if (!yymatchChar(G, '<')) goto l657; if (!yy_Spnl(G)) { goto l657; }
  3781. { int yypos658= G->pos, yythunkpos658= G->thunkpos; if (!yymatchString(G, "style")) goto l659; goto l658;
  3782. l659:; G->pos= yypos658; G->thunkpos= yythunkpos658; if (!yymatchString(G, "STYLE")) goto l657;
  3783. }
  3784. l658:; if (!yy_Spnl(G)) { goto l657; }
  3785. l660:;
  3786. { int yypos661= G->pos, yythunkpos661= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l661; } goto l660;
  3787. l661:; G->pos= yypos661; G->thunkpos= yythunkpos661;
  3788. } if (!yymatchChar(G, '>')) goto l657;
  3789. yyprintf((stderr, " ok %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3790. return 1;
  3791. l657:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3792. yyprintf((stderr, " fail %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3793. return 0;
  3794. }
  3795. YY_RULE(int) yy_HtmlBlockType(GREG *G)
  3796. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3797. yyprintf((stderr, "%s\n", "HtmlBlockType"));
  3798. { int yypos663= G->pos, yythunkpos663= G->thunkpos; if (!yymatchString(G, "address")) goto l664; goto l663;
  3799. l664:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "blockquote")) goto l665; goto l663;
  3800. l665:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "center")) goto l666; goto l663;
  3801. l666:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "dir")) goto l667; goto l663;
  3802. l667:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "div")) goto l668; goto l663;
  3803. l668:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "dl")) goto l669; goto l663;
  3804. l669:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "fieldset")) goto l670; goto l663;
  3805. l670:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "form")) goto l671; goto l663;
  3806. l671:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "h1")) goto l672; goto l663;
  3807. l672:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "h2")) goto l673; goto l663;
  3808. l673:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "h3")) goto l674; goto l663;
  3809. l674:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "h4")) goto l675; goto l663;
  3810. l675:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "h5")) goto l676; goto l663;
  3811. l676:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "h6")) goto l677; goto l663;
  3812. l677:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "hr")) goto l678; goto l663;
  3813. l678:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "isindex")) goto l679; goto l663;
  3814. l679:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "menu")) goto l680; goto l663;
  3815. l680:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "noframes")) goto l681; goto l663;
  3816. l681:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "noscript")) goto l682; goto l663;
  3817. l682:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "ol")) goto l683; goto l663;
  3818. l683:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchChar(G, 'p')) goto l684; goto l663;
  3819. l684:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "pre")) goto l685; goto l663;
  3820. l685:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "table")) goto l686; goto l663;
  3821. l686:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "ul")) goto l687; goto l663;
  3822. l687:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "dd")) goto l688; goto l663;
  3823. l688:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "dt")) goto l689; goto l663;
  3824. l689:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "frameset")) goto l690; goto l663;
  3825. l690:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "li")) goto l691; goto l663;
  3826. l691:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "tbody")) goto l692; goto l663;
  3827. l692:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "td")) goto l693; goto l663;
  3828. l693:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "tfoot")) goto l694; goto l663;
  3829. l694:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "th")) goto l695; goto l663;
  3830. l695:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "thead")) goto l696; goto l663;
  3831. l696:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "tr")) goto l697; goto l663;
  3832. l697:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "script")) goto l698; goto l663;
  3833. l698:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "ADDRESS")) goto l699; goto l663;
  3834. l699:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "BLOCKQUOTE")) goto l700; goto l663;
  3835. l700:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "CENTER")) goto l701; goto l663;
  3836. l701:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "DIR")) goto l702; goto l663;
  3837. l702:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "DIV")) goto l703; goto l663;
  3838. l703:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "DL")) goto l704; goto l663;
  3839. l704:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "FIELDSET")) goto l705; goto l663;
  3840. l705:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "FORM")) goto l706; goto l663;
  3841. l706:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "H1")) goto l707; goto l663;
  3842. l707:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "H2")) goto l708; goto l663;
  3843. l708:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "H3")) goto l709; goto l663;
  3844. l709:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "H4")) goto l710; goto l663;
  3845. l710:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "H5")) goto l711; goto l663;
  3846. l711:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "H6")) goto l712; goto l663;
  3847. l712:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "HR")) goto l713; goto l663;
  3848. l713:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "ISINDEX")) goto l714; goto l663;
  3849. l714:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "MENU")) goto l715; goto l663;
  3850. l715:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "NOFRAMES")) goto l716; goto l663;
  3851. l716:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "NOSCRIPT")) goto l717; goto l663;
  3852. l717:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "OL")) goto l718; goto l663;
  3853. l718:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchChar(G, 'P')) goto l719; goto l663;
  3854. l719:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "PRE")) goto l720; goto l663;
  3855. l720:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "TABLE")) goto l721; goto l663;
  3856. l721:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "UL")) goto l722; goto l663;
  3857. l722:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "DD")) goto l723; goto l663;
  3858. l723:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "DT")) goto l724; goto l663;
  3859. l724:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "FRAMESET")) goto l725; goto l663;
  3860. l725:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "LI")) goto l726; goto l663;
  3861. l726:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "TBODY")) goto l727; goto l663;
  3862. l727:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "TD")) goto l728; goto l663;
  3863. l728:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "TFOOT")) goto l729; goto l663;
  3864. l729:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "TH")) goto l730; goto l663;
  3865. l730:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "THEAD")) goto l731; goto l663;
  3866. l731:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "TR")) goto l732; goto l663;
  3867. l732:; G->pos= yypos663; G->thunkpos= yythunkpos663; if (!yymatchString(G, "SCRIPT")) goto l662;
  3868. }
  3869. l663:;
  3870. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3871. return 1;
  3872. l662:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3873. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3874. return 0;
  3875. }
  3876. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G)
  3877. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3878. yyprintf((stderr, "%s\n", "HtmlBlockSelfClosing")); if (!yymatchChar(G, '<')) goto l733; if (!yy_Spnl(G)) { goto l733; } if (!yy_HtmlBlockType(G)) { goto l733; } if (!yy_Spnl(G)) { goto l733; }
  3879. l734:;
  3880. { int yypos735= G->pos, yythunkpos735= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l735; } goto l734;
  3881. l735:; G->pos= yypos735; G->thunkpos= yythunkpos735;
  3882. } if (!yymatchChar(G, '/')) goto l733; if (!yy_Spnl(G)) { goto l733; } if (!yymatchChar(G, '>')) goto l733;
  3883. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3884. return 1;
  3885. l733:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3886. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3887. return 0;
  3888. }
  3889. YY_RULE(int) yy_HtmlComment(GREG *G)
  3890. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3891. yyprintf((stderr, "%s\n", "HtmlComment")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l736; if (!yy_LocMarker(G)) { goto l736; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "<!--")) goto l736;
  3892. l737:;
  3893. { int yypos738= G->pos, yythunkpos738= G->thunkpos;
  3894. { int yypos739= G->pos, yythunkpos739= G->thunkpos; if (!yymatchString(G, "-->")) goto l739; goto l738;
  3895. l739:; G->pos= yypos739; G->thunkpos= yythunkpos739;
  3896. } if (!yymatchDot(G)) goto l738; goto l737;
  3897. l738:; G->pos= yypos738; G->thunkpos= yythunkpos738;
  3898. } if (!yymatchString(G, "-->")) goto l736; yyText(G, G->begin, G->end); if (!(YY_END)) goto l736; yyDo(G, yy_1_HtmlComment, G->begin, G->end);
  3899. yyprintf((stderr, " ok %s @ %s\n", "HtmlComment", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3900. return 1;
  3901. l736:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3902. yyprintf((stderr, " fail %s @ %s\n", "HtmlComment", G->buf+G->pos));
  3903. return 0;
  3904. }
  3905. YY_RULE(int) yy_HtmlBlockInTags(GREG *G)
  3906. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3907. yyprintf((stderr, "%s\n", "HtmlBlockInTags"));
  3908. { int yypos741= G->pos, yythunkpos741= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l742; } goto l741;
  3909. l742:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockBlockquote(G)) { goto l743; } goto l741;
  3910. l743:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockCenter(G)) { goto l744; } goto l741;
  3911. l744:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockDir(G)) { goto l745; } goto l741;
  3912. l745:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockDiv(G)) { goto l746; } goto l741;
  3913. l746:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockDl(G)) { goto l747; } goto l741;
  3914. l747:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockFieldset(G)) { goto l748; } goto l741;
  3915. l748:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockForm(G)) { goto l749; } goto l741;
  3916. l749:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockH1(G)) { goto l750; } goto l741;
  3917. l750:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockH2(G)) { goto l751; } goto l741;
  3918. l751:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockH3(G)) { goto l752; } goto l741;
  3919. l752:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockH4(G)) { goto l753; } goto l741;
  3920. l753:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockH5(G)) { goto l754; } goto l741;
  3921. l754:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockH6(G)) { goto l755; } goto l741;
  3922. l755:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockMenu(G)) { goto l756; } goto l741;
  3923. l756:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockNoframes(G)) { goto l757; } goto l741;
  3924. l757:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockNoscript(G)) { goto l758; } goto l741;
  3925. l758:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockOl(G)) { goto l759; } goto l741;
  3926. l759:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockP(G)) { goto l760; } goto l741;
  3927. l760:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockPre(G)) { goto l761; } goto l741;
  3928. l761:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockTable(G)) { goto l762; } goto l741;
  3929. l762:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockUl(G)) { goto l763; } goto l741;
  3930. l763:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockDd(G)) { goto l764; } goto l741;
  3931. l764:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockDt(G)) { goto l765; } goto l741;
  3932. l765:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockFrameset(G)) { goto l766; } goto l741;
  3933. l766:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockLi(G)) { goto l767; } goto l741;
  3934. l767:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockTbody(G)) { goto l768; } goto l741;
  3935. l768:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockTd(G)) { goto l769; } goto l741;
  3936. l769:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockTfoot(G)) { goto l770; } goto l741;
  3937. l770:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockTh(G)) { goto l771; } goto l741;
  3938. l771:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockThead(G)) { goto l772; } goto l741;
  3939. l772:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockTr(G)) { goto l773; } goto l741;
  3940. l773:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockScript(G)) { goto l774; } goto l741;
  3941. l774:; G->pos= yypos741; G->thunkpos= yythunkpos741; if (!yy_HtmlBlockHead(G)) { goto l740; }
  3942. }
  3943. l741:;
  3944. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  3945. return 1;
  3946. l740:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3947. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  3948. return 0;
  3949. }
  3950. YY_RULE(int) yy_HtmlBlockHead(GREG *G)
  3951. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3952. yyprintf((stderr, "%s\n", "HtmlBlockHead")); if (!yy_HtmlBlockOpenHead(G)) { goto l775; }
  3953. l776:;
  3954. { int yypos777= G->pos, yythunkpos777= G->thunkpos;
  3955. { int yypos778= G->pos, yythunkpos778= G->thunkpos; if (!yy_HtmlBlockCloseHead(G)) { goto l778; } goto l777;
  3956. l778:; G->pos= yypos778; G->thunkpos= yythunkpos778;
  3957. } if (!yymatchDot(G)) goto l777; goto l776;
  3958. l777:; G->pos= yypos777; G->thunkpos= yythunkpos777;
  3959. } if (!yy_HtmlBlockCloseHead(G)) { goto l775; }
  3960. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  3961. return 1;
  3962. l775:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3963. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  3964. return 0;
  3965. }
  3966. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G)
  3967. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3968. yyprintf((stderr, "%s\n", "HtmlBlockCloseHead")); if (!yymatchChar(G, '<')) goto l779; if (!yy_Spnl(G)) { goto l779; } if (!yymatchChar(G, '/')) goto l779;
  3969. { int yypos780= G->pos, yythunkpos780= G->thunkpos; if (!yymatchString(G, "head")) goto l781; goto l780;
  3970. l781:; G->pos= yypos780; G->thunkpos= yythunkpos780; if (!yymatchString(G, "HEAD")) goto l779;
  3971. }
  3972. l780:; if (!yy_Spnl(G)) { goto l779; } if (!yymatchChar(G, '>')) goto l779;
  3973. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  3974. return 1;
  3975. l779:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3976. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  3977. return 0;
  3978. }
  3979. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G)
  3980. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3981. yyprintf((stderr, "%s\n", "HtmlBlockOpenHead")); if (!yymatchChar(G, '<')) goto l782; if (!yy_Spnl(G)) { goto l782; }
  3982. { int yypos783= G->pos, yythunkpos783= G->thunkpos; if (!yymatchString(G, "head")) goto l784; goto l783;
  3983. l784:; G->pos= yypos783; G->thunkpos= yythunkpos783; if (!yymatchString(G, "HEAD")) goto l782;
  3984. }
  3985. l783:; if (!yy_Spnl(G)) { goto l782; }
  3986. l785:;
  3987. { int yypos786= G->pos, yythunkpos786= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l786; } goto l785;
  3988. l786:; G->pos= yypos786; G->thunkpos= yythunkpos786;
  3989. } if (!yymatchChar(G, '>')) goto l782;
  3990. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  3991. return 1;
  3992. l782:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3993. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  3994. return 0;
  3995. }
  3996. YY_RULE(int) yy_HtmlBlockScript(GREG *G)
  3997. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3998. yyprintf((stderr, "%s\n", "HtmlBlockScript")); if (!yy_HtmlBlockOpenScript(G)) { goto l787; }
  3999. l788:;
  4000. { int yypos789= G->pos, yythunkpos789= G->thunkpos;
  4001. { int yypos790= G->pos, yythunkpos790= G->thunkpos; if (!yy_HtmlBlockCloseScript(G)) { goto l790; } goto l789;
  4002. l790:; G->pos= yypos790; G->thunkpos= yythunkpos790;
  4003. } if (!yymatchDot(G)) goto l789; goto l788;
  4004. l789:; G->pos= yypos789; G->thunkpos= yythunkpos789;
  4005. } if (!yy_HtmlBlockCloseScript(G)) { goto l787; }
  4006. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  4007. return 1;
  4008. l787:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4009. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  4010. return 0;
  4011. }
  4012. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G)
  4013. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4014. yyprintf((stderr, "%s\n", "HtmlBlockCloseScript")); if (!yymatchChar(G, '<')) goto l791; if (!yy_Spnl(G)) { goto l791; } if (!yymatchChar(G, '/')) goto l791;
  4015. { int yypos792= G->pos, yythunkpos792= G->thunkpos; if (!yymatchString(G, "script")) goto l793; goto l792;
  4016. l793:; G->pos= yypos792; G->thunkpos= yythunkpos792; if (!yymatchString(G, "SCRIPT")) goto l791;
  4017. }
  4018. l792:; if (!yy_Spnl(G)) { goto l791; } if (!yymatchChar(G, '>')) goto l791;
  4019. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4020. return 1;
  4021. l791:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4022. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4023. return 0;
  4024. }
  4025. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G)
  4026. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4027. yyprintf((stderr, "%s\n", "HtmlBlockOpenScript")); if (!yymatchChar(G, '<')) goto l794; if (!yy_Spnl(G)) { goto l794; }
  4028. { int yypos795= G->pos, yythunkpos795= G->thunkpos; if (!yymatchString(G, "script")) goto l796; goto l795;
  4029. l796:; G->pos= yypos795; G->thunkpos= yythunkpos795; if (!yymatchString(G, "SCRIPT")) goto l794;
  4030. }
  4031. l795:; if (!yy_Spnl(G)) { goto l794; }
  4032. l797:;
  4033. { int yypos798= G->pos, yythunkpos798= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l798; } goto l797;
  4034. l798:; G->pos= yypos798; G->thunkpos= yythunkpos798;
  4035. } if (!yymatchChar(G, '>')) goto l794;
  4036. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4037. return 1;
  4038. l794:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4039. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4040. return 0;
  4041. }
  4042. YY_RULE(int) yy_HtmlBlockTr(GREG *G)
  4043. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4044. yyprintf((stderr, "%s\n", "HtmlBlockTr")); if (!yy_HtmlBlockOpenTr(G)) { goto l799; }
  4045. l800:;
  4046. { int yypos801= G->pos, yythunkpos801= G->thunkpos;
  4047. { int yypos802= G->pos, yythunkpos802= G->thunkpos; if (!yy_HtmlBlockTr(G)) { goto l803; } goto l802;
  4048. l803:; G->pos= yypos802; G->thunkpos= yythunkpos802;
  4049. { int yypos804= G->pos, yythunkpos804= G->thunkpos; if (!yy_HtmlBlockCloseTr(G)) { goto l804; } goto l801;
  4050. l804:; G->pos= yypos804; G->thunkpos= yythunkpos804;
  4051. } if (!yymatchDot(G)) goto l801;
  4052. }
  4053. l802:; goto l800;
  4054. l801:; G->pos= yypos801; G->thunkpos= yythunkpos801;
  4055. } if (!yy_HtmlBlockCloseTr(G)) { goto l799; }
  4056. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4057. return 1;
  4058. l799:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4059. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4060. return 0;
  4061. }
  4062. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G)
  4063. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4064. yyprintf((stderr, "%s\n", "HtmlBlockCloseTr")); if (!yymatchChar(G, '<')) goto l805; if (!yy_Spnl(G)) { goto l805; } if (!yymatchChar(G, '/')) goto l805;
  4065. { int yypos806= G->pos, yythunkpos806= G->thunkpos; if (!yymatchString(G, "tr")) goto l807; goto l806;
  4066. l807:; G->pos= yypos806; G->thunkpos= yythunkpos806; if (!yymatchString(G, "TR")) goto l805;
  4067. }
  4068. l806:; if (!yy_Spnl(G)) { goto l805; } if (!yymatchChar(G, '>')) goto l805;
  4069. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4070. return 1;
  4071. l805:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4072. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4073. return 0;
  4074. }
  4075. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G)
  4076. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4077. yyprintf((stderr, "%s\n", "HtmlBlockOpenTr")); if (!yymatchChar(G, '<')) goto l808; if (!yy_Spnl(G)) { goto l808; }
  4078. { int yypos809= G->pos, yythunkpos809= G->thunkpos; if (!yymatchString(G, "tr")) goto l810; goto l809;
  4079. l810:; G->pos= yypos809; G->thunkpos= yythunkpos809; if (!yymatchString(G, "TR")) goto l808;
  4080. }
  4081. l809:; if (!yy_Spnl(G)) { goto l808; }
  4082. l811:;
  4083. { int yypos812= G->pos, yythunkpos812= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l812; } goto l811;
  4084. l812:; G->pos= yypos812; G->thunkpos= yythunkpos812;
  4085. } if (!yymatchChar(G, '>')) goto l808;
  4086. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4087. return 1;
  4088. l808:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4089. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4090. return 0;
  4091. }
  4092. YY_RULE(int) yy_HtmlBlockThead(GREG *G)
  4093. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4094. yyprintf((stderr, "%s\n", "HtmlBlockThead")); if (!yy_HtmlBlockOpenThead(G)) { goto l813; }
  4095. l814:;
  4096. { int yypos815= G->pos, yythunkpos815= G->thunkpos;
  4097. { int yypos816= G->pos, yythunkpos816= G->thunkpos; if (!yy_HtmlBlockThead(G)) { goto l817; } goto l816;
  4098. l817:; G->pos= yypos816; G->thunkpos= yythunkpos816;
  4099. { int yypos818= G->pos, yythunkpos818= G->thunkpos; if (!yy_HtmlBlockCloseThead(G)) { goto l818; } goto l815;
  4100. l818:; G->pos= yypos818; G->thunkpos= yythunkpos818;
  4101. } if (!yymatchDot(G)) goto l815;
  4102. }
  4103. l816:; goto l814;
  4104. l815:; G->pos= yypos815; G->thunkpos= yythunkpos815;
  4105. } if (!yy_HtmlBlockCloseThead(G)) { goto l813; }
  4106. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4107. return 1;
  4108. l813:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4109. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4110. return 0;
  4111. }
  4112. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G)
  4113. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4114. yyprintf((stderr, "%s\n", "HtmlBlockCloseThead")); if (!yymatchChar(G, '<')) goto l819; if (!yy_Spnl(G)) { goto l819; } if (!yymatchChar(G, '/')) goto l819;
  4115. { int yypos820= G->pos, yythunkpos820= G->thunkpos; if (!yymatchString(G, "thead")) goto l821; goto l820;
  4116. l821:; G->pos= yypos820; G->thunkpos= yythunkpos820; if (!yymatchString(G, "THEAD")) goto l819;
  4117. }
  4118. l820:; if (!yy_Spnl(G)) { goto l819; } if (!yymatchChar(G, '>')) goto l819;
  4119. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4120. return 1;
  4121. l819:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4122. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4123. return 0;
  4124. }
  4125. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G)
  4126. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4127. yyprintf((stderr, "%s\n", "HtmlBlockOpenThead")); if (!yymatchChar(G, '<')) goto l822; if (!yy_Spnl(G)) { goto l822; }
  4128. { int yypos823= G->pos, yythunkpos823= G->thunkpos; if (!yymatchString(G, "thead")) goto l824; goto l823;
  4129. l824:; G->pos= yypos823; G->thunkpos= yythunkpos823; if (!yymatchString(G, "THEAD")) goto l822;
  4130. }
  4131. l823:; if (!yy_Spnl(G)) { goto l822; }
  4132. l825:;
  4133. { int yypos826= G->pos, yythunkpos826= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l826; } goto l825;
  4134. l826:; G->pos= yypos826; G->thunkpos= yythunkpos826;
  4135. } if (!yymatchChar(G, '>')) goto l822;
  4136. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4137. return 1;
  4138. l822:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4139. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4140. return 0;
  4141. }
  4142. YY_RULE(int) yy_HtmlBlockTh(GREG *G)
  4143. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4144. yyprintf((stderr, "%s\n", "HtmlBlockTh")); if (!yy_HtmlBlockOpenTh(G)) { goto l827; }
  4145. l828:;
  4146. { int yypos829= G->pos, yythunkpos829= G->thunkpos;
  4147. { int yypos830= G->pos, yythunkpos830= G->thunkpos; if (!yy_HtmlBlockTh(G)) { goto l831; } goto l830;
  4148. l831:; G->pos= yypos830; G->thunkpos= yythunkpos830;
  4149. { int yypos832= G->pos, yythunkpos832= G->thunkpos; if (!yy_HtmlBlockCloseTh(G)) { goto l832; } goto l829;
  4150. l832:; G->pos= yypos832; G->thunkpos= yythunkpos832;
  4151. } if (!yymatchDot(G)) goto l829;
  4152. }
  4153. l830:; goto l828;
  4154. l829:; G->pos= yypos829; G->thunkpos= yythunkpos829;
  4155. } if (!yy_HtmlBlockCloseTh(G)) { goto l827; }
  4156. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4157. return 1;
  4158. l827:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4159. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4160. return 0;
  4161. }
  4162. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G)
  4163. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4164. yyprintf((stderr, "%s\n", "HtmlBlockCloseTh")); if (!yymatchChar(G, '<')) goto l833; if (!yy_Spnl(G)) { goto l833; } if (!yymatchChar(G, '/')) goto l833;
  4165. { int yypos834= G->pos, yythunkpos834= G->thunkpos; if (!yymatchString(G, "th")) goto l835; goto l834;
  4166. l835:; G->pos= yypos834; G->thunkpos= yythunkpos834; if (!yymatchString(G, "TH")) goto l833;
  4167. }
  4168. l834:; if (!yy_Spnl(G)) { goto l833; } if (!yymatchChar(G, '>')) goto l833;
  4169. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4170. return 1;
  4171. l833:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4172. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4173. return 0;
  4174. }
  4175. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G)
  4176. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4177. yyprintf((stderr, "%s\n", "HtmlBlockOpenTh")); if (!yymatchChar(G, '<')) goto l836; if (!yy_Spnl(G)) { goto l836; }
  4178. { int yypos837= G->pos, yythunkpos837= G->thunkpos; if (!yymatchString(G, "th")) goto l838; goto l837;
  4179. l838:; G->pos= yypos837; G->thunkpos= yythunkpos837; if (!yymatchString(G, "TH")) goto l836;
  4180. }
  4181. l837:; if (!yy_Spnl(G)) { goto l836; }
  4182. l839:;
  4183. { int yypos840= G->pos, yythunkpos840= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l840; } goto l839;
  4184. l840:; G->pos= yypos840; G->thunkpos= yythunkpos840;
  4185. } if (!yymatchChar(G, '>')) goto l836;
  4186. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4187. return 1;
  4188. l836:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4189. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4190. return 0;
  4191. }
  4192. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G)
  4193. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4194. yyprintf((stderr, "%s\n", "HtmlBlockTfoot")); if (!yy_HtmlBlockOpenTfoot(G)) { goto l841; }
  4195. l842:;
  4196. { int yypos843= G->pos, yythunkpos843= G->thunkpos;
  4197. { int yypos844= G->pos, yythunkpos844= G->thunkpos; if (!yy_HtmlBlockTfoot(G)) { goto l845; } goto l844;
  4198. l845:; G->pos= yypos844; G->thunkpos= yythunkpos844;
  4199. { int yypos846= G->pos, yythunkpos846= G->thunkpos; if (!yy_HtmlBlockCloseTfoot(G)) { goto l846; } goto l843;
  4200. l846:; G->pos= yypos846; G->thunkpos= yythunkpos846;
  4201. } if (!yymatchDot(G)) goto l843;
  4202. }
  4203. l844:; goto l842;
  4204. l843:; G->pos= yypos843; G->thunkpos= yythunkpos843;
  4205. } if (!yy_HtmlBlockCloseTfoot(G)) { goto l841; }
  4206. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4207. return 1;
  4208. l841:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4209. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4210. return 0;
  4211. }
  4212. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G)
  4213. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4214. yyprintf((stderr, "%s\n", "HtmlBlockCloseTfoot")); if (!yymatchChar(G, '<')) goto l847; if (!yy_Spnl(G)) { goto l847; } if (!yymatchChar(G, '/')) goto l847;
  4215. { int yypos848= G->pos, yythunkpos848= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l849; goto l848;
  4216. l849:; G->pos= yypos848; G->thunkpos= yythunkpos848; if (!yymatchString(G, "TFOOT")) goto l847;
  4217. }
  4218. l848:; if (!yy_Spnl(G)) { goto l847; } if (!yymatchChar(G, '>')) goto l847;
  4219. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4220. return 1;
  4221. l847:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4222. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4223. return 0;
  4224. }
  4225. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G)
  4226. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4227. yyprintf((stderr, "%s\n", "HtmlBlockOpenTfoot")); if (!yymatchChar(G, '<')) goto l850; if (!yy_Spnl(G)) { goto l850; }
  4228. { int yypos851= G->pos, yythunkpos851= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l852; goto l851;
  4229. l852:; G->pos= yypos851; G->thunkpos= yythunkpos851; if (!yymatchString(G, "TFOOT")) goto l850;
  4230. }
  4231. l851:; if (!yy_Spnl(G)) { goto l850; }
  4232. l853:;
  4233. { int yypos854= G->pos, yythunkpos854= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l854; } goto l853;
  4234. l854:; G->pos= yypos854; G->thunkpos= yythunkpos854;
  4235. } if (!yymatchChar(G, '>')) goto l850;
  4236. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4237. return 1;
  4238. l850:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4239. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4240. return 0;
  4241. }
  4242. YY_RULE(int) yy_HtmlBlockTd(GREG *G)
  4243. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4244. yyprintf((stderr, "%s\n", "HtmlBlockTd")); if (!yy_HtmlBlockOpenTd(G)) { goto l855; }
  4245. l856:;
  4246. { int yypos857= G->pos, yythunkpos857= G->thunkpos;
  4247. { int yypos858= G->pos, yythunkpos858= G->thunkpos; if (!yy_HtmlBlockTd(G)) { goto l859; } goto l858;
  4248. l859:; G->pos= yypos858; G->thunkpos= yythunkpos858;
  4249. { int yypos860= G->pos, yythunkpos860= G->thunkpos; if (!yy_HtmlBlockCloseTd(G)) { goto l860; } goto l857;
  4250. l860:; G->pos= yypos860; G->thunkpos= yythunkpos860;
  4251. } if (!yymatchDot(G)) goto l857;
  4252. }
  4253. l858:; goto l856;
  4254. l857:; G->pos= yypos857; G->thunkpos= yythunkpos857;
  4255. } if (!yy_HtmlBlockCloseTd(G)) { goto l855; }
  4256. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4257. return 1;
  4258. l855:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4259. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4260. return 0;
  4261. }
  4262. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G)
  4263. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4264. yyprintf((stderr, "%s\n", "HtmlBlockCloseTd")); if (!yymatchChar(G, '<')) goto l861; if (!yy_Spnl(G)) { goto l861; } if (!yymatchChar(G, '/')) goto l861;
  4265. { int yypos862= G->pos, yythunkpos862= G->thunkpos; if (!yymatchString(G, "td")) goto l863; goto l862;
  4266. l863:; G->pos= yypos862; G->thunkpos= yythunkpos862; if (!yymatchString(G, "TD")) goto l861;
  4267. }
  4268. l862:; if (!yy_Spnl(G)) { goto l861; } if (!yymatchChar(G, '>')) goto l861;
  4269. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4270. return 1;
  4271. l861:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4272. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4273. return 0;
  4274. }
  4275. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G)
  4276. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4277. yyprintf((stderr, "%s\n", "HtmlBlockOpenTd")); if (!yymatchChar(G, '<')) goto l864; if (!yy_Spnl(G)) { goto l864; }
  4278. { int yypos865= G->pos, yythunkpos865= G->thunkpos; if (!yymatchString(G, "td")) goto l866; goto l865;
  4279. l866:; G->pos= yypos865; G->thunkpos= yythunkpos865; if (!yymatchString(G, "TD")) goto l864;
  4280. }
  4281. l865:; if (!yy_Spnl(G)) { goto l864; }
  4282. l867:;
  4283. { int yypos868= G->pos, yythunkpos868= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l868; } goto l867;
  4284. l868:; G->pos= yypos868; G->thunkpos= yythunkpos868;
  4285. } if (!yymatchChar(G, '>')) goto l864;
  4286. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4287. return 1;
  4288. l864:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4289. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4290. return 0;
  4291. }
  4292. YY_RULE(int) yy_HtmlBlockTbody(GREG *G)
  4293. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4294. yyprintf((stderr, "%s\n", "HtmlBlockTbody")); if (!yy_HtmlBlockOpenTbody(G)) { goto l869; }
  4295. l870:;
  4296. { int yypos871= G->pos, yythunkpos871= G->thunkpos;
  4297. { int yypos872= G->pos, yythunkpos872= G->thunkpos; if (!yy_HtmlBlockTbody(G)) { goto l873; } goto l872;
  4298. l873:; G->pos= yypos872; G->thunkpos= yythunkpos872;
  4299. { int yypos874= G->pos, yythunkpos874= G->thunkpos; if (!yy_HtmlBlockCloseTbody(G)) { goto l874; } goto l871;
  4300. l874:; G->pos= yypos874; G->thunkpos= yythunkpos874;
  4301. } if (!yymatchDot(G)) goto l871;
  4302. }
  4303. l872:; goto l870;
  4304. l871:; G->pos= yypos871; G->thunkpos= yythunkpos871;
  4305. } if (!yy_HtmlBlockCloseTbody(G)) { goto l869; }
  4306. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4307. return 1;
  4308. l869:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4309. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4310. return 0;
  4311. }
  4312. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G)
  4313. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4314. yyprintf((stderr, "%s\n", "HtmlBlockCloseTbody")); if (!yymatchChar(G, '<')) goto l875; if (!yy_Spnl(G)) { goto l875; } if (!yymatchChar(G, '/')) goto l875;
  4315. { int yypos876= G->pos, yythunkpos876= G->thunkpos; if (!yymatchString(G, "tbody")) goto l877; goto l876;
  4316. l877:; G->pos= yypos876; G->thunkpos= yythunkpos876; if (!yymatchString(G, "TBODY")) goto l875;
  4317. }
  4318. l876:; if (!yy_Spnl(G)) { goto l875; } if (!yymatchChar(G, '>')) goto l875;
  4319. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4320. return 1;
  4321. l875:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4322. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4323. return 0;
  4324. }
  4325. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G)
  4326. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4327. yyprintf((stderr, "%s\n", "HtmlBlockOpenTbody")); if (!yymatchChar(G, '<')) goto l878; if (!yy_Spnl(G)) { goto l878; }
  4328. { int yypos879= G->pos, yythunkpos879= G->thunkpos; if (!yymatchString(G, "tbody")) goto l880; goto l879;
  4329. l880:; G->pos= yypos879; G->thunkpos= yythunkpos879; if (!yymatchString(G, "TBODY")) goto l878;
  4330. }
  4331. l879:; if (!yy_Spnl(G)) { goto l878; }
  4332. l881:;
  4333. { int yypos882= G->pos, yythunkpos882= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l882; } goto l881;
  4334. l882:; G->pos= yypos882; G->thunkpos= yythunkpos882;
  4335. } if (!yymatchChar(G, '>')) goto l878;
  4336. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4337. return 1;
  4338. l878:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4339. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4340. return 0;
  4341. }
  4342. YY_RULE(int) yy_HtmlBlockLi(GREG *G)
  4343. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4344. yyprintf((stderr, "%s\n", "HtmlBlockLi")); if (!yy_HtmlBlockOpenLi(G)) { goto l883; }
  4345. l884:;
  4346. { int yypos885= G->pos, yythunkpos885= G->thunkpos;
  4347. { int yypos886= G->pos, yythunkpos886= G->thunkpos; if (!yy_HtmlBlockLi(G)) { goto l887; } goto l886;
  4348. l887:; G->pos= yypos886; G->thunkpos= yythunkpos886;
  4349. { int yypos888= G->pos, yythunkpos888= G->thunkpos; if (!yy_HtmlBlockCloseLi(G)) { goto l888; } goto l885;
  4350. l888:; G->pos= yypos888; G->thunkpos= yythunkpos888;
  4351. } if (!yymatchDot(G)) goto l885;
  4352. }
  4353. l886:; goto l884;
  4354. l885:; G->pos= yypos885; G->thunkpos= yythunkpos885;
  4355. } if (!yy_HtmlBlockCloseLi(G)) { goto l883; }
  4356. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4357. return 1;
  4358. l883:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4359. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4360. return 0;
  4361. }
  4362. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G)
  4363. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4364. yyprintf((stderr, "%s\n", "HtmlBlockCloseLi")); if (!yymatchChar(G, '<')) goto l889; if (!yy_Spnl(G)) { goto l889; } if (!yymatchChar(G, '/')) goto l889;
  4365. { int yypos890= G->pos, yythunkpos890= G->thunkpos; if (!yymatchString(G, "li")) goto l891; goto l890;
  4366. l891:; G->pos= yypos890; G->thunkpos= yythunkpos890; if (!yymatchString(G, "LI")) goto l889;
  4367. }
  4368. l890:; if (!yy_Spnl(G)) { goto l889; } if (!yymatchChar(G, '>')) goto l889;
  4369. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4370. return 1;
  4371. l889:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4372. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4373. return 0;
  4374. }
  4375. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G)
  4376. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4377. yyprintf((stderr, "%s\n", "HtmlBlockOpenLi")); if (!yymatchChar(G, '<')) goto l892; if (!yy_Spnl(G)) { goto l892; }
  4378. { int yypos893= G->pos, yythunkpos893= G->thunkpos; if (!yymatchString(G, "li")) goto l894; goto l893;
  4379. l894:; G->pos= yypos893; G->thunkpos= yythunkpos893; if (!yymatchString(G, "LI")) goto l892;
  4380. }
  4381. l893:; if (!yy_Spnl(G)) { goto l892; }
  4382. l895:;
  4383. { int yypos896= G->pos, yythunkpos896= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l896; } goto l895;
  4384. l896:; G->pos= yypos896; G->thunkpos= yythunkpos896;
  4385. } if (!yymatchChar(G, '>')) goto l892;
  4386. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4387. return 1;
  4388. l892:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4389. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4390. return 0;
  4391. }
  4392. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G)
  4393. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4394. yyprintf((stderr, "%s\n", "HtmlBlockFrameset")); if (!yy_HtmlBlockOpenFrameset(G)) { goto l897; }
  4395. l898:;
  4396. { int yypos899= G->pos, yythunkpos899= G->thunkpos;
  4397. { int yypos900= G->pos, yythunkpos900= G->thunkpos; if (!yy_HtmlBlockFrameset(G)) { goto l901; } goto l900;
  4398. l901:; G->pos= yypos900; G->thunkpos= yythunkpos900;
  4399. { int yypos902= G->pos, yythunkpos902= G->thunkpos; if (!yy_HtmlBlockCloseFrameset(G)) { goto l902; } goto l899;
  4400. l902:; G->pos= yypos902; G->thunkpos= yythunkpos902;
  4401. } if (!yymatchDot(G)) goto l899;
  4402. }
  4403. l900:; goto l898;
  4404. l899:; G->pos= yypos899; G->thunkpos= yythunkpos899;
  4405. } if (!yy_HtmlBlockCloseFrameset(G)) { goto l897; }
  4406. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4407. return 1;
  4408. l897:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4409. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4410. return 0;
  4411. }
  4412. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G)
  4413. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4414. yyprintf((stderr, "%s\n", "HtmlBlockCloseFrameset")); if (!yymatchChar(G, '<')) goto l903; if (!yy_Spnl(G)) { goto l903; } if (!yymatchChar(G, '/')) goto l903;
  4415. { int yypos904= G->pos, yythunkpos904= G->thunkpos; if (!yymatchString(G, "frameset")) goto l905; goto l904;
  4416. l905:; G->pos= yypos904; G->thunkpos= yythunkpos904; if (!yymatchString(G, "FRAMESET")) goto l903;
  4417. }
  4418. l904:; if (!yy_Spnl(G)) { goto l903; } if (!yymatchChar(G, '>')) goto l903;
  4419. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4420. return 1;
  4421. l903:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4422. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4423. return 0;
  4424. }
  4425. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G)
  4426. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4427. yyprintf((stderr, "%s\n", "HtmlBlockOpenFrameset")); if (!yymatchChar(G, '<')) goto l906; if (!yy_Spnl(G)) { goto l906; }
  4428. { int yypos907= G->pos, yythunkpos907= G->thunkpos; if (!yymatchString(G, "frameset")) goto l908; goto l907;
  4429. l908:; G->pos= yypos907; G->thunkpos= yythunkpos907; if (!yymatchString(G, "FRAMESET")) goto l906;
  4430. }
  4431. l907:; if (!yy_Spnl(G)) { goto l906; }
  4432. l909:;
  4433. { int yypos910= G->pos, yythunkpos910= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l910; } goto l909;
  4434. l910:; G->pos= yypos910; G->thunkpos= yythunkpos910;
  4435. } if (!yymatchChar(G, '>')) goto l906;
  4436. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4437. return 1;
  4438. l906:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4439. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4440. return 0;
  4441. }
  4442. YY_RULE(int) yy_HtmlBlockDt(GREG *G)
  4443. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4444. yyprintf((stderr, "%s\n", "HtmlBlockDt")); if (!yy_HtmlBlockOpenDt(G)) { goto l911; }
  4445. l912:;
  4446. { int yypos913= G->pos, yythunkpos913= G->thunkpos;
  4447. { int yypos914= G->pos, yythunkpos914= G->thunkpos; if (!yy_HtmlBlockDt(G)) { goto l915; } goto l914;
  4448. l915:; G->pos= yypos914; G->thunkpos= yythunkpos914;
  4449. { int yypos916= G->pos, yythunkpos916= G->thunkpos; if (!yy_HtmlBlockCloseDt(G)) { goto l916; } goto l913;
  4450. l916:; G->pos= yypos916; G->thunkpos= yythunkpos916;
  4451. } if (!yymatchDot(G)) goto l913;
  4452. }
  4453. l914:; goto l912;
  4454. l913:; G->pos= yypos913; G->thunkpos= yythunkpos913;
  4455. } if (!yy_HtmlBlockCloseDt(G)) { goto l911; }
  4456. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4457. return 1;
  4458. l911:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4459. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4460. return 0;
  4461. }
  4462. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G)
  4463. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4464. yyprintf((stderr, "%s\n", "HtmlBlockCloseDt")); if (!yymatchChar(G, '<')) goto l917; if (!yy_Spnl(G)) { goto l917; } if (!yymatchChar(G, '/')) goto l917;
  4465. { int yypos918= G->pos, yythunkpos918= G->thunkpos; if (!yymatchString(G, "dt")) goto l919; goto l918;
  4466. l919:; G->pos= yypos918; G->thunkpos= yythunkpos918; if (!yymatchString(G, "DT")) goto l917;
  4467. }
  4468. l918:; if (!yy_Spnl(G)) { goto l917; } if (!yymatchChar(G, '>')) goto l917;
  4469. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4470. return 1;
  4471. l917:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4472. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4473. return 0;
  4474. }
  4475. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G)
  4476. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4477. yyprintf((stderr, "%s\n", "HtmlBlockOpenDt")); if (!yymatchChar(G, '<')) goto l920; if (!yy_Spnl(G)) { goto l920; }
  4478. { int yypos921= G->pos, yythunkpos921= G->thunkpos; if (!yymatchString(G, "dt")) goto l922; goto l921;
  4479. l922:; G->pos= yypos921; G->thunkpos= yythunkpos921; if (!yymatchString(G, "DT")) goto l920;
  4480. }
  4481. l921:; if (!yy_Spnl(G)) { goto l920; }
  4482. l923:;
  4483. { int yypos924= G->pos, yythunkpos924= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l924; } goto l923;
  4484. l924:; G->pos= yypos924; G->thunkpos= yythunkpos924;
  4485. } if (!yymatchChar(G, '>')) goto l920;
  4486. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4487. return 1;
  4488. l920:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4489. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4490. return 0;
  4491. }
  4492. YY_RULE(int) yy_HtmlBlockDd(GREG *G)
  4493. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4494. yyprintf((stderr, "%s\n", "HtmlBlockDd")); if (!yy_HtmlBlockOpenDd(G)) { goto l925; }
  4495. l926:;
  4496. { int yypos927= G->pos, yythunkpos927= G->thunkpos;
  4497. { int yypos928= G->pos, yythunkpos928= G->thunkpos; if (!yy_HtmlBlockDd(G)) { goto l929; } goto l928;
  4498. l929:; G->pos= yypos928; G->thunkpos= yythunkpos928;
  4499. { int yypos930= G->pos, yythunkpos930= G->thunkpos; if (!yy_HtmlBlockCloseDd(G)) { goto l930; } goto l927;
  4500. l930:; G->pos= yypos930; G->thunkpos= yythunkpos930;
  4501. } if (!yymatchDot(G)) goto l927;
  4502. }
  4503. l928:; goto l926;
  4504. l927:; G->pos= yypos927; G->thunkpos= yythunkpos927;
  4505. } if (!yy_HtmlBlockCloseDd(G)) { goto l925; }
  4506. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4507. return 1;
  4508. l925:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4509. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4510. return 0;
  4511. }
  4512. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G)
  4513. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4514. yyprintf((stderr, "%s\n", "HtmlBlockCloseDd")); if (!yymatchChar(G, '<')) goto l931; if (!yy_Spnl(G)) { goto l931; } if (!yymatchChar(G, '/')) goto l931;
  4515. { int yypos932= G->pos, yythunkpos932= G->thunkpos; if (!yymatchString(G, "dd")) goto l933; goto l932;
  4516. l933:; G->pos= yypos932; G->thunkpos= yythunkpos932; if (!yymatchString(G, "DD")) goto l931;
  4517. }
  4518. l932:; if (!yy_Spnl(G)) { goto l931; } if (!yymatchChar(G, '>')) goto l931;
  4519. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4520. return 1;
  4521. l931:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4522. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4523. return 0;
  4524. }
  4525. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G)
  4526. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4527. yyprintf((stderr, "%s\n", "HtmlBlockOpenDd")); if (!yymatchChar(G, '<')) goto l934; if (!yy_Spnl(G)) { goto l934; }
  4528. { int yypos935= G->pos, yythunkpos935= G->thunkpos; if (!yymatchString(G, "dd")) goto l936; goto l935;
  4529. l936:; G->pos= yypos935; G->thunkpos= yythunkpos935; if (!yymatchString(G, "DD")) goto l934;
  4530. }
  4531. l935:; if (!yy_Spnl(G)) { goto l934; }
  4532. l937:;
  4533. { int yypos938= G->pos, yythunkpos938= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l938; } goto l937;
  4534. l938:; G->pos= yypos938; G->thunkpos= yythunkpos938;
  4535. } if (!yymatchChar(G, '>')) goto l934;
  4536. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4537. return 1;
  4538. l934:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4539. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4540. return 0;
  4541. }
  4542. YY_RULE(int) yy_HtmlBlockUl(GREG *G)
  4543. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4544. yyprintf((stderr, "%s\n", "HtmlBlockUl")); if (!yy_HtmlBlockOpenUl(G)) { goto l939; }
  4545. l940:;
  4546. { int yypos941= G->pos, yythunkpos941= G->thunkpos;
  4547. { int yypos942= G->pos, yythunkpos942= G->thunkpos; if (!yy_HtmlBlockUl(G)) { goto l943; } goto l942;
  4548. l943:; G->pos= yypos942; G->thunkpos= yythunkpos942;
  4549. { int yypos944= G->pos, yythunkpos944= G->thunkpos; if (!yy_HtmlBlockCloseUl(G)) { goto l944; } goto l941;
  4550. l944:; G->pos= yypos944; G->thunkpos= yythunkpos944;
  4551. } if (!yymatchDot(G)) goto l941;
  4552. }
  4553. l942:; goto l940;
  4554. l941:; G->pos= yypos941; G->thunkpos= yythunkpos941;
  4555. } if (!yy_HtmlBlockCloseUl(G)) { goto l939; }
  4556. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4557. return 1;
  4558. l939:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4559. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4560. return 0;
  4561. }
  4562. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G)
  4563. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4564. yyprintf((stderr, "%s\n", "HtmlBlockCloseUl")); if (!yymatchChar(G, '<')) goto l945; if (!yy_Spnl(G)) { goto l945; } if (!yymatchChar(G, '/')) goto l945;
  4565. { int yypos946= G->pos, yythunkpos946= G->thunkpos; if (!yymatchString(G, "ul")) goto l947; goto l946;
  4566. l947:; G->pos= yypos946; G->thunkpos= yythunkpos946; if (!yymatchString(G, "UL")) goto l945;
  4567. }
  4568. l946:; if (!yy_Spnl(G)) { goto l945; } if (!yymatchChar(G, '>')) goto l945;
  4569. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4570. return 1;
  4571. l945:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4572. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4573. return 0;
  4574. }
  4575. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G)
  4576. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4577. yyprintf((stderr, "%s\n", "HtmlBlockOpenUl")); if (!yymatchChar(G, '<')) goto l948; if (!yy_Spnl(G)) { goto l948; }
  4578. { int yypos949= G->pos, yythunkpos949= G->thunkpos; if (!yymatchString(G, "ul")) goto l950; goto l949;
  4579. l950:; G->pos= yypos949; G->thunkpos= yythunkpos949; if (!yymatchString(G, "UL")) goto l948;
  4580. }
  4581. l949:; if (!yy_Spnl(G)) { goto l948; }
  4582. l951:;
  4583. { int yypos952= G->pos, yythunkpos952= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l952; } goto l951;
  4584. l952:; G->pos= yypos952; G->thunkpos= yythunkpos952;
  4585. } if (!yymatchChar(G, '>')) goto l948;
  4586. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4587. return 1;
  4588. l948:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4589. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4590. return 0;
  4591. }
  4592. YY_RULE(int) yy_HtmlBlockTable(GREG *G)
  4593. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4594. yyprintf((stderr, "%s\n", "HtmlBlockTable")); if (!yy_HtmlBlockOpenTable(G)) { goto l953; }
  4595. l954:;
  4596. { int yypos955= G->pos, yythunkpos955= G->thunkpos;
  4597. { int yypos956= G->pos, yythunkpos956= G->thunkpos; if (!yy_HtmlBlockTable(G)) { goto l957; } goto l956;
  4598. l957:; G->pos= yypos956; G->thunkpos= yythunkpos956;
  4599. { int yypos958= G->pos, yythunkpos958= G->thunkpos; if (!yy_HtmlBlockCloseTable(G)) { goto l958; } goto l955;
  4600. l958:; G->pos= yypos958; G->thunkpos= yythunkpos958;
  4601. } if (!yymatchDot(G)) goto l955;
  4602. }
  4603. l956:; goto l954;
  4604. l955:; G->pos= yypos955; G->thunkpos= yythunkpos955;
  4605. } if (!yy_HtmlBlockCloseTable(G)) { goto l953; }
  4606. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4607. return 1;
  4608. l953:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4609. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4610. return 0;
  4611. }
  4612. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G)
  4613. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4614. yyprintf((stderr, "%s\n", "HtmlBlockCloseTable")); if (!yymatchChar(G, '<')) goto l959; if (!yy_Spnl(G)) { goto l959; } if (!yymatchChar(G, '/')) goto l959;
  4615. { int yypos960= G->pos, yythunkpos960= G->thunkpos; if (!yymatchString(G, "table")) goto l961; goto l960;
  4616. l961:; G->pos= yypos960; G->thunkpos= yythunkpos960; if (!yymatchString(G, "TABLE")) goto l959;
  4617. }
  4618. l960:; if (!yy_Spnl(G)) { goto l959; } if (!yymatchChar(G, '>')) goto l959;
  4619. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4620. return 1;
  4621. l959:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4622. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4623. return 0;
  4624. }
  4625. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G)
  4626. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4627. yyprintf((stderr, "%s\n", "HtmlBlockOpenTable")); if (!yymatchChar(G, '<')) goto l962; if (!yy_Spnl(G)) { goto l962; }
  4628. { int yypos963= G->pos, yythunkpos963= G->thunkpos; if (!yymatchString(G, "table")) goto l964; goto l963;
  4629. l964:; G->pos= yypos963; G->thunkpos= yythunkpos963; if (!yymatchString(G, "TABLE")) goto l962;
  4630. }
  4631. l963:; if (!yy_Spnl(G)) { goto l962; }
  4632. l965:;
  4633. { int yypos966= G->pos, yythunkpos966= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l966; } goto l965;
  4634. l966:; G->pos= yypos966; G->thunkpos= yythunkpos966;
  4635. } if (!yymatchChar(G, '>')) goto l962;
  4636. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4637. return 1;
  4638. l962:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4639. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4640. return 0;
  4641. }
  4642. YY_RULE(int) yy_HtmlBlockPre(GREG *G)
  4643. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4644. yyprintf((stderr, "%s\n", "HtmlBlockPre")); if (!yy_HtmlBlockOpenPre(G)) { goto l967; }
  4645. l968:;
  4646. { int yypos969= G->pos, yythunkpos969= G->thunkpos;
  4647. { int yypos970= G->pos, yythunkpos970= G->thunkpos; if (!yy_HtmlBlockPre(G)) { goto l971; } goto l970;
  4648. l971:; G->pos= yypos970; G->thunkpos= yythunkpos970;
  4649. { int yypos972= G->pos, yythunkpos972= G->thunkpos; if (!yy_HtmlBlockClosePre(G)) { goto l972; } goto l969;
  4650. l972:; G->pos= yypos972; G->thunkpos= yythunkpos972;
  4651. } if (!yymatchDot(G)) goto l969;
  4652. }
  4653. l970:; goto l968;
  4654. l969:; G->pos= yypos969; G->thunkpos= yythunkpos969;
  4655. } if (!yy_HtmlBlockClosePre(G)) { goto l967; }
  4656. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4657. return 1;
  4658. l967:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4659. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4660. return 0;
  4661. }
  4662. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G)
  4663. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4664. yyprintf((stderr, "%s\n", "HtmlBlockClosePre")); if (!yymatchChar(G, '<')) goto l973; if (!yy_Spnl(G)) { goto l973; } if (!yymatchChar(G, '/')) goto l973;
  4665. { int yypos974= G->pos, yythunkpos974= G->thunkpos; if (!yymatchString(G, "pre")) goto l975; goto l974;
  4666. l975:; G->pos= yypos974; G->thunkpos= yythunkpos974; if (!yymatchString(G, "PRE")) goto l973;
  4667. }
  4668. l974:; if (!yy_Spnl(G)) { goto l973; } if (!yymatchChar(G, '>')) goto l973;
  4669. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4670. return 1;
  4671. l973:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4672. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4673. return 0;
  4674. }
  4675. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G)
  4676. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4677. yyprintf((stderr, "%s\n", "HtmlBlockOpenPre")); if (!yymatchChar(G, '<')) goto l976; if (!yy_Spnl(G)) { goto l976; }
  4678. { int yypos977= G->pos, yythunkpos977= G->thunkpos; if (!yymatchString(G, "pre")) goto l978; goto l977;
  4679. l978:; G->pos= yypos977; G->thunkpos= yythunkpos977; if (!yymatchString(G, "PRE")) goto l976;
  4680. }
  4681. l977:; if (!yy_Spnl(G)) { goto l976; }
  4682. l979:;
  4683. { int yypos980= G->pos, yythunkpos980= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l980; } goto l979;
  4684. l980:; G->pos= yypos980; G->thunkpos= yythunkpos980;
  4685. } if (!yymatchChar(G, '>')) goto l976;
  4686. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4687. return 1;
  4688. l976:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4689. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4690. return 0;
  4691. }
  4692. YY_RULE(int) yy_HtmlBlockP(GREG *G)
  4693. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4694. yyprintf((stderr, "%s\n", "HtmlBlockP")); if (!yy_HtmlBlockOpenP(G)) { goto l981; }
  4695. l982:;
  4696. { int yypos983= G->pos, yythunkpos983= G->thunkpos;
  4697. { int yypos984= G->pos, yythunkpos984= G->thunkpos; if (!yy_HtmlBlockP(G)) { goto l985; } goto l984;
  4698. l985:; G->pos= yypos984; G->thunkpos= yythunkpos984;
  4699. { int yypos986= G->pos, yythunkpos986= G->thunkpos; if (!yy_HtmlBlockCloseP(G)) { goto l986; } goto l983;
  4700. l986:; G->pos= yypos986; G->thunkpos= yythunkpos986;
  4701. } if (!yymatchDot(G)) goto l983;
  4702. }
  4703. l984:; goto l982;
  4704. l983:; G->pos= yypos983; G->thunkpos= yythunkpos983;
  4705. } if (!yy_HtmlBlockCloseP(G)) { goto l981; }
  4706. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4707. return 1;
  4708. l981:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4709. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4710. return 0;
  4711. }
  4712. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G)
  4713. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4714. yyprintf((stderr, "%s\n", "HtmlBlockCloseP")); if (!yymatchChar(G, '<')) goto l987; if (!yy_Spnl(G)) { goto l987; } if (!yymatchChar(G, '/')) goto l987;
  4715. { int yypos988= G->pos, yythunkpos988= G->thunkpos; if (!yymatchChar(G, 'p')) goto l989; goto l988;
  4716. l989:; G->pos= yypos988; G->thunkpos= yythunkpos988; if (!yymatchChar(G, 'P')) goto l987;
  4717. }
  4718. l988:; if (!yy_Spnl(G)) { goto l987; } if (!yymatchChar(G, '>')) goto l987;
  4719. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4720. return 1;
  4721. l987:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4722. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4723. return 0;
  4724. }
  4725. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G)
  4726. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4727. yyprintf((stderr, "%s\n", "HtmlBlockOpenP")); if (!yymatchChar(G, '<')) goto l990; if (!yy_Spnl(G)) { goto l990; }
  4728. { int yypos991= G->pos, yythunkpos991= G->thunkpos; if (!yymatchChar(G, 'p')) goto l992; goto l991;
  4729. l992:; G->pos= yypos991; G->thunkpos= yythunkpos991; if (!yymatchChar(G, 'P')) goto l990;
  4730. }
  4731. l991:; if (!yy_Spnl(G)) { goto l990; }
  4732. l993:;
  4733. { int yypos994= G->pos, yythunkpos994= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l994; } goto l993;
  4734. l994:; G->pos= yypos994; G->thunkpos= yythunkpos994;
  4735. } if (!yymatchChar(G, '>')) goto l990;
  4736. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4737. return 1;
  4738. l990:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4739. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4740. return 0;
  4741. }
  4742. YY_RULE(int) yy_HtmlBlockOl(GREG *G)
  4743. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4744. yyprintf((stderr, "%s\n", "HtmlBlockOl")); if (!yy_HtmlBlockOpenOl(G)) { goto l995; }
  4745. l996:;
  4746. { int yypos997= G->pos, yythunkpos997= G->thunkpos;
  4747. { int yypos998= G->pos, yythunkpos998= G->thunkpos; if (!yy_HtmlBlockOl(G)) { goto l999; } goto l998;
  4748. l999:; G->pos= yypos998; G->thunkpos= yythunkpos998;
  4749. { int yypos1000= G->pos, yythunkpos1000= G->thunkpos; if (!yy_HtmlBlockCloseOl(G)) { goto l1000; } goto l997;
  4750. l1000:; G->pos= yypos1000; G->thunkpos= yythunkpos1000;
  4751. } if (!yymatchDot(G)) goto l997;
  4752. }
  4753. l998:; goto l996;
  4754. l997:; G->pos= yypos997; G->thunkpos= yythunkpos997;
  4755. } if (!yy_HtmlBlockCloseOl(G)) { goto l995; }
  4756. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4757. return 1;
  4758. l995:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4759. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4760. return 0;
  4761. }
  4762. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G)
  4763. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4764. yyprintf((stderr, "%s\n", "HtmlBlockCloseOl")); if (!yymatchChar(G, '<')) goto l1001; if (!yy_Spnl(G)) { goto l1001; } if (!yymatchChar(G, '/')) goto l1001;
  4765. { int yypos1002= G->pos, yythunkpos1002= G->thunkpos; if (!yymatchString(G, "ol")) goto l1003; goto l1002;
  4766. l1003:; G->pos= yypos1002; G->thunkpos= yythunkpos1002; if (!yymatchString(G, "OL")) goto l1001;
  4767. }
  4768. l1002:; if (!yy_Spnl(G)) { goto l1001; } if (!yymatchChar(G, '>')) goto l1001;
  4769. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4770. return 1;
  4771. l1001:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4772. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4773. return 0;
  4774. }
  4775. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G)
  4776. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4777. yyprintf((stderr, "%s\n", "HtmlBlockOpenOl")); if (!yymatchChar(G, '<')) goto l1004; if (!yy_Spnl(G)) { goto l1004; }
  4778. { int yypos1005= G->pos, yythunkpos1005= G->thunkpos; if (!yymatchString(G, "ol")) goto l1006; goto l1005;
  4779. l1006:; G->pos= yypos1005; G->thunkpos= yythunkpos1005; if (!yymatchString(G, "OL")) goto l1004;
  4780. }
  4781. l1005:; if (!yy_Spnl(G)) { goto l1004; }
  4782. l1007:;
  4783. { int yypos1008= G->pos, yythunkpos1008= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1008; } goto l1007;
  4784. l1008:; G->pos= yypos1008; G->thunkpos= yythunkpos1008;
  4785. } if (!yymatchChar(G, '>')) goto l1004;
  4786. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4787. return 1;
  4788. l1004:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4789. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4790. return 0;
  4791. }
  4792. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G)
  4793. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4794. yyprintf((stderr, "%s\n", "HtmlBlockNoscript")); if (!yy_HtmlBlockOpenNoscript(G)) { goto l1009; }
  4795. l1010:;
  4796. { int yypos1011= G->pos, yythunkpos1011= G->thunkpos;
  4797. { int yypos1012= G->pos, yythunkpos1012= G->thunkpos; if (!yy_HtmlBlockNoscript(G)) { goto l1013; } goto l1012;
  4798. l1013:; G->pos= yypos1012; G->thunkpos= yythunkpos1012;
  4799. { int yypos1014= G->pos, yythunkpos1014= G->thunkpos; if (!yy_HtmlBlockCloseNoscript(G)) { goto l1014; } goto l1011;
  4800. l1014:; G->pos= yypos1014; G->thunkpos= yythunkpos1014;
  4801. } if (!yymatchDot(G)) goto l1011;
  4802. }
  4803. l1012:; goto l1010;
  4804. l1011:; G->pos= yypos1011; G->thunkpos= yythunkpos1011;
  4805. } if (!yy_HtmlBlockCloseNoscript(G)) { goto l1009; }
  4806. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4807. return 1;
  4808. l1009:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4809. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4810. return 0;
  4811. }
  4812. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G)
  4813. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4814. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoscript")); if (!yymatchChar(G, '<')) goto l1015; if (!yy_Spnl(G)) { goto l1015; } if (!yymatchChar(G, '/')) goto l1015;
  4815. { int yypos1016= G->pos, yythunkpos1016= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1017; goto l1016;
  4816. l1017:; G->pos= yypos1016; G->thunkpos= yythunkpos1016; if (!yymatchString(G, "NOSCRIPT")) goto l1015;
  4817. }
  4818. l1016:; if (!yy_Spnl(G)) { goto l1015; } if (!yymatchChar(G, '>')) goto l1015;
  4819. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4820. return 1;
  4821. l1015:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4822. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4823. return 0;
  4824. }
  4825. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G)
  4826. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4827. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoscript")); if (!yymatchChar(G, '<')) goto l1018; if (!yy_Spnl(G)) { goto l1018; }
  4828. { int yypos1019= G->pos, yythunkpos1019= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1020; goto l1019;
  4829. l1020:; G->pos= yypos1019; G->thunkpos= yythunkpos1019; if (!yymatchString(G, "NOSCRIPT")) goto l1018;
  4830. }
  4831. l1019:; if (!yy_Spnl(G)) { goto l1018; }
  4832. l1021:;
  4833. { int yypos1022= G->pos, yythunkpos1022= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1022; } goto l1021;
  4834. l1022:; G->pos= yypos1022; G->thunkpos= yythunkpos1022;
  4835. } if (!yymatchChar(G, '>')) goto l1018;
  4836. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4837. return 1;
  4838. l1018:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4839. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4840. return 0;
  4841. }
  4842. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G)
  4843. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4844. yyprintf((stderr, "%s\n", "HtmlBlockNoframes")); if (!yy_HtmlBlockOpenNoframes(G)) { goto l1023; }
  4845. l1024:;
  4846. { int yypos1025= G->pos, yythunkpos1025= G->thunkpos;
  4847. { int yypos1026= G->pos, yythunkpos1026= G->thunkpos; if (!yy_HtmlBlockNoframes(G)) { goto l1027; } goto l1026;
  4848. l1027:; G->pos= yypos1026; G->thunkpos= yythunkpos1026;
  4849. { int yypos1028= G->pos, yythunkpos1028= G->thunkpos; if (!yy_HtmlBlockCloseNoframes(G)) { goto l1028; } goto l1025;
  4850. l1028:; G->pos= yypos1028; G->thunkpos= yythunkpos1028;
  4851. } if (!yymatchDot(G)) goto l1025;
  4852. }
  4853. l1026:; goto l1024;
  4854. l1025:; G->pos= yypos1025; G->thunkpos= yythunkpos1025;
  4855. } if (!yy_HtmlBlockCloseNoframes(G)) { goto l1023; }
  4856. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4857. return 1;
  4858. l1023:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4859. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4860. return 0;
  4861. }
  4862. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G)
  4863. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4864. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoframes")); if (!yymatchChar(G, '<')) goto l1029; if (!yy_Spnl(G)) { goto l1029; } if (!yymatchChar(G, '/')) goto l1029;
  4865. { int yypos1030= G->pos, yythunkpos1030= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1031; goto l1030;
  4866. l1031:; G->pos= yypos1030; G->thunkpos= yythunkpos1030; if (!yymatchString(G, "NOFRAMES")) goto l1029;
  4867. }
  4868. l1030:; if (!yy_Spnl(G)) { goto l1029; } if (!yymatchChar(G, '>')) goto l1029;
  4869. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4870. return 1;
  4871. l1029:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4872. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4873. return 0;
  4874. }
  4875. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G)
  4876. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4877. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoframes")); if (!yymatchChar(G, '<')) goto l1032; if (!yy_Spnl(G)) { goto l1032; }
  4878. { int yypos1033= G->pos, yythunkpos1033= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1034; goto l1033;
  4879. l1034:; G->pos= yypos1033; G->thunkpos= yythunkpos1033; if (!yymatchString(G, "NOFRAMES")) goto l1032;
  4880. }
  4881. l1033:; if (!yy_Spnl(G)) { goto l1032; }
  4882. l1035:;
  4883. { int yypos1036= G->pos, yythunkpos1036= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1036; } goto l1035;
  4884. l1036:; G->pos= yypos1036; G->thunkpos= yythunkpos1036;
  4885. } if (!yymatchChar(G, '>')) goto l1032;
  4886. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4887. return 1;
  4888. l1032:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4889. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4890. return 0;
  4891. }
  4892. YY_RULE(int) yy_HtmlBlockMenu(GREG *G)
  4893. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4894. yyprintf((stderr, "%s\n", "HtmlBlockMenu")); if (!yy_HtmlBlockOpenMenu(G)) { goto l1037; }
  4895. l1038:;
  4896. { int yypos1039= G->pos, yythunkpos1039= G->thunkpos;
  4897. { int yypos1040= G->pos, yythunkpos1040= G->thunkpos; if (!yy_HtmlBlockMenu(G)) { goto l1041; } goto l1040;
  4898. l1041:; G->pos= yypos1040; G->thunkpos= yythunkpos1040;
  4899. { int yypos1042= G->pos, yythunkpos1042= G->thunkpos; if (!yy_HtmlBlockCloseMenu(G)) { goto l1042; } goto l1039;
  4900. l1042:; G->pos= yypos1042; G->thunkpos= yythunkpos1042;
  4901. } if (!yymatchDot(G)) goto l1039;
  4902. }
  4903. l1040:; goto l1038;
  4904. l1039:; G->pos= yypos1039; G->thunkpos= yythunkpos1039;
  4905. } if (!yy_HtmlBlockCloseMenu(G)) { goto l1037; }
  4906. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4907. return 1;
  4908. l1037:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4909. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4910. return 0;
  4911. }
  4912. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G)
  4913. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4914. yyprintf((stderr, "%s\n", "HtmlBlockCloseMenu")); if (!yymatchChar(G, '<')) goto l1043; if (!yy_Spnl(G)) { goto l1043; } if (!yymatchChar(G, '/')) goto l1043;
  4915. { int yypos1044= G->pos, yythunkpos1044= G->thunkpos; if (!yymatchString(G, "menu")) goto l1045; goto l1044;
  4916. l1045:; G->pos= yypos1044; G->thunkpos= yythunkpos1044; if (!yymatchString(G, "MENU")) goto l1043;
  4917. }
  4918. l1044:; if (!yy_Spnl(G)) { goto l1043; } if (!yymatchChar(G, '>')) goto l1043;
  4919. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  4920. return 1;
  4921. l1043:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4922. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  4923. return 0;
  4924. }
  4925. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G)
  4926. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4927. yyprintf((stderr, "%s\n", "HtmlBlockOpenMenu")); if (!yymatchChar(G, '<')) goto l1046; if (!yy_Spnl(G)) { goto l1046; }
  4928. { int yypos1047= G->pos, yythunkpos1047= G->thunkpos; if (!yymatchString(G, "menu")) goto l1048; goto l1047;
  4929. l1048:; G->pos= yypos1047; G->thunkpos= yythunkpos1047; if (!yymatchString(G, "MENU")) goto l1046;
  4930. }
  4931. l1047:; if (!yy_Spnl(G)) { goto l1046; }
  4932. l1049:;
  4933. { int yypos1050= G->pos, yythunkpos1050= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1050; } goto l1049;
  4934. l1050:; G->pos= yypos1050; G->thunkpos= yythunkpos1050;
  4935. } if (!yymatchChar(G, '>')) goto l1046;
  4936. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  4937. return 1;
  4938. l1046:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4939. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  4940. return 0;
  4941. }
  4942. YY_RULE(int) yy_HtmlBlockH6(GREG *G)
  4943. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  4944. yyprintf((stderr, "%s\n", "HtmlBlockH6")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1051; if (!yy_LocMarker(G)) { goto l1051; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH6(G)) { goto l1051; }
  4945. l1052:;
  4946. { int yypos1053= G->pos, yythunkpos1053= G->thunkpos;
  4947. { int yypos1054= G->pos, yythunkpos1054= G->thunkpos; if (!yy_HtmlBlockH6(G)) { goto l1055; } goto l1054;
  4948. l1055:; G->pos= yypos1054; G->thunkpos= yythunkpos1054;
  4949. { int yypos1056= G->pos, yythunkpos1056= G->thunkpos; if (!yy_HtmlBlockCloseH6(G)) { goto l1056; } goto l1053;
  4950. l1056:; G->pos= yypos1056; G->thunkpos= yythunkpos1056;
  4951. } if (!yymatchDot(G)) goto l1053;
  4952. }
  4953. l1054:; goto l1052;
  4954. l1053:; G->pos= yypos1053; G->thunkpos= yythunkpos1053;
  4955. } if (!yy_HtmlBlockCloseH6(G)) { goto l1051; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1051; yyDo(G, yy_1_HtmlBlockH6, G->begin, G->end);
  4956. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH6", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  4957. return 1;
  4958. l1051:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4959. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH6", G->buf+G->pos));
  4960. return 0;
  4961. }
  4962. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G)
  4963. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4964. yyprintf((stderr, "%s\n", "HtmlBlockCloseH6")); if (!yymatchChar(G, '<')) goto l1057; if (!yy_Spnl(G)) { goto l1057; } if (!yymatchChar(G, '/')) goto l1057;
  4965. { int yypos1058= G->pos, yythunkpos1058= G->thunkpos; if (!yymatchString(G, "h6")) goto l1059; goto l1058;
  4966. l1059:; G->pos= yypos1058; G->thunkpos= yythunkpos1058; if (!yymatchString(G, "H6")) goto l1057;
  4967. }
  4968. l1058:; if (!yy_Spnl(G)) { goto l1057; } if (!yymatchChar(G, '>')) goto l1057;
  4969. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  4970. return 1;
  4971. l1057:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4972. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  4973. return 0;
  4974. }
  4975. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G)
  4976. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4977. yyprintf((stderr, "%s\n", "HtmlBlockOpenH6")); if (!yymatchChar(G, '<')) goto l1060; if (!yy_Spnl(G)) { goto l1060; }
  4978. { int yypos1061= G->pos, yythunkpos1061= G->thunkpos; if (!yymatchString(G, "h6")) goto l1062; goto l1061;
  4979. l1062:; G->pos= yypos1061; G->thunkpos= yythunkpos1061; if (!yymatchString(G, "H6")) goto l1060;
  4980. }
  4981. l1061:; if (!yy_Spnl(G)) { goto l1060; }
  4982. l1063:;
  4983. { int yypos1064= G->pos, yythunkpos1064= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1064; } goto l1063;
  4984. l1064:; G->pos= yypos1064; G->thunkpos= yythunkpos1064;
  4985. } if (!yymatchChar(G, '>')) goto l1060;
  4986. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  4987. return 1;
  4988. l1060:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4989. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  4990. return 0;
  4991. }
  4992. YY_RULE(int) yy_HtmlBlockH5(GREG *G)
  4993. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  4994. yyprintf((stderr, "%s\n", "HtmlBlockH5")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1065; if (!yy_LocMarker(G)) { goto l1065; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH5(G)) { goto l1065; }
  4995. l1066:;
  4996. { int yypos1067= G->pos, yythunkpos1067= G->thunkpos;
  4997. { int yypos1068= G->pos, yythunkpos1068= G->thunkpos; if (!yy_HtmlBlockH5(G)) { goto l1069; } goto l1068;
  4998. l1069:; G->pos= yypos1068; G->thunkpos= yythunkpos1068;
  4999. { int yypos1070= G->pos, yythunkpos1070= G->thunkpos; if (!yy_HtmlBlockCloseH5(G)) { goto l1070; } goto l1067;
  5000. l1070:; G->pos= yypos1070; G->thunkpos= yythunkpos1070;
  5001. } if (!yymatchDot(G)) goto l1067;
  5002. }
  5003. l1068:; goto l1066;
  5004. l1067:; G->pos= yypos1067; G->thunkpos= yythunkpos1067;
  5005. } if (!yy_HtmlBlockCloseH5(G)) { goto l1065; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1065; yyDo(G, yy_1_HtmlBlockH5, G->begin, G->end);
  5006. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH5", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5007. return 1;
  5008. l1065:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5009. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH5", G->buf+G->pos));
  5010. return 0;
  5011. }
  5012. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G)
  5013. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5014. yyprintf((stderr, "%s\n", "HtmlBlockCloseH5")); if (!yymatchChar(G, '<')) goto l1071; if (!yy_Spnl(G)) { goto l1071; } if (!yymatchChar(G, '/')) goto l1071;
  5015. { int yypos1072= G->pos, yythunkpos1072= G->thunkpos; if (!yymatchString(G, "h5")) goto l1073; goto l1072;
  5016. l1073:; G->pos= yypos1072; G->thunkpos= yythunkpos1072; if (!yymatchString(G, "H5")) goto l1071;
  5017. }
  5018. l1072:; if (!yy_Spnl(G)) { goto l1071; } if (!yymatchChar(G, '>')) goto l1071;
  5019. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5020. return 1;
  5021. l1071:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5022. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5023. return 0;
  5024. }
  5025. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G)
  5026. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5027. yyprintf((stderr, "%s\n", "HtmlBlockOpenH5")); if (!yymatchChar(G, '<')) goto l1074; if (!yy_Spnl(G)) { goto l1074; }
  5028. { int yypos1075= G->pos, yythunkpos1075= G->thunkpos; if (!yymatchString(G, "h5")) goto l1076; goto l1075;
  5029. l1076:; G->pos= yypos1075; G->thunkpos= yythunkpos1075; if (!yymatchString(G, "H5")) goto l1074;
  5030. }
  5031. l1075:; if (!yy_Spnl(G)) { goto l1074; }
  5032. l1077:;
  5033. { int yypos1078= G->pos, yythunkpos1078= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1078; } goto l1077;
  5034. l1078:; G->pos= yypos1078; G->thunkpos= yythunkpos1078;
  5035. } if (!yymatchChar(G, '>')) goto l1074;
  5036. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5037. return 1;
  5038. l1074:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5039. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5040. return 0;
  5041. }
  5042. YY_RULE(int) yy_HtmlBlockH4(GREG *G)
  5043. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5044. yyprintf((stderr, "%s\n", "HtmlBlockH4")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1079; if (!yy_LocMarker(G)) { goto l1079; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH4(G)) { goto l1079; }
  5045. l1080:;
  5046. { int yypos1081= G->pos, yythunkpos1081= G->thunkpos;
  5047. { int yypos1082= G->pos, yythunkpos1082= G->thunkpos; if (!yy_HtmlBlockH4(G)) { goto l1083; } goto l1082;
  5048. l1083:; G->pos= yypos1082; G->thunkpos= yythunkpos1082;
  5049. { int yypos1084= G->pos, yythunkpos1084= G->thunkpos; if (!yy_HtmlBlockCloseH4(G)) { goto l1084; } goto l1081;
  5050. l1084:; G->pos= yypos1084; G->thunkpos= yythunkpos1084;
  5051. } if (!yymatchDot(G)) goto l1081;
  5052. }
  5053. l1082:; goto l1080;
  5054. l1081:; G->pos= yypos1081; G->thunkpos= yythunkpos1081;
  5055. } if (!yy_HtmlBlockCloseH4(G)) { goto l1079; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1079; yyDo(G, yy_1_HtmlBlockH4, G->begin, G->end);
  5056. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH4", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5057. return 1;
  5058. l1079:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5059. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH4", G->buf+G->pos));
  5060. return 0;
  5061. }
  5062. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G)
  5063. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5064. yyprintf((stderr, "%s\n", "HtmlBlockCloseH4")); if (!yymatchChar(G, '<')) goto l1085; if (!yy_Spnl(G)) { goto l1085; } if (!yymatchChar(G, '/')) goto l1085;
  5065. { int yypos1086= G->pos, yythunkpos1086= G->thunkpos; if (!yymatchString(G, "h4")) goto l1087; goto l1086;
  5066. l1087:; G->pos= yypos1086; G->thunkpos= yythunkpos1086; if (!yymatchString(G, "H4")) goto l1085;
  5067. }
  5068. l1086:; if (!yy_Spnl(G)) { goto l1085; } if (!yymatchChar(G, '>')) goto l1085;
  5069. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5070. return 1;
  5071. l1085:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5072. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5073. return 0;
  5074. }
  5075. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G)
  5076. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5077. yyprintf((stderr, "%s\n", "HtmlBlockOpenH4")); if (!yymatchChar(G, '<')) goto l1088; if (!yy_Spnl(G)) { goto l1088; }
  5078. { int yypos1089= G->pos, yythunkpos1089= G->thunkpos; if (!yymatchString(G, "h4")) goto l1090; goto l1089;
  5079. l1090:; G->pos= yypos1089; G->thunkpos= yythunkpos1089; if (!yymatchString(G, "H4")) goto l1088;
  5080. }
  5081. l1089:; if (!yy_Spnl(G)) { goto l1088; }
  5082. l1091:;
  5083. { int yypos1092= G->pos, yythunkpos1092= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1092; } goto l1091;
  5084. l1092:; G->pos= yypos1092; G->thunkpos= yythunkpos1092;
  5085. } if (!yymatchChar(G, '>')) goto l1088;
  5086. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5087. return 1;
  5088. l1088:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5089. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5090. return 0;
  5091. }
  5092. YY_RULE(int) yy_HtmlBlockH3(GREG *G)
  5093. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5094. yyprintf((stderr, "%s\n", "HtmlBlockH3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1093; if (!yy_LocMarker(G)) { goto l1093; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH3(G)) { goto l1093; }
  5095. l1094:;
  5096. { int yypos1095= G->pos, yythunkpos1095= G->thunkpos;
  5097. { int yypos1096= G->pos, yythunkpos1096= G->thunkpos; if (!yy_HtmlBlockH3(G)) { goto l1097; } goto l1096;
  5098. l1097:; G->pos= yypos1096; G->thunkpos= yythunkpos1096;
  5099. { int yypos1098= G->pos, yythunkpos1098= G->thunkpos; if (!yy_HtmlBlockCloseH3(G)) { goto l1098; } goto l1095;
  5100. l1098:; G->pos= yypos1098; G->thunkpos= yythunkpos1098;
  5101. } if (!yymatchDot(G)) goto l1095;
  5102. }
  5103. l1096:; goto l1094;
  5104. l1095:; G->pos= yypos1095; G->thunkpos= yythunkpos1095;
  5105. } if (!yy_HtmlBlockCloseH3(G)) { goto l1093; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1093; yyDo(G, yy_1_HtmlBlockH3, G->begin, G->end);
  5106. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH3", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5107. return 1;
  5108. l1093:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5109. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH3", G->buf+G->pos));
  5110. return 0;
  5111. }
  5112. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G)
  5113. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5114. yyprintf((stderr, "%s\n", "HtmlBlockCloseH3")); if (!yymatchChar(G, '<')) goto l1099; if (!yy_Spnl(G)) { goto l1099; } if (!yymatchChar(G, '/')) goto l1099;
  5115. { int yypos1100= G->pos, yythunkpos1100= G->thunkpos; if (!yymatchString(G, "h3")) goto l1101; goto l1100;
  5116. l1101:; G->pos= yypos1100; G->thunkpos= yythunkpos1100; if (!yymatchString(G, "H3")) goto l1099;
  5117. }
  5118. l1100:; if (!yy_Spnl(G)) { goto l1099; } if (!yymatchChar(G, '>')) goto l1099;
  5119. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5120. return 1;
  5121. l1099:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5122. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5123. return 0;
  5124. }
  5125. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G)
  5126. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5127. yyprintf((stderr, "%s\n", "HtmlBlockOpenH3")); if (!yymatchChar(G, '<')) goto l1102; if (!yy_Spnl(G)) { goto l1102; }
  5128. { int yypos1103= G->pos, yythunkpos1103= G->thunkpos; if (!yymatchString(G, "h3")) goto l1104; goto l1103;
  5129. l1104:; G->pos= yypos1103; G->thunkpos= yythunkpos1103; if (!yymatchString(G, "H3")) goto l1102;
  5130. }
  5131. l1103:; if (!yy_Spnl(G)) { goto l1102; }
  5132. l1105:;
  5133. { int yypos1106= G->pos, yythunkpos1106= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1106; } goto l1105;
  5134. l1106:; G->pos= yypos1106; G->thunkpos= yythunkpos1106;
  5135. } if (!yymatchChar(G, '>')) goto l1102;
  5136. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5137. return 1;
  5138. l1102:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5139. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5140. return 0;
  5141. }
  5142. YY_RULE(int) yy_HtmlBlockH2(GREG *G)
  5143. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5144. yyprintf((stderr, "%s\n", "HtmlBlockH2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1107; if (!yy_LocMarker(G)) { goto l1107; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH2(G)) { goto l1107; }
  5145. l1108:;
  5146. { int yypos1109= G->pos, yythunkpos1109= G->thunkpos;
  5147. { int yypos1110= G->pos, yythunkpos1110= G->thunkpos; if (!yy_HtmlBlockH2(G)) { goto l1111; } goto l1110;
  5148. l1111:; G->pos= yypos1110; G->thunkpos= yythunkpos1110;
  5149. { int yypos1112= G->pos, yythunkpos1112= G->thunkpos; if (!yy_HtmlBlockCloseH2(G)) { goto l1112; } goto l1109;
  5150. l1112:; G->pos= yypos1112; G->thunkpos= yythunkpos1112;
  5151. } if (!yymatchDot(G)) goto l1109;
  5152. }
  5153. l1110:; goto l1108;
  5154. l1109:; G->pos= yypos1109; G->thunkpos= yythunkpos1109;
  5155. } if (!yy_HtmlBlockCloseH2(G)) { goto l1107; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1107; yyDo(G, yy_1_HtmlBlockH2, G->begin, G->end);
  5156. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5157. return 1;
  5158. l1107:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5159. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH2", G->buf+G->pos));
  5160. return 0;
  5161. }
  5162. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G)
  5163. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5164. yyprintf((stderr, "%s\n", "HtmlBlockCloseH2")); if (!yymatchChar(G, '<')) goto l1113; if (!yy_Spnl(G)) { goto l1113; } if (!yymatchChar(G, '/')) goto l1113;
  5165. { int yypos1114= G->pos, yythunkpos1114= G->thunkpos; if (!yymatchString(G, "h2")) goto l1115; goto l1114;
  5166. l1115:; G->pos= yypos1114; G->thunkpos= yythunkpos1114; if (!yymatchString(G, "H2")) goto l1113;
  5167. }
  5168. l1114:; if (!yy_Spnl(G)) { goto l1113; } if (!yymatchChar(G, '>')) goto l1113;
  5169. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5170. return 1;
  5171. l1113:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5172. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5173. return 0;
  5174. }
  5175. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G)
  5176. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5177. yyprintf((stderr, "%s\n", "HtmlBlockOpenH2")); if (!yymatchChar(G, '<')) goto l1116; if (!yy_Spnl(G)) { goto l1116; }
  5178. { int yypos1117= G->pos, yythunkpos1117= G->thunkpos; if (!yymatchString(G, "h2")) goto l1118; goto l1117;
  5179. l1118:; G->pos= yypos1117; G->thunkpos= yythunkpos1117; if (!yymatchString(G, "H2")) goto l1116;
  5180. }
  5181. l1117:; if (!yy_Spnl(G)) { goto l1116; }
  5182. l1119:;
  5183. { int yypos1120= G->pos, yythunkpos1120= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1120; } goto l1119;
  5184. l1120:; G->pos= yypos1120; G->thunkpos= yythunkpos1120;
  5185. } if (!yymatchChar(G, '>')) goto l1116;
  5186. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5187. return 1;
  5188. l1116:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5189. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5190. return 0;
  5191. }
  5192. YY_RULE(int) yy_HtmlBlockH1(GREG *G)
  5193. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5194. yyprintf((stderr, "%s\n", "HtmlBlockH1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1121; if (!yy_LocMarker(G)) { goto l1121; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH1(G)) { goto l1121; }
  5195. l1122:;
  5196. { int yypos1123= G->pos, yythunkpos1123= G->thunkpos;
  5197. { int yypos1124= G->pos, yythunkpos1124= G->thunkpos; if (!yy_HtmlBlockH1(G)) { goto l1125; } goto l1124;
  5198. l1125:; G->pos= yypos1124; G->thunkpos= yythunkpos1124;
  5199. { int yypos1126= G->pos, yythunkpos1126= G->thunkpos; if (!yy_HtmlBlockCloseH1(G)) { goto l1126; } goto l1123;
  5200. l1126:; G->pos= yypos1126; G->thunkpos= yythunkpos1126;
  5201. } if (!yymatchDot(G)) goto l1123;
  5202. }
  5203. l1124:; goto l1122;
  5204. l1123:; G->pos= yypos1123; G->thunkpos= yythunkpos1123;
  5205. } if (!yy_HtmlBlockCloseH1(G)) { goto l1121; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1121; yyDo(G, yy_1_HtmlBlockH1, G->begin, G->end);
  5206. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5207. return 1;
  5208. l1121:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5209. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH1", G->buf+G->pos));
  5210. return 0;
  5211. }
  5212. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G)
  5213. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5214. yyprintf((stderr, "%s\n", "HtmlBlockCloseH1")); if (!yymatchChar(G, '<')) goto l1127; if (!yy_Spnl(G)) { goto l1127; } if (!yymatchChar(G, '/')) goto l1127;
  5215. { int yypos1128= G->pos, yythunkpos1128= G->thunkpos; if (!yymatchString(G, "h1")) goto l1129; goto l1128;
  5216. l1129:; G->pos= yypos1128; G->thunkpos= yythunkpos1128; if (!yymatchString(G, "H1")) goto l1127;
  5217. }
  5218. l1128:; if (!yy_Spnl(G)) { goto l1127; } if (!yymatchChar(G, '>')) goto l1127;
  5219. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5220. return 1;
  5221. l1127:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5222. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5223. return 0;
  5224. }
  5225. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G)
  5226. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5227. yyprintf((stderr, "%s\n", "HtmlBlockOpenH1")); if (!yymatchChar(G, '<')) goto l1130; if (!yy_Spnl(G)) { goto l1130; }
  5228. { int yypos1131= G->pos, yythunkpos1131= G->thunkpos; if (!yymatchString(G, "h1")) goto l1132; goto l1131;
  5229. l1132:; G->pos= yypos1131; G->thunkpos= yythunkpos1131; if (!yymatchString(G, "H1")) goto l1130;
  5230. }
  5231. l1131:; if (!yy_Spnl(G)) { goto l1130; }
  5232. l1133:;
  5233. { int yypos1134= G->pos, yythunkpos1134= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1134; } goto l1133;
  5234. l1134:; G->pos= yypos1134; G->thunkpos= yythunkpos1134;
  5235. } if (!yymatchChar(G, '>')) goto l1130;
  5236. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5237. return 1;
  5238. l1130:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5239. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5240. return 0;
  5241. }
  5242. YY_RULE(int) yy_HtmlBlockForm(GREG *G)
  5243. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5244. yyprintf((stderr, "%s\n", "HtmlBlockForm")); if (!yy_HtmlBlockOpenForm(G)) { goto l1135; }
  5245. l1136:;
  5246. { int yypos1137= G->pos, yythunkpos1137= G->thunkpos;
  5247. { int yypos1138= G->pos, yythunkpos1138= G->thunkpos; if (!yy_HtmlBlockForm(G)) { goto l1139; } goto l1138;
  5248. l1139:; G->pos= yypos1138; G->thunkpos= yythunkpos1138;
  5249. { int yypos1140= G->pos, yythunkpos1140= G->thunkpos; if (!yy_HtmlBlockCloseForm(G)) { goto l1140; } goto l1137;
  5250. l1140:; G->pos= yypos1140; G->thunkpos= yythunkpos1140;
  5251. } if (!yymatchDot(G)) goto l1137;
  5252. }
  5253. l1138:; goto l1136;
  5254. l1137:; G->pos= yypos1137; G->thunkpos= yythunkpos1137;
  5255. } if (!yy_HtmlBlockCloseForm(G)) { goto l1135; }
  5256. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5257. return 1;
  5258. l1135:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5259. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5260. return 0;
  5261. }
  5262. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G)
  5263. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5264. yyprintf((stderr, "%s\n", "HtmlBlockCloseForm")); if (!yymatchChar(G, '<')) goto l1141; if (!yy_Spnl(G)) { goto l1141; } if (!yymatchChar(G, '/')) goto l1141;
  5265. { int yypos1142= G->pos, yythunkpos1142= G->thunkpos; if (!yymatchString(G, "form")) goto l1143; goto l1142;
  5266. l1143:; G->pos= yypos1142; G->thunkpos= yythunkpos1142; if (!yymatchString(G, "FORM")) goto l1141;
  5267. }
  5268. l1142:; if (!yy_Spnl(G)) { goto l1141; } if (!yymatchChar(G, '>')) goto l1141;
  5269. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5270. return 1;
  5271. l1141:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5272. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5273. return 0;
  5274. }
  5275. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G)
  5276. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5277. yyprintf((stderr, "%s\n", "HtmlBlockOpenForm")); if (!yymatchChar(G, '<')) goto l1144; if (!yy_Spnl(G)) { goto l1144; }
  5278. { int yypos1145= G->pos, yythunkpos1145= G->thunkpos; if (!yymatchString(G, "form")) goto l1146; goto l1145;
  5279. l1146:; G->pos= yypos1145; G->thunkpos= yythunkpos1145; if (!yymatchString(G, "FORM")) goto l1144;
  5280. }
  5281. l1145:; if (!yy_Spnl(G)) { goto l1144; }
  5282. l1147:;
  5283. { int yypos1148= G->pos, yythunkpos1148= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1148; } goto l1147;
  5284. l1148:; G->pos= yypos1148; G->thunkpos= yythunkpos1148;
  5285. } if (!yymatchChar(G, '>')) goto l1144;
  5286. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5287. return 1;
  5288. l1144:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5289. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5290. return 0;
  5291. }
  5292. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G)
  5293. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5294. yyprintf((stderr, "%s\n", "HtmlBlockFieldset")); if (!yy_HtmlBlockOpenFieldset(G)) { goto l1149; }
  5295. l1150:;
  5296. { int yypos1151= G->pos, yythunkpos1151= G->thunkpos;
  5297. { int yypos1152= G->pos, yythunkpos1152= G->thunkpos; if (!yy_HtmlBlockFieldset(G)) { goto l1153; } goto l1152;
  5298. l1153:; G->pos= yypos1152; G->thunkpos= yythunkpos1152;
  5299. { int yypos1154= G->pos, yythunkpos1154= G->thunkpos; if (!yy_HtmlBlockCloseFieldset(G)) { goto l1154; } goto l1151;
  5300. l1154:; G->pos= yypos1154; G->thunkpos= yythunkpos1154;
  5301. } if (!yymatchDot(G)) goto l1151;
  5302. }
  5303. l1152:; goto l1150;
  5304. l1151:; G->pos= yypos1151; G->thunkpos= yythunkpos1151;
  5305. } if (!yy_HtmlBlockCloseFieldset(G)) { goto l1149; }
  5306. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5307. return 1;
  5308. l1149:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5309. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5310. return 0;
  5311. }
  5312. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G)
  5313. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5314. yyprintf((stderr, "%s\n", "HtmlBlockCloseFieldset")); if (!yymatchChar(G, '<')) goto l1155; if (!yy_Spnl(G)) { goto l1155; } if (!yymatchChar(G, '/')) goto l1155;
  5315. { int yypos1156= G->pos, yythunkpos1156= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1157; goto l1156;
  5316. l1157:; G->pos= yypos1156; G->thunkpos= yythunkpos1156; if (!yymatchString(G, "FIELDSET")) goto l1155;
  5317. }
  5318. l1156:; if (!yy_Spnl(G)) { goto l1155; } if (!yymatchChar(G, '>')) goto l1155;
  5319. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5320. return 1;
  5321. l1155:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5322. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5323. return 0;
  5324. }
  5325. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G)
  5326. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5327. yyprintf((stderr, "%s\n", "HtmlBlockOpenFieldset")); if (!yymatchChar(G, '<')) goto l1158; if (!yy_Spnl(G)) { goto l1158; }
  5328. { int yypos1159= G->pos, yythunkpos1159= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1160; goto l1159;
  5329. l1160:; G->pos= yypos1159; G->thunkpos= yythunkpos1159; if (!yymatchString(G, "FIELDSET")) goto l1158;
  5330. }
  5331. l1159:; if (!yy_Spnl(G)) { goto l1158; }
  5332. l1161:;
  5333. { int yypos1162= G->pos, yythunkpos1162= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1162; } goto l1161;
  5334. l1162:; G->pos= yypos1162; G->thunkpos= yythunkpos1162;
  5335. } if (!yymatchChar(G, '>')) goto l1158;
  5336. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5337. return 1;
  5338. l1158:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5339. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5340. return 0;
  5341. }
  5342. YY_RULE(int) yy_HtmlBlockDl(GREG *G)
  5343. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5344. yyprintf((stderr, "%s\n", "HtmlBlockDl")); if (!yy_HtmlBlockOpenDl(G)) { goto l1163; }
  5345. l1164:;
  5346. { int yypos1165= G->pos, yythunkpos1165= G->thunkpos;
  5347. { int yypos1166= G->pos, yythunkpos1166= G->thunkpos; if (!yy_HtmlBlockDl(G)) { goto l1167; } goto l1166;
  5348. l1167:; G->pos= yypos1166; G->thunkpos= yythunkpos1166;
  5349. { int yypos1168= G->pos, yythunkpos1168= G->thunkpos; if (!yy_HtmlBlockCloseDl(G)) { goto l1168; } goto l1165;
  5350. l1168:; G->pos= yypos1168; G->thunkpos= yythunkpos1168;
  5351. } if (!yymatchDot(G)) goto l1165;
  5352. }
  5353. l1166:; goto l1164;
  5354. l1165:; G->pos= yypos1165; G->thunkpos= yythunkpos1165;
  5355. } if (!yy_HtmlBlockCloseDl(G)) { goto l1163; }
  5356. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5357. return 1;
  5358. l1163:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5359. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5360. return 0;
  5361. }
  5362. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G)
  5363. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5364. yyprintf((stderr, "%s\n", "HtmlBlockCloseDl")); if (!yymatchChar(G, '<')) goto l1169; if (!yy_Spnl(G)) { goto l1169; } if (!yymatchChar(G, '/')) goto l1169;
  5365. { int yypos1170= G->pos, yythunkpos1170= G->thunkpos; if (!yymatchString(G, "dl")) goto l1171; goto l1170;
  5366. l1171:; G->pos= yypos1170; G->thunkpos= yythunkpos1170; if (!yymatchString(G, "DL")) goto l1169;
  5367. }
  5368. l1170:; if (!yy_Spnl(G)) { goto l1169; } if (!yymatchChar(G, '>')) goto l1169;
  5369. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5370. return 1;
  5371. l1169:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5372. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5373. return 0;
  5374. }
  5375. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G)
  5376. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5377. yyprintf((stderr, "%s\n", "HtmlBlockOpenDl")); if (!yymatchChar(G, '<')) goto l1172; if (!yy_Spnl(G)) { goto l1172; }
  5378. { int yypos1173= G->pos, yythunkpos1173= G->thunkpos; if (!yymatchString(G, "dl")) goto l1174; goto l1173;
  5379. l1174:; G->pos= yypos1173; G->thunkpos= yythunkpos1173; if (!yymatchString(G, "DL")) goto l1172;
  5380. }
  5381. l1173:; if (!yy_Spnl(G)) { goto l1172; }
  5382. l1175:;
  5383. { int yypos1176= G->pos, yythunkpos1176= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1176; } goto l1175;
  5384. l1176:; G->pos= yypos1176; G->thunkpos= yythunkpos1176;
  5385. } if (!yymatchChar(G, '>')) goto l1172;
  5386. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5387. return 1;
  5388. l1172:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5389. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5390. return 0;
  5391. }
  5392. YY_RULE(int) yy_HtmlBlockDiv(GREG *G)
  5393. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5394. yyprintf((stderr, "%s\n", "HtmlBlockDiv")); if (!yy_HtmlBlockOpenDiv(G)) { goto l1177; }
  5395. l1178:;
  5396. { int yypos1179= G->pos, yythunkpos1179= G->thunkpos;
  5397. { int yypos1180= G->pos, yythunkpos1180= G->thunkpos; if (!yy_HtmlBlockDiv(G)) { goto l1181; } goto l1180;
  5398. l1181:; G->pos= yypos1180; G->thunkpos= yythunkpos1180;
  5399. { int yypos1182= G->pos, yythunkpos1182= G->thunkpos; if (!yy_HtmlBlockCloseDiv(G)) { goto l1182; } goto l1179;
  5400. l1182:; G->pos= yypos1182; G->thunkpos= yythunkpos1182;
  5401. } if (!yymatchDot(G)) goto l1179;
  5402. }
  5403. l1180:; goto l1178;
  5404. l1179:; G->pos= yypos1179; G->thunkpos= yythunkpos1179;
  5405. } if (!yy_HtmlBlockCloseDiv(G)) { goto l1177; }
  5406. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5407. return 1;
  5408. l1177:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5409. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5410. return 0;
  5411. }
  5412. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G)
  5413. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5414. yyprintf((stderr, "%s\n", "HtmlBlockCloseDiv")); if (!yymatchChar(G, '<')) goto l1183; if (!yy_Spnl(G)) { goto l1183; } if (!yymatchChar(G, '/')) goto l1183;
  5415. { int yypos1184= G->pos, yythunkpos1184= G->thunkpos; if (!yymatchString(G, "div")) goto l1185; goto l1184;
  5416. l1185:; G->pos= yypos1184; G->thunkpos= yythunkpos1184; if (!yymatchString(G, "DIV")) goto l1183;
  5417. }
  5418. l1184:; if (!yy_Spnl(G)) { goto l1183; } if (!yymatchChar(G, '>')) goto l1183;
  5419. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5420. return 1;
  5421. l1183:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5422. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5423. return 0;
  5424. }
  5425. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G)
  5426. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5427. yyprintf((stderr, "%s\n", "HtmlBlockOpenDiv")); if (!yymatchChar(G, '<')) goto l1186; if (!yy_Spnl(G)) { goto l1186; }
  5428. { int yypos1187= G->pos, yythunkpos1187= G->thunkpos; if (!yymatchString(G, "div")) goto l1188; goto l1187;
  5429. l1188:; G->pos= yypos1187; G->thunkpos= yythunkpos1187; if (!yymatchString(G, "DIV")) goto l1186;
  5430. }
  5431. l1187:; if (!yy_Spnl(G)) { goto l1186; }
  5432. l1189:;
  5433. { int yypos1190= G->pos, yythunkpos1190= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1190; } goto l1189;
  5434. l1190:; G->pos= yypos1190; G->thunkpos= yythunkpos1190;
  5435. } if (!yymatchChar(G, '>')) goto l1186;
  5436. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5437. return 1;
  5438. l1186:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5439. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5440. return 0;
  5441. }
  5442. YY_RULE(int) yy_HtmlBlockDir(GREG *G)
  5443. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5444. yyprintf((stderr, "%s\n", "HtmlBlockDir")); if (!yy_HtmlBlockOpenDir(G)) { goto l1191; }
  5445. l1192:;
  5446. { int yypos1193= G->pos, yythunkpos1193= G->thunkpos;
  5447. { int yypos1194= G->pos, yythunkpos1194= G->thunkpos; if (!yy_HtmlBlockDir(G)) { goto l1195; } goto l1194;
  5448. l1195:; G->pos= yypos1194; G->thunkpos= yythunkpos1194;
  5449. { int yypos1196= G->pos, yythunkpos1196= G->thunkpos; if (!yy_HtmlBlockCloseDir(G)) { goto l1196; } goto l1193;
  5450. l1196:; G->pos= yypos1196; G->thunkpos= yythunkpos1196;
  5451. } if (!yymatchDot(G)) goto l1193;
  5452. }
  5453. l1194:; goto l1192;
  5454. l1193:; G->pos= yypos1193; G->thunkpos= yythunkpos1193;
  5455. } if (!yy_HtmlBlockCloseDir(G)) { goto l1191; }
  5456. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5457. return 1;
  5458. l1191:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5459. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5460. return 0;
  5461. }
  5462. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G)
  5463. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5464. yyprintf((stderr, "%s\n", "HtmlBlockCloseDir")); if (!yymatchChar(G, '<')) goto l1197; if (!yy_Spnl(G)) { goto l1197; } if (!yymatchChar(G, '/')) goto l1197;
  5465. { int yypos1198= G->pos, yythunkpos1198= G->thunkpos; if (!yymatchString(G, "dir")) goto l1199; goto l1198;
  5466. l1199:; G->pos= yypos1198; G->thunkpos= yythunkpos1198; if (!yymatchString(G, "DIR")) goto l1197;
  5467. }
  5468. l1198:; if (!yy_Spnl(G)) { goto l1197; } if (!yymatchChar(G, '>')) goto l1197;
  5469. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5470. return 1;
  5471. l1197:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5472. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5473. return 0;
  5474. }
  5475. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G)
  5476. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5477. yyprintf((stderr, "%s\n", "HtmlBlockOpenDir")); if (!yymatchChar(G, '<')) goto l1200; if (!yy_Spnl(G)) { goto l1200; }
  5478. { int yypos1201= G->pos, yythunkpos1201= G->thunkpos; if (!yymatchString(G, "dir")) goto l1202; goto l1201;
  5479. l1202:; G->pos= yypos1201; G->thunkpos= yythunkpos1201; if (!yymatchString(G, "DIR")) goto l1200;
  5480. }
  5481. l1201:; if (!yy_Spnl(G)) { goto l1200; }
  5482. l1203:;
  5483. { int yypos1204= G->pos, yythunkpos1204= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1204; } goto l1203;
  5484. l1204:; G->pos= yypos1204; G->thunkpos= yythunkpos1204;
  5485. } if (!yymatchChar(G, '>')) goto l1200;
  5486. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5487. return 1;
  5488. l1200:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5489. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5490. return 0;
  5491. }
  5492. YY_RULE(int) yy_HtmlBlockCenter(GREG *G)
  5493. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5494. yyprintf((stderr, "%s\n", "HtmlBlockCenter")); if (!yy_HtmlBlockOpenCenter(G)) { goto l1205; }
  5495. l1206:;
  5496. { int yypos1207= G->pos, yythunkpos1207= G->thunkpos;
  5497. { int yypos1208= G->pos, yythunkpos1208= G->thunkpos; if (!yy_HtmlBlockCenter(G)) { goto l1209; } goto l1208;
  5498. l1209:; G->pos= yypos1208; G->thunkpos= yythunkpos1208;
  5499. { int yypos1210= G->pos, yythunkpos1210= G->thunkpos; if (!yy_HtmlBlockCloseCenter(G)) { goto l1210; } goto l1207;
  5500. l1210:; G->pos= yypos1210; G->thunkpos= yythunkpos1210;
  5501. } if (!yymatchDot(G)) goto l1207;
  5502. }
  5503. l1208:; goto l1206;
  5504. l1207:; G->pos= yypos1207; G->thunkpos= yythunkpos1207;
  5505. } if (!yy_HtmlBlockCloseCenter(G)) { goto l1205; }
  5506. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5507. return 1;
  5508. l1205:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5509. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5510. return 0;
  5511. }
  5512. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G)
  5513. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5514. yyprintf((stderr, "%s\n", "HtmlBlockCloseCenter")); if (!yymatchChar(G, '<')) goto l1211; if (!yy_Spnl(G)) { goto l1211; } if (!yymatchChar(G, '/')) goto l1211;
  5515. { int yypos1212= G->pos, yythunkpos1212= G->thunkpos; if (!yymatchString(G, "center")) goto l1213; goto l1212;
  5516. l1213:; G->pos= yypos1212; G->thunkpos= yythunkpos1212; if (!yymatchString(G, "CENTER")) goto l1211;
  5517. }
  5518. l1212:; if (!yy_Spnl(G)) { goto l1211; } if (!yymatchChar(G, '>')) goto l1211;
  5519. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5520. return 1;
  5521. l1211:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5522. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5523. return 0;
  5524. }
  5525. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G)
  5526. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5527. yyprintf((stderr, "%s\n", "HtmlBlockOpenCenter")); if (!yymatchChar(G, '<')) goto l1214; if (!yy_Spnl(G)) { goto l1214; }
  5528. { int yypos1215= G->pos, yythunkpos1215= G->thunkpos; if (!yymatchString(G, "center")) goto l1216; goto l1215;
  5529. l1216:; G->pos= yypos1215; G->thunkpos= yythunkpos1215; if (!yymatchString(G, "CENTER")) goto l1214;
  5530. }
  5531. l1215:; if (!yy_Spnl(G)) { goto l1214; }
  5532. l1217:;
  5533. { int yypos1218= G->pos, yythunkpos1218= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1218; } goto l1217;
  5534. l1218:; G->pos= yypos1218; G->thunkpos= yythunkpos1218;
  5535. } if (!yymatchChar(G, '>')) goto l1214;
  5536. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5537. return 1;
  5538. l1214:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5539. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5540. return 0;
  5541. }
  5542. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G)
  5543. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5544. yyprintf((stderr, "%s\n", "HtmlBlockBlockquote")); if (!yy_HtmlBlockOpenBlockquote(G)) { goto l1219; }
  5545. l1220:;
  5546. { int yypos1221= G->pos, yythunkpos1221= G->thunkpos;
  5547. { int yypos1222= G->pos, yythunkpos1222= G->thunkpos; if (!yy_HtmlBlockBlockquote(G)) { goto l1223; } goto l1222;
  5548. l1223:; G->pos= yypos1222; G->thunkpos= yythunkpos1222;
  5549. { int yypos1224= G->pos, yythunkpos1224= G->thunkpos; if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1224; } goto l1221;
  5550. l1224:; G->pos= yypos1224; G->thunkpos= yythunkpos1224;
  5551. } if (!yymatchDot(G)) goto l1221;
  5552. }
  5553. l1222:; goto l1220;
  5554. l1221:; G->pos= yypos1221; G->thunkpos= yythunkpos1221;
  5555. } if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1219; }
  5556. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5557. return 1;
  5558. l1219:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5559. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5560. return 0;
  5561. }
  5562. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G)
  5563. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5564. yyprintf((stderr, "%s\n", "HtmlBlockCloseBlockquote")); if (!yymatchChar(G, '<')) goto l1225; if (!yy_Spnl(G)) { goto l1225; } if (!yymatchChar(G, '/')) goto l1225;
  5565. { int yypos1226= G->pos, yythunkpos1226= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1227; goto l1226;
  5566. l1227:; G->pos= yypos1226; G->thunkpos= yythunkpos1226; if (!yymatchString(G, "BLOCKQUOTE")) goto l1225;
  5567. }
  5568. l1226:; if (!yy_Spnl(G)) { goto l1225; } if (!yymatchChar(G, '>')) goto l1225;
  5569. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5570. return 1;
  5571. l1225:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5572. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5573. return 0;
  5574. }
  5575. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G)
  5576. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5577. yyprintf((stderr, "%s\n", "HtmlBlockOpenBlockquote")); if (!yymatchChar(G, '<')) goto l1228; if (!yy_Spnl(G)) { goto l1228; }
  5578. { int yypos1229= G->pos, yythunkpos1229= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1230; goto l1229;
  5579. l1230:; G->pos= yypos1229; G->thunkpos= yythunkpos1229; if (!yymatchString(G, "BLOCKQUOTE")) goto l1228;
  5580. }
  5581. l1229:; if (!yy_Spnl(G)) { goto l1228; }
  5582. l1231:;
  5583. { int yypos1232= G->pos, yythunkpos1232= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1232; } goto l1231;
  5584. l1232:; G->pos= yypos1232; G->thunkpos= yythunkpos1232;
  5585. } if (!yymatchChar(G, '>')) goto l1228;
  5586. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5587. return 1;
  5588. l1228:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5589. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5590. return 0;
  5591. }
  5592. YY_RULE(int) yy_HtmlBlockAddress(GREG *G)
  5593. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5594. yyprintf((stderr, "%s\n", "HtmlBlockAddress")); if (!yy_HtmlBlockOpenAddress(G)) { goto l1233; }
  5595. l1234:;
  5596. { int yypos1235= G->pos, yythunkpos1235= G->thunkpos;
  5597. { int yypos1236= G->pos, yythunkpos1236= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l1237; } goto l1236;
  5598. l1237:; G->pos= yypos1236; G->thunkpos= yythunkpos1236;
  5599. { int yypos1238= G->pos, yythunkpos1238= G->thunkpos; if (!yy_HtmlBlockCloseAddress(G)) { goto l1238; } goto l1235;
  5600. l1238:; G->pos= yypos1238; G->thunkpos= yythunkpos1238;
  5601. } if (!yymatchDot(G)) goto l1235;
  5602. }
  5603. l1236:; goto l1234;
  5604. l1235:; G->pos= yypos1235; G->thunkpos= yythunkpos1235;
  5605. } if (!yy_HtmlBlockCloseAddress(G)) { goto l1233; }
  5606. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5607. return 1;
  5608. l1233:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5609. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5610. return 0;
  5611. }
  5612. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G)
  5613. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5614. yyprintf((stderr, "%s\n", "HtmlBlockCloseAddress")); if (!yymatchChar(G, '<')) goto l1239; if (!yy_Spnl(G)) { goto l1239; } if (!yymatchChar(G, '/')) goto l1239;
  5615. { int yypos1240= G->pos, yythunkpos1240= G->thunkpos; if (!yymatchString(G, "address")) goto l1241; goto l1240;
  5616. l1241:; G->pos= yypos1240; G->thunkpos= yythunkpos1240; if (!yymatchString(G, "ADDRESS")) goto l1239;
  5617. }
  5618. l1240:; if (!yy_Spnl(G)) { goto l1239; } if (!yymatchChar(G, '>')) goto l1239;
  5619. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5620. return 1;
  5621. l1239:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5622. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5623. return 0;
  5624. }
  5625. YY_RULE(int) yy_HtmlAttribute(GREG *G)
  5626. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5627. yyprintf((stderr, "%s\n", "HtmlAttribute"));
  5628. { int yypos1245= G->pos, yythunkpos1245= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1246; } goto l1245;
  5629. l1246:; G->pos= yypos1245; G->thunkpos= yythunkpos1245; if (!yymatchChar(G, '-')) goto l1242;
  5630. }
  5631. l1245:;
  5632. l1243:;
  5633. { int yypos1244= G->pos, yythunkpos1244= G->thunkpos;
  5634. { int yypos1247= G->pos, yythunkpos1247= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1248; } goto l1247;
  5635. l1248:; G->pos= yypos1247; G->thunkpos= yythunkpos1247; if (!yymatchChar(G, '-')) goto l1244;
  5636. }
  5637. l1247:; goto l1243;
  5638. l1244:; G->pos= yypos1244; G->thunkpos= yythunkpos1244;
  5639. } if (!yy_Spnl(G)) { goto l1242; }
  5640. { int yypos1249= G->pos, yythunkpos1249= G->thunkpos; if (!yymatchChar(G, '=')) goto l1249; if (!yy_Spnl(G)) { goto l1249; }
  5641. { int yypos1251= G->pos, yythunkpos1251= G->thunkpos; if (!yy_Quoted(G)) { goto l1252; } goto l1251;
  5642. l1252:; G->pos= yypos1251; G->thunkpos= yythunkpos1251;
  5643. { int yypos1255= G->pos, yythunkpos1255= G->thunkpos; if (!yymatchChar(G, '>')) goto l1255; goto l1249;
  5644. l1255:; G->pos= yypos1255; G->thunkpos= yythunkpos1255;
  5645. } if (!yy_Nonspacechar(G)) { goto l1249; }
  5646. l1253:;
  5647. { int yypos1254= G->pos, yythunkpos1254= G->thunkpos;
  5648. { int yypos1256= G->pos, yythunkpos1256= G->thunkpos; if (!yymatchChar(G, '>')) goto l1256; goto l1254;
  5649. l1256:; G->pos= yypos1256; G->thunkpos= yythunkpos1256;
  5650. } if (!yy_Nonspacechar(G)) { goto l1254; } goto l1253;
  5651. l1254:; G->pos= yypos1254; G->thunkpos= yythunkpos1254;
  5652. }
  5653. }
  5654. l1251:; goto l1250;
  5655. l1249:; G->pos= yypos1249; G->thunkpos= yythunkpos1249;
  5656. }
  5657. l1250:; if (!yy_Spnl(G)) { goto l1242; }
  5658. yyprintf((stderr, " ok %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5659. return 1;
  5660. l1242:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5661. yyprintf((stderr, " fail %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5662. return 0;
  5663. }
  5664. YY_RULE(int) yy_Spnl(GREG *G)
  5665. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5666. yyprintf((stderr, "%s\n", "Spnl")); if (!yy_Sp(G)) { goto l1257; }
  5667. { int yypos1258= G->pos, yythunkpos1258= G->thunkpos; if (!yy_Newline(G)) { goto l1258; } if (!yy_Sp(G)) { goto l1258; } goto l1259;
  5668. l1258:; G->pos= yypos1258; G->thunkpos= yythunkpos1258;
  5669. }
  5670. l1259:;
  5671. yyprintf((stderr, " ok %s @ %s\n", "Spnl", G->buf+G->pos));
  5672. return 1;
  5673. l1257:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5674. yyprintf((stderr, " fail %s @ %s\n", "Spnl", G->buf+G->pos));
  5675. return 0;
  5676. }
  5677. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G)
  5678. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5679. yyprintf((stderr, "%s\n", "HtmlBlockOpenAddress")); if (!yymatchChar(G, '<')) goto l1260; if (!yy_Spnl(G)) { goto l1260; }
  5680. { int yypos1261= G->pos, yythunkpos1261= G->thunkpos; if (!yymatchString(G, "address")) goto l1262; goto l1261;
  5681. l1262:; G->pos= yypos1261; G->thunkpos= yythunkpos1261; if (!yymatchString(G, "ADDRESS")) goto l1260;
  5682. }
  5683. l1261:; if (!yy_Spnl(G)) { goto l1260; }
  5684. l1263:;
  5685. { int yypos1264= G->pos, yythunkpos1264= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1264; } goto l1263;
  5686. l1264:; G->pos= yypos1264; G->thunkpos= yythunkpos1264;
  5687. } if (!yymatchChar(G, '>')) goto l1260;
  5688. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5689. return 1;
  5690. l1260:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5691. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5692. return 0;
  5693. }
  5694. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G)
  5695. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5696. yyprintf((stderr, "%s\n", "OptionallyIndentedLine"));
  5697. { int yypos1266= G->pos, yythunkpos1266= G->thunkpos; if (!yy_Indent(G)) { goto l1266; } goto l1267;
  5698. l1266:; G->pos= yypos1266; G->thunkpos= yythunkpos1266;
  5699. }
  5700. l1267:; if (!yy_Line(G)) { goto l1265; }
  5701. yyprintf((stderr, " ok %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5702. return 1;
  5703. l1265:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5704. yyprintf((stderr, " fail %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5705. return 0;
  5706. }
  5707. YY_RULE(int) yy_Indent(GREG *G)
  5708. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5709. yyprintf((stderr, "%s\n", "Indent"));
  5710. { int yypos1269= G->pos, yythunkpos1269= G->thunkpos; if (!yymatchChar(G, '\t')) goto l1270; goto l1269;
  5711. l1270:; G->pos= yypos1269; G->thunkpos= yythunkpos1269; if (!yymatchString(G, " ")) goto l1268;
  5712. }
  5713. l1269:;
  5714. yyprintf((stderr, " ok %s @ %s\n", "Indent", G->buf+G->pos));
  5715. return 1;
  5716. l1268:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5717. yyprintf((stderr, " fail %s @ %s\n", "Indent", G->buf+G->pos));
  5718. return 0;
  5719. }
  5720. YY_RULE(int) yy_ListBlockLine(GREG *G)
  5721. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5722. yyprintf((stderr, "%s\n", "ListBlockLine"));
  5723. { int yypos1272= G->pos, yythunkpos1272= G->thunkpos; if (!yy_BlankLine(G)) { goto l1272; } goto l1271;
  5724. l1272:; G->pos= yypos1272; G->thunkpos= yythunkpos1272;
  5725. }
  5726. { int yypos1273= G->pos, yythunkpos1273= G->thunkpos;
  5727. { int yypos1274= G->pos, yythunkpos1274= G->thunkpos; if (!yy_Indent(G)) { goto l1274; } goto l1275;
  5728. l1274:; G->pos= yypos1274; G->thunkpos= yythunkpos1274;
  5729. }
  5730. l1275:;
  5731. { int yypos1276= G->pos, yythunkpos1276= G->thunkpos; if (!yy_Bullet(G)) { goto l1277; } goto l1276;
  5732. l1277:; G->pos= yypos1276; G->thunkpos= yythunkpos1276; if (!yy_Enumerator(G)) { goto l1273; }
  5733. }
  5734. l1276:; goto l1271;
  5735. l1273:; G->pos= yypos1273; G->thunkpos= yythunkpos1273;
  5736. }
  5737. { int yypos1278= G->pos, yythunkpos1278= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1278; } goto l1271;
  5738. l1278:; G->pos= yypos1278; G->thunkpos= yythunkpos1278;
  5739. } if (!yy_OptionallyIndentedLine(G)) { goto l1271; }
  5740. yyprintf((stderr, " ok %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5741. return 1;
  5742. l1271:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5743. yyprintf((stderr, " fail %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5744. return 0;
  5745. }
  5746. YY_RULE(int) yy_ListContinuationBlock(GREG *G)
  5747. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5748. yyprintf((stderr, "%s\n", "ListContinuationBlock")); if (!yy_StartList(G)) { goto l1279; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1279;
  5749. l1280:;
  5750. { int yypos1281= G->pos, yythunkpos1281= G->thunkpos; if (!yy_BlankLine(G)) { goto l1281; } goto l1280;
  5751. l1281:; G->pos= yypos1281; G->thunkpos= yythunkpos1281;
  5752. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1279; yyDo(G, yy_1_ListContinuationBlock, G->begin, G->end); if (!yy_Indent(G)) { goto l1279; } if (!yy_ListBlock(G)) { goto l1279; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end);
  5753. l1282:;
  5754. { int yypos1283= G->pos, yythunkpos1283= G->thunkpos; if (!yy_Indent(G)) { goto l1283; } if (!yy_ListBlock(G)) { goto l1283; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end); goto l1282;
  5755. l1283:; G->pos= yypos1283; G->thunkpos= yythunkpos1283;
  5756. } yyDo(G, yy_3_ListContinuationBlock, G->begin, G->end);
  5757. yyprintf((stderr, " ok %s @ %s\n", "ListContinuationBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5758. return 1;
  5759. l1279:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5760. yyprintf((stderr, " fail %s @ %s\n", "ListContinuationBlock", G->buf+G->pos));
  5761. return 0;
  5762. }
  5763. YY_RULE(int) yy_ListBlock(GREG *G)
  5764. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5765. yyprintf((stderr, "%s\n", "ListBlock")); if (!yy_StartList(G)) { goto l1284; } yyDo(G, yySet, -1, 0);
  5766. { int yypos1285= G->pos, yythunkpos1285= G->thunkpos; if (!yy_BlankLine(G)) { goto l1285; } goto l1284;
  5767. l1285:; G->pos= yypos1285; G->thunkpos= yythunkpos1285;
  5768. } if (!yy_Line(G)) { goto l1284; } yyDo(G, yy_1_ListBlock, G->begin, G->end);
  5769. l1286:;
  5770. { int yypos1287= G->pos, yythunkpos1287= G->thunkpos; if (!yy_ListBlockLine(G)) { goto l1287; } yyDo(G, yy_2_ListBlock, G->begin, G->end); goto l1286;
  5771. l1287:; G->pos= yypos1287; G->thunkpos= yythunkpos1287;
  5772. } yyDo(G, yy_3_ListBlock, G->begin, G->end);
  5773. yyprintf((stderr, " ok %s @ %s\n", "ListBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5774. return 1;
  5775. l1284:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5776. yyprintf((stderr, " fail %s @ %s\n", "ListBlock", G->buf+G->pos));
  5777. return 0;
  5778. }
  5779. YY_RULE(int) yy_ListItem(GREG *G)
  5780. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5781. yyprintf((stderr, "%s\n", "ListItem"));
  5782. { int yypos1289= G->pos, yythunkpos1289= G->thunkpos; if (!yy_Bullet(G)) { goto l1290; } goto l1289;
  5783. l1290:; G->pos= yypos1289; G->thunkpos= yythunkpos1289; if (!yy_Enumerator(G)) { goto l1288; }
  5784. }
  5785. l1289:; if (!yy_StartList(G)) { goto l1288; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1288; } yyDo(G, yy_1_ListItem, G->begin, G->end);
  5786. l1291:;
  5787. { int yypos1292= G->pos, yythunkpos1292= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1292; } yyDo(G, yy_2_ListItem, G->begin, G->end); goto l1291;
  5788. l1292:; G->pos= yypos1292; G->thunkpos= yythunkpos1292;
  5789. } yyDo(G, yy_3_ListItem, G->begin, G->end);
  5790. yyprintf((stderr, " ok %s @ %s\n", "ListItem", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5791. return 1;
  5792. l1288:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5793. yyprintf((stderr, " fail %s @ %s\n", "ListItem", G->buf+G->pos));
  5794. return 0;
  5795. }
  5796. YY_RULE(int) yy_Enumerator(GREG *G)
  5797. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5798. yyprintf((stderr, "%s\n", "Enumerator")); if (!yy_NonindentSpace(G)) { goto l1293; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1293; 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 l1293;
  5799. l1294:;
  5800. { int yypos1295= G->pos, yythunkpos1295= 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 l1295; goto l1294;
  5801. l1295:; G->pos= yypos1295; G->thunkpos= yythunkpos1295;
  5802. } if (!yymatchChar(G, '.')) goto l1293; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1293; if (!yy_Spacechar(G)) { goto l1293; }
  5803. l1296:;
  5804. { int yypos1297= G->pos, yythunkpos1297= G->thunkpos; if (!yy_Spacechar(G)) { goto l1297; } goto l1296;
  5805. l1297:; G->pos= yypos1297; G->thunkpos= yythunkpos1297;
  5806. } yyDo(G, yy_1_Enumerator, G->begin, G->end);
  5807. yyprintf((stderr, " ok %s @ %s\n", "Enumerator", G->buf+G->pos));
  5808. return 1;
  5809. l1293:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5810. yyprintf((stderr, " fail %s @ %s\n", "Enumerator", G->buf+G->pos));
  5811. return 0;
  5812. }
  5813. YY_RULE(int) yy_ListItemTight(GREG *G)
  5814. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5815. yyprintf((stderr, "%s\n", "ListItemTight"));
  5816. { int yypos1299= G->pos, yythunkpos1299= G->thunkpos; if (!yy_Bullet(G)) { goto l1300; } goto l1299;
  5817. l1300:; G->pos= yypos1299; G->thunkpos= yythunkpos1299; if (!yy_Enumerator(G)) { goto l1298; }
  5818. }
  5819. l1299:; if (!yy_StartList(G)) { goto l1298; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1298; } yyDo(G, yy_1_ListItemTight, G->begin, G->end);
  5820. l1301:;
  5821. { int yypos1302= G->pos, yythunkpos1302= G->thunkpos;
  5822. { int yypos1303= G->pos, yythunkpos1303= G->thunkpos; if (!yy_BlankLine(G)) { goto l1303; } goto l1302;
  5823. l1303:; G->pos= yypos1303; G->thunkpos= yythunkpos1303;
  5824. } if (!yy_ListContinuationBlock(G)) { goto l1302; } yyDo(G, yy_2_ListItemTight, G->begin, G->end); goto l1301;
  5825. l1302:; G->pos= yypos1302; G->thunkpos= yythunkpos1302;
  5826. }
  5827. { int yypos1304= G->pos, yythunkpos1304= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1304; } goto l1298;
  5828. l1304:; G->pos= yypos1304; G->thunkpos= yythunkpos1304;
  5829. } yyDo(G, yy_3_ListItemTight, G->begin, G->end);
  5830. yyprintf((stderr, " ok %s @ %s\n", "ListItemTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5831. return 1;
  5832. l1298:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5833. yyprintf((stderr, " fail %s @ %s\n", "ListItemTight", G->buf+G->pos));
  5834. return 0;
  5835. }
  5836. YY_RULE(int) yy_ListLoose(GREG *G)
  5837. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  5838. yyprintf((stderr, "%s\n", "ListLoose")); if (!yy_StartList(G)) { goto l1305; } yyDo(G, yySet, -2, 0); if (!yy_ListItem(G)) { goto l1305; } yyDo(G, yySet, -1, 0);
  5839. l1308:;
  5840. { int yypos1309= G->pos, yythunkpos1309= G->thunkpos; if (!yy_BlankLine(G)) { goto l1309; } goto l1308;
  5841. l1309:; G->pos= yypos1309; G->thunkpos= yythunkpos1309;
  5842. } yyDo(G, yy_1_ListLoose, G->begin, G->end);
  5843. l1306:;
  5844. { int yypos1307= G->pos, yythunkpos1307= G->thunkpos; if (!yy_ListItem(G)) { goto l1307; } yyDo(G, yySet, -1, 0);
  5845. l1310:;
  5846. { int yypos1311= G->pos, yythunkpos1311= G->thunkpos; if (!yy_BlankLine(G)) { goto l1311; } goto l1310;
  5847. l1311:; G->pos= yypos1311; G->thunkpos= yythunkpos1311;
  5848. } yyDo(G, yy_1_ListLoose, G->begin, G->end); goto l1306;
  5849. l1307:; G->pos= yypos1307; G->thunkpos= yythunkpos1307;
  5850. } yyDo(G, yy_2_ListLoose, G->begin, G->end);
  5851. yyprintf((stderr, " ok %s @ %s\n", "ListLoose", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  5852. return 1;
  5853. l1305:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5854. yyprintf((stderr, " fail %s @ %s\n", "ListLoose", G->buf+G->pos));
  5855. return 0;
  5856. }
  5857. YY_RULE(int) yy_ListTight(GREG *G)
  5858. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5859. yyprintf((stderr, "%s\n", "ListTight")); if (!yy_StartList(G)) { goto l1312; } yyDo(G, yySet, -1, 0); if (!yy_ListItemTight(G)) { goto l1312; } yyDo(G, yy_1_ListTight, G->begin, G->end);
  5860. l1313:;
  5861. { int yypos1314= G->pos, yythunkpos1314= G->thunkpos; if (!yy_ListItemTight(G)) { goto l1314; } yyDo(G, yy_1_ListTight, G->begin, G->end); goto l1313;
  5862. l1314:; G->pos= yypos1314; G->thunkpos= yythunkpos1314;
  5863. }
  5864. l1315:;
  5865. { int yypos1316= G->pos, yythunkpos1316= G->thunkpos; if (!yy_BlankLine(G)) { goto l1316; } goto l1315;
  5866. l1316:; G->pos= yypos1316; G->thunkpos= yythunkpos1316;
  5867. }
  5868. { int yypos1317= G->pos, yythunkpos1317= G->thunkpos;
  5869. { int yypos1318= G->pos, yythunkpos1318= G->thunkpos; if (!yy_Bullet(G)) { goto l1319; } goto l1318;
  5870. l1319:; G->pos= yypos1318; G->thunkpos= yythunkpos1318; if (!yy_Enumerator(G)) { goto l1317; }
  5871. }
  5872. l1318:; goto l1312;
  5873. l1317:; G->pos= yypos1317; G->thunkpos= yythunkpos1317;
  5874. } yyDo(G, yy_2_ListTight, G->begin, G->end);
  5875. yyprintf((stderr, " ok %s @ %s\n", "ListTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5876. return 1;
  5877. l1312:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5878. yyprintf((stderr, " fail %s @ %s\n", "ListTight", G->buf+G->pos));
  5879. return 0;
  5880. }
  5881. YY_RULE(int) yy_Bullet(GREG *G)
  5882. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5883. yyprintf((stderr, "%s\n", "Bullet"));
  5884. { int yypos1321= G->pos, yythunkpos1321= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1321; } goto l1320;
  5885. l1321:; G->pos= yypos1321; G->thunkpos= yythunkpos1321;
  5886. } if (!yy_NonindentSpace(G)) { goto l1320; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1320;
  5887. { int yypos1322= G->pos, yythunkpos1322= G->thunkpos; if (!yymatchChar(G, '+')) goto l1323; goto l1322;
  5888. l1323:; G->pos= yypos1322; G->thunkpos= yythunkpos1322; if (!yymatchChar(G, '*')) goto l1324; goto l1322;
  5889. l1324:; G->pos= yypos1322; G->thunkpos= yythunkpos1322; if (!yymatchChar(G, '-')) goto l1320;
  5890. }
  5891. l1322:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1320; if (!yy_Spacechar(G)) { goto l1320; }
  5892. l1325:;
  5893. { int yypos1326= G->pos, yythunkpos1326= G->thunkpos; if (!yy_Spacechar(G)) { goto l1326; } goto l1325;
  5894. l1326:; G->pos= yypos1326; G->thunkpos= yythunkpos1326;
  5895. } yyDo(G, yy_1_Bullet, G->begin, G->end);
  5896. yyprintf((stderr, " ok %s @ %s\n", "Bullet", G->buf+G->pos));
  5897. return 1;
  5898. l1320:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5899. yyprintf((stderr, " fail %s @ %s\n", "Bullet", G->buf+G->pos));
  5900. return 0;
  5901. }
  5902. YY_RULE(int) yy_Nonspacechar(GREG *G)
  5903. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5904. yyprintf((stderr, "%s\n", "Nonspacechar"));
  5905. { int yypos1328= G->pos, yythunkpos1328= G->thunkpos; if (!yy_Spacechar(G)) { goto l1328; } goto l1327;
  5906. l1328:; G->pos= yypos1328; G->thunkpos= yythunkpos1328;
  5907. }
  5908. { int yypos1329= G->pos, yythunkpos1329= G->thunkpos; if (!yy_Newline(G)) { goto l1329; } goto l1327;
  5909. l1329:; G->pos= yypos1329; G->thunkpos= yythunkpos1329;
  5910. } if (!yymatchDot(G)) goto l1327;
  5911. yyprintf((stderr, " ok %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  5912. return 1;
  5913. l1327:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5914. yyprintf((stderr, " fail %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  5915. return 0;
  5916. }
  5917. YY_RULE(int) yy_InlineEquationMultiple(GREG *G)
  5918. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5919. yyprintf((stderr, "%s\n", "InlineEquationMultiple"));
  5920. { int yypos1331= G->pos, yythunkpos1331= G->thunkpos; if (!yymatchChar(G, '$')) goto l1331; goto l1330;
  5921. l1331:; G->pos= yypos1331; G->thunkpos= yythunkpos1331;
  5922. } if (!yy_Nonspacechar(G)) { goto l1330; }
  5923. { int yypos1334= G->pos, yythunkpos1334= G->thunkpos; if (!yymatchChar(G, '$')) goto l1334; goto l1330;
  5924. l1334:; G->pos= yypos1334; G->thunkpos= yythunkpos1334;
  5925. }
  5926. { int yypos1335= G->pos, yythunkpos1335= G->thunkpos; if (!yy_Newline(G)) { goto l1335; } goto l1330;
  5927. l1335:; G->pos= yypos1335; G->thunkpos= yythunkpos1335;
  5928. } if (!yymatchDot(G)) goto l1330;
  5929. l1332:;
  5930. { int yypos1333= G->pos, yythunkpos1333= G->thunkpos;
  5931. { int yypos1336= G->pos, yythunkpos1336= G->thunkpos; if (!yymatchChar(G, '$')) goto l1336; goto l1333;
  5932. l1336:; G->pos= yypos1336; G->thunkpos= yythunkpos1336;
  5933. }
  5934. { int yypos1337= G->pos, yythunkpos1337= G->thunkpos; if (!yy_Newline(G)) { goto l1337; } goto l1333;
  5935. l1337:; G->pos= yypos1337; G->thunkpos= yythunkpos1337;
  5936. } if (!yymatchDot(G)) goto l1333; goto l1332;
  5937. l1333:; G->pos= yypos1333; G->thunkpos= yythunkpos1333;
  5938. } if (!yymatchChar(G, '$')) goto l1330; yyText(G, G->begin, G->end); if (!( IEP_POST )) goto l1330;
  5939. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  5940. return 1;
  5941. l1330:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5942. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  5943. return 0;
  5944. }
  5945. YY_RULE(int) yy_InlineEquationSingle(GREG *G)
  5946. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5947. yyprintf((stderr, "%s\n", "InlineEquationSingle"));
  5948. { int yypos1339= G->pos, yythunkpos1339= G->thunkpos; if (!yymatchChar(G, '$')) goto l1339; goto l1338;
  5949. l1339:; G->pos= yypos1339; G->thunkpos= yythunkpos1339;
  5950. }
  5951. { int yypos1340= G->pos, yythunkpos1340= G->thunkpos; if (!yymatchChar(G, '\\')) goto l1340; goto l1338;
  5952. l1340:; G->pos= yypos1340; G->thunkpos= yythunkpos1340;
  5953. } if (!yy_Nonspacechar(G)) { goto l1338; } if (!yymatchChar(G, '$')) goto l1338;
  5954. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  5955. return 1;
  5956. l1338:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5957. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  5958. return 0;
  5959. }
  5960. YY_RULE(int) yy_InlineEquation(GREG *G)
  5961. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5962. yyprintf((stderr, "%s\n", "InlineEquation")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1341; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1341; if (!yymatchChar(G, '$')) goto l1341; yyText(G, G->begin, G->end); if (!( IEP_PRE )) goto l1341;
  5963. { int yypos1342= G->pos, yythunkpos1342= G->thunkpos; if (!yy_InlineEquationSingle(G)) { goto l1343; } goto l1342;
  5964. l1343:; G->pos= yypos1342; G->thunkpos= yythunkpos1342; if (!yy_InlineEquationMultiple(G)) { goto l1341; }
  5965. }
  5966. l1342:;
  5967. { int yypos1344= G->pos, yythunkpos1344= 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 l1344; goto l1341;
  5968. l1344:; G->pos= yypos1344; G->thunkpos= yythunkpos1344;
  5969. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1341; yyDo(G, yy_1_InlineEquation, G->begin, G->end);
  5970. yyprintf((stderr, " ok %s @ %s\n", "InlineEquation", G->buf+G->pos));
  5971. return 1;
  5972. l1341:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5973. yyprintf((stderr, " fail %s @ %s\n", "InlineEquation", G->buf+G->pos));
  5974. return 0;
  5975. }
  5976. YY_RULE(int) yy_Spacechar(GREG *G)
  5977. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5978. yyprintf((stderr, "%s\n", "Spacechar"));
  5979. { int yypos1346= G->pos, yythunkpos1346= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1347; goto l1346;
  5980. l1347:; G->pos= yypos1346; G->thunkpos= yythunkpos1346; if (!yymatchChar(G, '\t')) goto l1345;
  5981. }
  5982. l1346:;
  5983. yyprintf((stderr, " ok %s @ %s\n", "Spacechar", G->buf+G->pos));
  5984. return 1;
  5985. l1345:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5986. yyprintf((stderr, " fail %s @ %s\n", "Spacechar", G->buf+G->pos));
  5987. return 0;
  5988. }
  5989. YY_RULE(int) yy_FencedCodeBlockEnd(GREG *G)
  5990. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5991. yyprintf((stderr, "%s\n", "FencedCodeBlockEnd")); if (!yymatchString(G, "```")) goto l1348;
  5992. l1349:;
  5993. { int yypos1350= G->pos, yythunkpos1350= G->thunkpos; if (!yy_Spacechar(G)) { goto l1350; } goto l1349;
  5994. l1350:; G->pos= yypos1350; G->thunkpos= yythunkpos1350;
  5995. } if (!yy_Newline(G)) { goto l1348; }
  5996. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockEnd", G->buf+G->pos));
  5997. return 1;
  5998. l1348:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5999. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockEnd", G->buf+G->pos));
  6000. return 0;
  6001. }
  6002. YY_RULE(int) yy_FencedCodeBlockChunk(GREG *G)
  6003. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6004. yyprintf((stderr, "%s\n", "FencedCodeBlockChunk"));
  6005. { int yypos1352= G->pos, yythunkpos1352= G->thunkpos; if (!yy_FencedCodeBlockEnd(G)) { goto l1352; } goto l1351;
  6006. l1352:; G->pos= yypos1352; G->thunkpos= yythunkpos1352;
  6007. }
  6008. l1353:;
  6009. { int yypos1354= G->pos, yythunkpos1354= G->thunkpos;
  6010. { int yypos1355= G->pos, yythunkpos1355= G->thunkpos; if (!yy_Newline(G)) { goto l1355; } goto l1354;
  6011. l1355:; G->pos= yypos1355; G->thunkpos= yythunkpos1355;
  6012. } if (!yymatchDot(G)) goto l1354; goto l1353;
  6013. l1354:; G->pos= yypos1354; G->thunkpos= yythunkpos1354;
  6014. } if (!yy_Newline(G)) { goto l1351; }
  6015. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockChunk", G->buf+G->pos));
  6016. return 1;
  6017. l1351:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6018. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockChunk", G->buf+G->pos));
  6019. return 0;
  6020. }
  6021. YY_RULE(int) yy_FencedCodeBlockStart(GREG *G)
  6022. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6023. yyprintf((stderr, "%s\n", "FencedCodeBlockStart")); if (!yymatchString(G, "```")) goto l1356;
  6024. l1357:;
  6025. { int yypos1358= G->pos, yythunkpos1358= G->thunkpos;
  6026. { int yypos1359= G->pos, yythunkpos1359= G->thunkpos; if (!yy_Newline(G)) { goto l1359; } goto l1358;
  6027. l1359:; G->pos= yypos1359; G->thunkpos= yythunkpos1359;
  6028. }
  6029. { int yypos1360= G->pos, yythunkpos1360= G->thunkpos; if (!yymatchChar(G, '`')) goto l1360; goto l1358;
  6030. l1360:; G->pos= yypos1360; G->thunkpos= yythunkpos1360;
  6031. } if (!yymatchDot(G)) goto l1358; goto l1357;
  6032. l1358:; G->pos= yypos1358; G->thunkpos= yythunkpos1358;
  6033. } if (!yy_Newline(G)) { goto l1356; }
  6034. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStart", G->buf+G->pos));
  6035. return 1;
  6036. l1356:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6037. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStart", G->buf+G->pos));
  6038. return 0;
  6039. }
  6040. YY_RULE(int) yy_VerbatimChunk(GREG *G)
  6041. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6042. yyprintf((stderr, "%s\n", "VerbatimChunk"));
  6043. l1362:;
  6044. { int yypos1363= G->pos, yythunkpos1363= G->thunkpos; if (!yy_BlankLine(G)) { goto l1363; } goto l1362;
  6045. l1363:; G->pos= yypos1363; G->thunkpos= yythunkpos1363;
  6046. } if (!yy_NonblankIndentedLine(G)) { goto l1361; }
  6047. l1364:;
  6048. { int yypos1365= G->pos, yythunkpos1365= G->thunkpos; if (!yy_NonblankIndentedLine(G)) { goto l1365; } goto l1364;
  6049. l1365:; G->pos= yypos1365; G->thunkpos= yythunkpos1365;
  6050. }
  6051. yyprintf((stderr, " ok %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6052. return 1;
  6053. l1361:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6054. yyprintf((stderr, " fail %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6055. return 0;
  6056. }
  6057. YY_RULE(int) yy_IndentedLine(GREG *G)
  6058. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6059. yyprintf((stderr, "%s\n", "IndentedLine")); if (!yy_Indent(G)) { goto l1366; } if (!yy_Line(G)) { goto l1366; }
  6060. yyprintf((stderr, " ok %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6061. return 1;
  6062. l1366:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6063. yyprintf((stderr, " fail %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6064. return 0;
  6065. }
  6066. YY_RULE(int) yy_NonblankIndentedLine(GREG *G)
  6067. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6068. yyprintf((stderr, "%s\n", "NonblankIndentedLine"));
  6069. { int yypos1368= G->pos, yythunkpos1368= G->thunkpos; if (!yy_BlankLine(G)) { goto l1368; } goto l1367;
  6070. l1368:; G->pos= yypos1368; G->thunkpos= yythunkpos1368;
  6071. } if (!yy_IndentedLine(G)) { goto l1367; }
  6072. yyprintf((stderr, " ok %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6073. return 1;
  6074. l1367:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6075. yyprintf((stderr, " fail %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6076. return 0;
  6077. }
  6078. YY_RULE(int) yy_Line(GREG *G)
  6079. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6080. yyprintf((stderr, "%s\n", "Line")); if (!yy_RawLine(G)) { goto l1369; } yyDo(G, yy_1_Line, G->begin, G->end);
  6081. yyprintf((stderr, " ok %s @ %s\n", "Line", G->buf+G->pos));
  6082. return 1;
  6083. l1369:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6084. yyprintf((stderr, " fail %s @ %s\n", "Line", G->buf+G->pos));
  6085. return 0;
  6086. }
  6087. YY_RULE(int) yy_StartList(GREG *G)
  6088. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6089. yyprintf((stderr, "%s\n", "StartList"));
  6090. { int yypos1371= G->pos, yythunkpos1371= G->thunkpos; if (!yymatchDot(G)) goto l1370; G->pos= yypos1371; G->thunkpos= yythunkpos1371;
  6091. } yyDo(G, yy_1_StartList, G->begin, G->end);
  6092. yyprintf((stderr, " ok %s @ %s\n", "StartList", G->buf+G->pos));
  6093. return 1;
  6094. l1370:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6095. yyprintf((stderr, " fail %s @ %s\n", "StartList", G->buf+G->pos));
  6096. return 0;
  6097. }
  6098. YY_RULE(int) yy_BlockQuoteRaw(GREG *G)
  6099. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6100. yyprintf((stderr, "%s\n", "BlockQuoteRaw")); if (!yy_StartList(G)) { goto l1372; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1372; if (!yymatchChar(G, '>')) goto l1372;
  6101. { int yypos1375= G->pos, yythunkpos1375= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1375; goto l1376;
  6102. l1375:; G->pos= yypos1375; G->thunkpos= yythunkpos1375;
  6103. }
  6104. l1376:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1372; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1372; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6105. l1377:;
  6106. { int yypos1378= G->pos, yythunkpos1378= G->thunkpos;
  6107. { int yypos1379= G->pos, yythunkpos1379= G->thunkpos; if (!yymatchChar(G, '>')) goto l1379; goto l1378;
  6108. l1379:; G->pos= yypos1379; G->thunkpos= yythunkpos1379;
  6109. }
  6110. { int yypos1380= G->pos, yythunkpos1380= G->thunkpos; if (!yy_BlankLine(G)) { goto l1380; } goto l1378;
  6111. l1380:; G->pos= yypos1380; G->thunkpos= yythunkpos1380;
  6112. } if (!yy_Line(G)) { goto l1378; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1377;
  6113. l1378:; G->pos= yypos1378; G->thunkpos= yythunkpos1378;
  6114. }
  6115. l1381:;
  6116. { int yypos1382= G->pos, yythunkpos1382= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1382; if (!yy_BlankLine(G)) { goto l1382; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1382; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1381;
  6117. l1382:; G->pos= yypos1382; G->thunkpos= yythunkpos1382;
  6118. }
  6119. l1373:;
  6120. { int yypos1374= G->pos, yythunkpos1374= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1374; if (!yymatchChar(G, '>')) goto l1374;
  6121. { int yypos1383= G->pos, yythunkpos1383= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1383; goto l1384;
  6122. l1383:; G->pos= yypos1383; G->thunkpos= yythunkpos1383;
  6123. }
  6124. l1384:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1374; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1374; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6125. l1385:;
  6126. { int yypos1386= G->pos, yythunkpos1386= G->thunkpos;
  6127. { int yypos1387= G->pos, yythunkpos1387= G->thunkpos; if (!yymatchChar(G, '>')) goto l1387; goto l1386;
  6128. l1387:; G->pos= yypos1387; G->thunkpos= yythunkpos1387;
  6129. }
  6130. { int yypos1388= G->pos, yythunkpos1388= G->thunkpos; if (!yy_BlankLine(G)) { goto l1388; } goto l1386;
  6131. l1388:; G->pos= yypos1388; G->thunkpos= yythunkpos1388;
  6132. } if (!yy_Line(G)) { goto l1386; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1385;
  6133. l1386:; G->pos= yypos1386; G->thunkpos= yythunkpos1386;
  6134. }
  6135. l1389:;
  6136. { int yypos1390= G->pos, yythunkpos1390= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1390; if (!yy_BlankLine(G)) { goto l1390; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1390; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1389;
  6137. l1390:; G->pos= yypos1390; G->thunkpos= yythunkpos1390;
  6138. } goto l1373;
  6139. l1374:; G->pos= yypos1374; G->thunkpos= yythunkpos1374;
  6140. } yyDo(G, yy_5_BlockQuoteRaw, G->begin, G->end);
  6141. yyprintf((stderr, " ok %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6142. return 1;
  6143. l1372:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6144. yyprintf((stderr, " fail %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos));
  6145. return 0;
  6146. }
  6147. YY_RULE(int) yy_Endline(GREG *G)
  6148. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6149. yyprintf((stderr, "%s\n", "Endline"));
  6150. { int yypos1392= G->pos, yythunkpos1392= G->thunkpos; if (!yy_LineBreak(G)) { goto l1393; } goto l1392;
  6151. l1393:; G->pos= yypos1392; G->thunkpos= yythunkpos1392; if (!yy_TerminalEndline(G)) { goto l1394; } goto l1392;
  6152. l1394:; G->pos= yypos1392; G->thunkpos= yythunkpos1392; if (!yy_NormalEndline(G)) { goto l1391; }
  6153. }
  6154. l1392:;
  6155. yyprintf((stderr, " ok %s @ %s\n", "Endline", G->buf+G->pos));
  6156. return 1;
  6157. l1391:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6158. yyprintf((stderr, " fail %s @ %s\n", "Endline", G->buf+G->pos));
  6159. return 0;
  6160. }
  6161. YY_RULE(int) yy_RawLine(GREG *G)
  6162. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6163. yyprintf((stderr, "%s\n", "RawLine"));
  6164. { int yypos1396= G->pos, yythunkpos1396= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1397;
  6165. l1398:;
  6166. { int yypos1399= G->pos, yythunkpos1399= G->thunkpos;
  6167. { int yypos1400= G->pos, yythunkpos1400= G->thunkpos; if (!yymatchChar(G, '\r')) goto l1400; goto l1399;
  6168. l1400:; G->pos= yypos1400; G->thunkpos= yythunkpos1400;
  6169. }
  6170. { int yypos1401= G->pos, yythunkpos1401= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1401; goto l1399;
  6171. l1401:; G->pos= yypos1401; G->thunkpos= yythunkpos1401;
  6172. } if (!yymatchDot(G)) goto l1399; goto l1398;
  6173. l1399:; G->pos= yypos1399; G->thunkpos= yythunkpos1399;
  6174. } if (!yy_Newline(G)) { goto l1397; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1397; goto l1396;
  6175. l1397:; G->pos= yypos1396; G->thunkpos= yythunkpos1396; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1395; if (!yymatchDot(G)) goto l1395;
  6176. l1402:;
  6177. { int yypos1403= G->pos, yythunkpos1403= G->thunkpos; if (!yymatchDot(G)) goto l1403; goto l1402;
  6178. l1403:; G->pos= yypos1403; G->thunkpos= yythunkpos1403;
  6179. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1395; if (!yy_Eof(G)) { goto l1395; }
  6180. }
  6181. l1396:; yyDo(G, yy_1_RawLine, G->begin, G->end);
  6182. yyprintf((stderr, " ok %s @ %s\n", "RawLine", G->buf+G->pos));
  6183. return 1;
  6184. l1395:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6185. yyprintf((stderr, " fail %s @ %s\n", "RawLine", G->buf+G->pos));
  6186. return 0;
  6187. }
  6188. YY_RULE(int) yy_SetextBottom2(GREG *G)
  6189. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6190. yyprintf((stderr, "%s\n", "SetextBottom2")); if (!yymatchChar(G, '-')) goto l1404;
  6191. l1405:;
  6192. { int yypos1406= G->pos, yythunkpos1406= G->thunkpos; if (!yymatchChar(G, '-')) goto l1406; goto l1405;
  6193. l1406:; G->pos= yypos1406; G->thunkpos= yythunkpos1406;
  6194. } if (!yy_Newline(G)) { goto l1404; }
  6195. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6196. return 1;
  6197. l1404:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6198. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6199. return 0;
  6200. }
  6201. YY_RULE(int) yy_SetextBottom1(GREG *G)
  6202. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6203. yyprintf((stderr, "%s\n", "SetextBottom1")); if (!yymatchChar(G, '=')) goto l1407;
  6204. l1408:;
  6205. { int yypos1409= G->pos, yythunkpos1409= G->thunkpos; if (!yymatchChar(G, '=')) goto l1409; goto l1408;
  6206. l1409:; G->pos= yypos1409; G->thunkpos= yythunkpos1409;
  6207. } if (!yy_Newline(G)) { goto l1407; }
  6208. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6209. return 1;
  6210. l1407:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6211. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6212. return 0;
  6213. }
  6214. YY_RULE(int) yy_SetextHeading2(GREG *G)
  6215. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6216. yyprintf((stderr, "%s\n", "SetextHeading2"));
  6217. { int yypos1411= G->pos, yythunkpos1411= G->thunkpos; if (!yy_RawLine(G)) { goto l1410; } if (!yy_SetextBottom2(G)) { goto l1410; } G->pos= yypos1411; G->thunkpos= yythunkpos1411;
  6218. } if (!yy_LocMarker(G)) { goto l1410; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1410;
  6219. { int yypos1414= G->pos, yythunkpos1414= G->thunkpos; if (!yy_Endline(G)) { goto l1414; } goto l1410;
  6220. l1414:; G->pos= yypos1414; G->thunkpos= yythunkpos1414;
  6221. } if (!yy_Inline(G)) { goto l1410; }
  6222. l1412:;
  6223. { int yypos1413= G->pos, yythunkpos1413= G->thunkpos;
  6224. { int yypos1415= G->pos, yythunkpos1415= G->thunkpos; if (!yy_Endline(G)) { goto l1415; } goto l1413;
  6225. l1415:; G->pos= yypos1415; G->thunkpos= yythunkpos1415;
  6226. } if (!yy_Inline(G)) { goto l1413; } goto l1412;
  6227. l1413:; G->pos= yypos1413; G->thunkpos= yythunkpos1413;
  6228. } if (!yy_Sp(G)) { goto l1410; } if (!yy_Newline(G)) { goto l1410; } if (!yy_SetextBottom2(G)) { goto l1410; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1410; yyDo(G, yy_1_SetextHeading2, G->begin, G->end);
  6229. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6230. return 1;
  6231. l1410:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6232. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading2", G->buf+G->pos));
  6233. return 0;
  6234. }
  6235. YY_RULE(int) yy_SetextHeading1(GREG *G)
  6236. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6237. yyprintf((stderr, "%s\n", "SetextHeading1"));
  6238. { int yypos1417= G->pos, yythunkpos1417= G->thunkpos; if (!yy_RawLine(G)) { goto l1416; } if (!yy_SetextBottom1(G)) { goto l1416; } G->pos= yypos1417; G->thunkpos= yythunkpos1417;
  6239. } if (!yy_LocMarker(G)) { goto l1416; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1416;
  6240. { int yypos1420= G->pos, yythunkpos1420= G->thunkpos; if (!yy_Endline(G)) { goto l1420; } goto l1416;
  6241. l1420:; G->pos= yypos1420; G->thunkpos= yythunkpos1420;
  6242. } if (!yy_Inline(G)) { goto l1416; }
  6243. l1418:;
  6244. { int yypos1419= G->pos, yythunkpos1419= G->thunkpos;
  6245. { int yypos1421= G->pos, yythunkpos1421= G->thunkpos; if (!yy_Endline(G)) { goto l1421; } goto l1419;
  6246. l1421:; G->pos= yypos1421; G->thunkpos= yythunkpos1421;
  6247. } if (!yy_Inline(G)) { goto l1419; } goto l1418;
  6248. l1419:; G->pos= yypos1419; G->thunkpos= yythunkpos1419;
  6249. } if (!yy_Sp(G)) { goto l1416; } if (!yy_Newline(G)) { goto l1416; } if (!yy_SetextBottom1(G)) { goto l1416; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1416; yyDo(G, yy_1_SetextHeading1, G->begin, G->end);
  6250. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6251. return 1;
  6252. l1416:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6253. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading1", G->buf+G->pos));
  6254. return 0;
  6255. }
  6256. YY_RULE(int) yy_SetextHeading(GREG *G)
  6257. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6258. yyprintf((stderr, "%s\n", "SetextHeading"));
  6259. { int yypos1423= G->pos, yythunkpos1423= G->thunkpos; if (!yy_SetextHeading1(G)) { goto l1424; } goto l1423;
  6260. l1424:; G->pos= yypos1423; G->thunkpos= yythunkpos1423; if (!yy_SetextHeading2(G)) { goto l1422; }
  6261. }
  6262. l1423:;
  6263. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6264. return 1;
  6265. l1422:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6266. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6267. return 0;
  6268. }
  6269. YY_RULE(int) yy_Space(GREG *G)
  6270. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6271. yyprintf((stderr, "%s\n", "Space")); if (!yy_Spacechar(G)) { goto l1425; }
  6272. l1426:;
  6273. { int yypos1427= G->pos, yythunkpos1427= G->thunkpos; if (!yy_Spacechar(G)) { goto l1427; } goto l1426;
  6274. l1427:; G->pos= yypos1427; G->thunkpos= yythunkpos1427;
  6275. }
  6276. yyprintf((stderr, " ok %s @ %s\n", "Space", G->buf+G->pos));
  6277. return 1;
  6278. l1425:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6279. yyprintf((stderr, " fail %s @ %s\n", "Space", G->buf+G->pos));
  6280. return 0;
  6281. }
  6282. YY_RULE(int) yy_AtxHeading(GREG *G)
  6283. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6284. yyprintf((stderr, "%s\n", "AtxHeading")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1428; if (!yy_AtxStart(G)) { goto l1428; } yyDo(G, yySet, -1, 0); if (!yy_Space(G)) { goto l1428; } if (!yy_AtxInline(G)) { goto l1428; }
  6285. l1429:;
  6286. { int yypos1430= G->pos, yythunkpos1430= G->thunkpos; if (!yy_AtxInline(G)) { goto l1430; } goto l1429;
  6287. l1430:; G->pos= yypos1430; G->thunkpos= yythunkpos1430;
  6288. }
  6289. { int yypos1431= G->pos, yythunkpos1431= G->thunkpos; if (!yy_Sp(G)) { goto l1431; }
  6290. l1433:;
  6291. { int yypos1434= G->pos, yythunkpos1434= G->thunkpos; if (!yymatchChar(G, '#')) goto l1434; goto l1433;
  6292. l1434:; G->pos= yypos1434; G->thunkpos= yythunkpos1434;
  6293. } if (!yy_Sp(G)) { goto l1431; } goto l1432;
  6294. l1431:; G->pos= yypos1431; G->thunkpos= yythunkpos1431;
  6295. }
  6296. l1432:; if (!yy_Newline(G)) { goto l1428; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1428; yyDo(G, yy_1_AtxHeading, G->begin, G->end);
  6297. yyprintf((stderr, " ok %s @ %s\n", "AtxHeading", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6298. return 1;
  6299. l1428:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6300. yyprintf((stderr, " fail %s @ %s\n", "AtxHeading", G->buf+G->pos));
  6301. return 0;
  6302. }
  6303. YY_RULE(int) yy_AtxStart(GREG *G)
  6304. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6305. yyprintf((stderr, "%s\n", "AtxStart")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1435;
  6306. { int yypos1436= G->pos, yythunkpos1436= G->thunkpos; if (!yymatchString(G, "######")) goto l1437; goto l1436;
  6307. l1437:; G->pos= yypos1436; G->thunkpos= yythunkpos1436; if (!yymatchString(G, "#####")) goto l1438; goto l1436;
  6308. l1438:; G->pos= yypos1436; G->thunkpos= yythunkpos1436; if (!yymatchString(G, "####")) goto l1439; goto l1436;
  6309. l1439:; G->pos= yypos1436; G->thunkpos= yythunkpos1436; if (!yymatchString(G, "###")) goto l1440; goto l1436;
  6310. l1440:; G->pos= yypos1436; G->thunkpos= yythunkpos1436; if (!yymatchString(G, "##")) goto l1441; goto l1436;
  6311. l1441:; G->pos= yypos1436; G->thunkpos= yythunkpos1436; if (!yymatchChar(G, '#')) goto l1435;
  6312. }
  6313. l1436:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1435; yyDo(G, yy_1_AtxStart, G->begin, G->end);
  6314. yyprintf((stderr, " ok %s @ %s\n", "AtxStart", G->buf+G->pos));
  6315. return 1;
  6316. l1435:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6317. yyprintf((stderr, " fail %s @ %s\n", "AtxStart", G->buf+G->pos));
  6318. return 0;
  6319. }
  6320. YY_RULE(int) yy_Inline(GREG *G)
  6321. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6322. yyprintf((stderr, "%s\n", "Inline"));
  6323. { int yypos1443= G->pos, yythunkpos1443= G->thunkpos; if (!yy_Str(G)) { goto l1444; } goto l1443;
  6324. l1444:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Endline(G)) { goto l1445; } goto l1443;
  6325. l1445:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_UlOrStarLine(G)) { goto l1446; } goto l1443;
  6326. l1446:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Space(G)) { goto l1447; } goto l1443;
  6327. l1447:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Strong(G)) { goto l1448; } goto l1443;
  6328. l1448:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Emph(G)) { goto l1449; } goto l1443;
  6329. l1449:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Strike(G)) { goto l1450; } goto l1443;
  6330. l1450:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Image(G)) { goto l1451; } goto l1443;
  6331. l1451:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Link(G)) { goto l1452; } goto l1443;
  6332. l1452:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_NoteReference(G)) { goto l1453; } goto l1443;
  6333. l1453:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_InlineNote(G)) { goto l1454; } goto l1443;
  6334. l1454:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Code(G)) { goto l1455; } goto l1443;
  6335. l1455:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_InlineEquation(G)) { goto l1456; } goto l1443;
  6336. l1456:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Mark(G)) { goto l1457; } goto l1443;
  6337. l1457:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_RawHtml(G)) { goto l1458; } goto l1443;
  6338. l1458:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Entity(G)) { goto l1459; } goto l1443;
  6339. l1459:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_EscapedChar(G)) { goto l1460; } goto l1443;
  6340. l1460:; G->pos= yypos1443; G->thunkpos= yythunkpos1443; if (!yy_Symbol(G)) { goto l1442; }
  6341. }
  6342. l1443:;
  6343. yyprintf((stderr, " ok %s @ %s\n", "Inline", G->buf+G->pos));
  6344. return 1;
  6345. l1442:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6346. yyprintf((stderr, " fail %s @ %s\n", "Inline", G->buf+G->pos));
  6347. return 0;
  6348. }
  6349. YY_RULE(int) yy_Sp(GREG *G)
  6350. {
  6351. yyprintf((stderr, "%s\n", "Sp"));
  6352. l1462:;
  6353. { int yypos1463= G->pos, yythunkpos1463= G->thunkpos; if (!yy_Spacechar(G)) { goto l1463; } goto l1462;
  6354. l1463:; G->pos= yypos1463; G->thunkpos= yythunkpos1463;
  6355. }
  6356. yyprintf((stderr, " ok %s @ %s\n", "Sp", G->buf+G->pos));
  6357. return 1;
  6358. }
  6359. YY_RULE(int) yy_AtxInline(GREG *G)
  6360. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6361. yyprintf((stderr, "%s\n", "AtxInline"));
  6362. { int yypos1465= G->pos, yythunkpos1465= G->thunkpos; if (!yy_Newline(G)) { goto l1465; } goto l1464;
  6363. l1465:; G->pos= yypos1465; G->thunkpos= yythunkpos1465;
  6364. }
  6365. { int yypos1466= G->pos, yythunkpos1466= G->thunkpos; if (!yy_Sp(G)) { goto l1466; }
  6366. l1467:;
  6367. { int yypos1468= G->pos, yythunkpos1468= G->thunkpos; if (!yymatchChar(G, '#')) goto l1468; goto l1467;
  6368. l1468:; G->pos= yypos1468; G->thunkpos= yythunkpos1468;
  6369. } if (!yy_Sp(G)) { goto l1466; } if (!yy_Newline(G)) { goto l1466; } goto l1464;
  6370. l1466:; G->pos= yypos1466; G->thunkpos= yythunkpos1466;
  6371. } if (!yy_Inline(G)) { goto l1464; }
  6372. yyprintf((stderr, " ok %s @ %s\n", "AtxInline", G->buf+G->pos));
  6373. return 1;
  6374. l1464:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6375. yyprintf((stderr, " fail %s @ %s\n", "AtxInline", G->buf+G->pos));
  6376. return 0;
  6377. }
  6378. YY_RULE(int) yy_Inlines(GREG *G)
  6379. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6380. yyprintf((stderr, "%s\n", "Inlines"));
  6381. { int yypos1472= G->pos, yythunkpos1472= G->thunkpos;
  6382. { int yypos1474= G->pos, yythunkpos1474= G->thunkpos; if (!yy_Endline(G)) { goto l1474; } goto l1473;
  6383. l1474:; G->pos= yypos1474; G->thunkpos= yythunkpos1474;
  6384. } if (!yy_Inline(G)) { goto l1473; } goto l1472;
  6385. l1473:; G->pos= yypos1472; G->thunkpos= yythunkpos1472; if (!yy_Endline(G)) { goto l1469; }
  6386. { int yypos1475= G->pos, yythunkpos1475= G->thunkpos; if (!yy_Inline(G)) { goto l1469; } G->pos= yypos1475; G->thunkpos= yythunkpos1475;
  6387. }
  6388. }
  6389. l1472:;
  6390. l1470:;
  6391. { int yypos1471= G->pos, yythunkpos1471= G->thunkpos;
  6392. { int yypos1476= G->pos, yythunkpos1476= G->thunkpos;
  6393. { int yypos1478= G->pos, yythunkpos1478= G->thunkpos; if (!yy_Endline(G)) { goto l1478; } goto l1477;
  6394. l1478:; G->pos= yypos1478; G->thunkpos= yythunkpos1478;
  6395. } if (!yy_Inline(G)) { goto l1477; } goto l1476;
  6396. l1477:; G->pos= yypos1476; G->thunkpos= yythunkpos1476; if (!yy_Endline(G)) { goto l1471; }
  6397. { int yypos1479= G->pos, yythunkpos1479= G->thunkpos; if (!yy_Inline(G)) { goto l1471; } G->pos= yypos1479; G->thunkpos= yythunkpos1479;
  6398. }
  6399. }
  6400. l1476:; goto l1470;
  6401. l1471:; G->pos= yypos1471; G->thunkpos= yythunkpos1471;
  6402. }
  6403. { int yypos1480= G->pos, yythunkpos1480= G->thunkpos; if (!yy_Endline(G)) { goto l1480; } goto l1481;
  6404. l1480:; G->pos= yypos1480; G->thunkpos= yythunkpos1480;
  6405. }
  6406. l1481:;
  6407. yyprintf((stderr, " ok %s @ %s\n", "Inlines", G->buf+G->pos));
  6408. return 1;
  6409. l1469:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6410. yyprintf((stderr, " fail %s @ %s\n", "Inlines", G->buf+G->pos));
  6411. return 0;
  6412. }
  6413. YY_RULE(int) yy_NonindentSpace(GREG *G)
  6414. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6415. yyprintf((stderr, "%s\n", "NonindentSpace"));
  6416. { int yypos1483= G->pos, yythunkpos1483= G->thunkpos; if (!yymatchString(G, " ")) goto l1484; goto l1483;
  6417. l1484:; G->pos= yypos1483; G->thunkpos= yythunkpos1483; if (!yymatchString(G, " ")) goto l1485; goto l1483;
  6418. l1485:; G->pos= yypos1483; G->thunkpos= yythunkpos1483; if (!yymatchChar(G, ' ')) goto l1486; goto l1483;
  6419. l1486:; G->pos= yypos1483; G->thunkpos= yythunkpos1483; if (!yymatchString(G, "")) goto l1482;
  6420. }
  6421. l1483:;
  6422. yyprintf((stderr, " ok %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6423. return 1;
  6424. l1482:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6425. yyprintf((stderr, " fail %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6426. return 0;
  6427. }
  6428. YY_RULE(int) yy_Plain(GREG *G)
  6429. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6430. yyprintf((stderr, "%s\n", "Plain")); if (!yy_Inlines(G)) { goto l1487; }
  6431. yyprintf((stderr, " ok %s @ %s\n", "Plain", G->buf+G->pos));
  6432. return 1;
  6433. l1487:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6434. yyprintf((stderr, " fail %s @ %s\n", "Plain", G->buf+G->pos));
  6435. return 0;
  6436. }
  6437. YY_RULE(int) yy_Para(GREG *G)
  6438. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6439. yyprintf((stderr, "%s\n", "Para")); if (!yy_NonindentSpace(G)) { goto l1488; } if (!yy_Inlines(G)) { goto l1488; } if (!yy_BlankLine(G)) { goto l1488; }
  6440. l1489:;
  6441. { int yypos1490= G->pos, yythunkpos1490= G->thunkpos; if (!yy_BlankLine(G)) { goto l1490; } goto l1489;
  6442. l1490:; G->pos= yypos1490; G->thunkpos= yythunkpos1490;
  6443. }
  6444. yyprintf((stderr, " ok %s @ %s\n", "Para", G->buf+G->pos));
  6445. return 1;
  6446. l1488:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6447. yyprintf((stderr, " fail %s @ %s\n", "Para", G->buf+G->pos));
  6448. return 0;
  6449. }
  6450. YY_RULE(int) yy_StyleBlock(GREG *G)
  6451. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6452. yyprintf((stderr, "%s\n", "StyleBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1491; if (!yy_LocMarker(G)) { goto l1491; } yyDo(G, yySet, -1, 0); if (!yy_InStyleTags(G)) { goto l1491; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1491;
  6453. l1492:;
  6454. { int yypos1493= G->pos, yythunkpos1493= G->thunkpos; if (!yy_BlankLine(G)) { goto l1493; } goto l1492;
  6455. l1493:; G->pos= yypos1493; G->thunkpos= yythunkpos1493;
  6456. } yyDo(G, yy_1_StyleBlock, G->begin, G->end);
  6457. yyprintf((stderr, " ok %s @ %s\n", "StyleBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6458. return 1;
  6459. l1491:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6460. yyprintf((stderr, " fail %s @ %s\n", "StyleBlock", G->buf+G->pos));
  6461. return 0;
  6462. }
  6463. YY_RULE(int) yy_HtmlBlock(GREG *G)
  6464. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6465. yyprintf((stderr, "%s\n", "HtmlBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1494; if (!yy_LocMarker(G)) { goto l1494; } yyDo(G, yySet, -1, 0);
  6466. { int yypos1495= G->pos, yythunkpos1495= G->thunkpos; if (!yy_HtmlBlockInTags(G)) { goto l1496; } goto l1495;
  6467. l1496:; G->pos= yypos1495; G->thunkpos= yythunkpos1495; if (!yy_HtmlComment(G)) { goto l1497; } goto l1495;
  6468. l1497:; G->pos= yypos1495; G->thunkpos= yythunkpos1495; if (!yy_HtmlBlockSelfClosing(G)) { goto l1494; }
  6469. }
  6470. l1495:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1494; if (!yy_BlankLine(G)) { goto l1494; }
  6471. l1498:;
  6472. { int yypos1499= G->pos, yythunkpos1499= G->thunkpos; if (!yy_BlankLine(G)) { goto l1499; } goto l1498;
  6473. l1499:; G->pos= yypos1499; G->thunkpos= yythunkpos1499;
  6474. } yyDo(G, yy_1_HtmlBlock, G->begin, G->end);
  6475. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6476. return 1;
  6477. l1494:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6478. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlock", G->buf+G->pos));
  6479. return 0;
  6480. }
  6481. YY_RULE(int) yy_BulletList(GREG *G)
  6482. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6483. yyprintf((stderr, "%s\n", "BulletList"));
  6484. { int yypos1501= G->pos, yythunkpos1501= G->thunkpos; if (!yy_Bullet(G)) { goto l1500; } G->pos= yypos1501; G->thunkpos= yythunkpos1501;
  6485. }
  6486. { int yypos1502= G->pos, yythunkpos1502= G->thunkpos; if (!yy_ListTight(G)) { goto l1503; } goto l1502;
  6487. l1503:; G->pos= yypos1502; G->thunkpos= yythunkpos1502; if (!yy_ListLoose(G)) { goto l1500; }
  6488. }
  6489. l1502:;
  6490. yyprintf((stderr, " ok %s @ %s\n", "BulletList", G->buf+G->pos));
  6491. return 1;
  6492. l1500:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6493. yyprintf((stderr, " fail %s @ %s\n", "BulletList", G->buf+G->pos));
  6494. return 0;
  6495. }
  6496. YY_RULE(int) yy_OrderedList(GREG *G)
  6497. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6498. yyprintf((stderr, "%s\n", "OrderedList"));
  6499. { int yypos1505= G->pos, yythunkpos1505= G->thunkpos; if (!yy_Enumerator(G)) { goto l1504; } G->pos= yypos1505; G->thunkpos= yythunkpos1505;
  6500. }
  6501. { int yypos1506= G->pos, yythunkpos1506= G->thunkpos; if (!yy_ListTight(G)) { goto l1507; } goto l1506;
  6502. l1507:; G->pos= yypos1506; G->thunkpos= yythunkpos1506; if (!yy_ListLoose(G)) { goto l1504; }
  6503. }
  6504. l1506:;
  6505. yyprintf((stderr, " ok %s @ %s\n", "OrderedList", G->buf+G->pos));
  6506. return 1;
  6507. l1504:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6508. yyprintf((stderr, " fail %s @ %s\n", "OrderedList", G->buf+G->pos));
  6509. return 0;
  6510. }
  6511. YY_RULE(int) yy_Heading(GREG *G)
  6512. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6513. yyprintf((stderr, "%s\n", "Heading"));
  6514. { int yypos1509= G->pos, yythunkpos1509= G->thunkpos; if (!yy_SetextHeading(G)) { goto l1510; } goto l1509;
  6515. l1510:; G->pos= yypos1509; G->thunkpos= yythunkpos1509; if (!yy_AtxHeading(G)) { goto l1508; }
  6516. }
  6517. l1509:;
  6518. yyprintf((stderr, " ok %s @ %s\n", "Heading", G->buf+G->pos));
  6519. return 1;
  6520. l1508:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6521. yyprintf((stderr, " fail %s @ %s\n", "Heading", G->buf+G->pos));
  6522. return 0;
  6523. }
  6524. YY_RULE(int) yy_HorizontalRule(GREG *G)
  6525. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6526. yyprintf((stderr, "%s\n", "HorizontalRule")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1511; if (!yy_NonindentSpace(G)) { goto l1511; }
  6527. { int yypos1512= G->pos, yythunkpos1512= G->thunkpos; if (!yymatchChar(G, '*')) goto l1513; if (!yy_Sp(G)) { goto l1513; } if (!yymatchChar(G, '*')) goto l1513; if (!yy_Sp(G)) { goto l1513; } if (!yymatchChar(G, '*')) goto l1513;
  6528. l1514:;
  6529. { int yypos1515= G->pos, yythunkpos1515= G->thunkpos; if (!yy_Sp(G)) { goto l1515; } if (!yymatchChar(G, '*')) goto l1515; goto l1514;
  6530. l1515:; G->pos= yypos1515; G->thunkpos= yythunkpos1515;
  6531. } goto l1512;
  6532. l1513:; G->pos= yypos1512; G->thunkpos= yythunkpos1512; if (!yymatchChar(G, '-')) goto l1516; if (!yy_Sp(G)) { goto l1516; } if (!yymatchChar(G, '-')) goto l1516; if (!yy_Sp(G)) { goto l1516; } if (!yymatchChar(G, '-')) goto l1516;
  6533. l1517:;
  6534. { int yypos1518= G->pos, yythunkpos1518= G->thunkpos; if (!yy_Sp(G)) { goto l1518; } if (!yymatchChar(G, '-')) goto l1518; goto l1517;
  6535. l1518:; G->pos= yypos1518; G->thunkpos= yythunkpos1518;
  6536. } goto l1512;
  6537. l1516:; G->pos= yypos1512; G->thunkpos= yythunkpos1512; if (!yymatchChar(G, '_')) goto l1511; if (!yy_Sp(G)) { goto l1511; } if (!yymatchChar(G, '_')) goto l1511; if (!yy_Sp(G)) { goto l1511; } if (!yymatchChar(G, '_')) goto l1511;
  6538. l1519:;
  6539. { int yypos1520= G->pos, yythunkpos1520= G->thunkpos; if (!yy_Sp(G)) { goto l1520; } if (!yymatchChar(G, '_')) goto l1520; goto l1519;
  6540. l1520:; G->pos= yypos1520; G->thunkpos= yythunkpos1520;
  6541. }
  6542. }
  6543. l1512:; if (!yy_Sp(G)) { goto l1511; } if (!yy_Newline(G)) { goto l1511; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1511; if (!yy_BlankLine(G)) { goto l1511; }
  6544. l1521:;
  6545. { int yypos1522= G->pos, yythunkpos1522= G->thunkpos; if (!yy_BlankLine(G)) { goto l1522; } goto l1521;
  6546. l1522:; G->pos= yypos1522; G->thunkpos= yythunkpos1522;
  6547. } yyDo(G, yy_1_HorizontalRule, G->begin, G->end);
  6548. yyprintf((stderr, " ok %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6549. return 1;
  6550. l1511:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6551. yyprintf((stderr, " fail %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6552. return 0;
  6553. }
  6554. YY_RULE(int) yy_Reference(GREG *G)
  6555. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 3, 0);
  6556. yyprintf((stderr, "%s\n", "Reference")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1523; if (!yy_LocMarker(G)) { goto l1523; } yyDo(G, yySet, -3, 0); if (!yy_NonindentSpace(G)) { goto l1523; }
  6557. { int yypos1524= G->pos, yythunkpos1524= G->thunkpos; if (!yymatchString(G, "[]")) goto l1524; goto l1523;
  6558. l1524:; G->pos= yypos1524; G->thunkpos= yythunkpos1524;
  6559. } if (!yy_Label(G)) { goto l1523; } yyDo(G, yySet, -2, 0); if (!yymatchChar(G, ':')) goto l1523; if (!yy_Spnl(G)) { goto l1523; } if (!yy_RefSrc(G)) { goto l1523; } yyDo(G, yySet, -1, 0); if (!yy_RefTitle(G)) { goto l1523; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1523; if (!yy_BlankLine(G)) { goto l1523; }
  6560. l1525:;
  6561. { int yypos1526= G->pos, yythunkpos1526= G->thunkpos; if (!yy_BlankLine(G)) { goto l1526; } goto l1525;
  6562. l1526:; G->pos= yypos1526; G->thunkpos= yythunkpos1526;
  6563. } yyDo(G, yy_1_Reference, G->begin, G->end);
  6564. yyprintf((stderr, " ok %s @ %s\n", "Reference", G->buf+G->pos)); yyDo(G, yyPop, 3, 0);
  6565. return 1;
  6566. l1523:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6567. yyprintf((stderr, " fail %s @ %s\n", "Reference", G->buf+G->pos));
  6568. return 0;
  6569. }
  6570. YY_RULE(int) yy_Note(GREG *G)
  6571. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6572. yyprintf((stderr, "%s\n", "Note")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l1527; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1527; if (!yy_LocMarker(G)) { goto l1527; } yyDo(G, yySet, -1, 0); if (!yy_NonindentSpace(G)) { goto l1527; } if (!yy_RawNoteReference(G)) { goto l1527; } if (!yymatchChar(G, ':')) goto l1527; if (!yy_Sp(G)) { goto l1527; } if (!yy_RawNoteBlock(G)) { goto l1527; }
  6573. l1528:;
  6574. { int yypos1529= G->pos, yythunkpos1529= G->thunkpos;
  6575. { int yypos1530= G->pos, yythunkpos1530= G->thunkpos; if (!yy_Indent(G)) { goto l1529; } G->pos= yypos1530; G->thunkpos= yythunkpos1530;
  6576. } if (!yy_RawNoteBlock(G)) { goto l1529; } goto l1528;
  6577. l1529:; G->pos= yypos1529; G->thunkpos= yythunkpos1529;
  6578. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1527; yyDo(G, yy_1_Note, G->begin, G->end);
  6579. yyprintf((stderr, " ok %s @ %s\n", "Note", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6580. return 1;
  6581. l1527:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6582. yyprintf((stderr, " fail %s @ %s\n", "Note", G->buf+G->pos));
  6583. return 0;
  6584. }
  6585. YY_RULE(int) yy_DisplayFormula(GREG *G)
  6586. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6587. yyprintf((stderr, "%s\n", "DisplayFormula")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1531; if (!yy_NonindentSpace(G)) { goto l1531; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1531; if (!yymatchString(G, "$$")) goto l1531;
  6588. l1532:;
  6589. { int yypos1533= G->pos, yythunkpos1533= G->thunkpos;
  6590. { int yypos1534= G->pos, yythunkpos1534= G->thunkpos; if (!yymatchChar(G, '$')) goto l1534; goto l1533;
  6591. l1534:; G->pos= yypos1534; G->thunkpos= yythunkpos1534;
  6592. } if (!yymatchDot(G)) goto l1533; goto l1532;
  6593. l1533:; G->pos= yypos1533; G->thunkpos= yythunkpos1533;
  6594. } if (!yymatchString(G, "$$")) goto l1531; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1531;
  6595. l1535:;
  6596. { int yypos1536= G->pos, yythunkpos1536= G->thunkpos; if (!yy_Spacechar(G)) { goto l1536; } goto l1535;
  6597. l1536:; G->pos= yypos1536; G->thunkpos= yythunkpos1536;
  6598. } if (!yy_Newline(G)) { goto l1531; } yyDo(G, yy_1_DisplayFormula, G->begin, G->end);
  6599. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  6600. return 1;
  6601. l1531:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6602. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  6603. return 0;
  6604. }
  6605. YY_RULE(int) yy_FencedCodeBlock(GREG *G)
  6606. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6607. yyprintf((stderr, "%s\n", "FencedCodeBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1537; if (!yy_LocMarker(G)) { goto l1537; } yyDo(G, yySet, -1, 0); if (!yy_FencedCodeBlockStart(G)) { goto l1537; }
  6608. l1538:;
  6609. { int yypos1539= G->pos, yythunkpos1539= G->thunkpos; if (!yy_FencedCodeBlockChunk(G)) { goto l1539; } goto l1538;
  6610. l1539:; G->pos= yypos1539; G->thunkpos= yythunkpos1539;
  6611. } if (!yy_FencedCodeBlockEnd(G)) { goto l1537; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1537; yyDo(G, yy_1_FencedCodeBlock, G->begin, G->end);
  6612. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6613. return 1;
  6614. l1537:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6615. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlock", G->buf+G->pos));
  6616. return 0;
  6617. }
  6618. YY_RULE(int) yy_Verbatim(GREG *G)
  6619. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6620. yyprintf((stderr, "%s\n", "Verbatim")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1540; if (!yy_LocMarker(G)) { goto l1540; } yyDo(G, yySet, -1, 0); if (!yy_VerbatimChunk(G)) { goto l1540; }
  6621. l1541:;
  6622. { int yypos1542= G->pos, yythunkpos1542= G->thunkpos; if (!yy_VerbatimChunk(G)) { goto l1542; } goto l1541;
  6623. l1542:; G->pos= yypos1542; G->thunkpos= yythunkpos1542;
  6624. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1540; yyDo(G, yy_1_Verbatim, G->begin, G->end);
  6625. yyprintf((stderr, " ok %s @ %s\n", "Verbatim", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6626. return 1;
  6627. l1540:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6628. yyprintf((stderr, " fail %s @ %s\n", "Verbatim", G->buf+G->pos));
  6629. return 0;
  6630. }
  6631. YY_RULE(int) yy_BlockQuote(GREG *G)
  6632. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6633. yyprintf((stderr, "%s\n", "BlockQuote")); if (!yy_BlockQuoteRaw(G)) { goto l1543; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_BlockQuote, G->begin, G->end);
  6634. yyprintf((stderr, " ok %s @ %s\n", "BlockQuote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6635. return 1;
  6636. l1543:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6637. yyprintf((stderr, " fail %s @ %s\n", "BlockQuote", G->buf+G->pos));
  6638. return 0;
  6639. }
  6640. YY_RULE(int) yy_BlankLine(GREG *G)
  6641. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6642. yyprintf((stderr, "%s\n", "BlankLine")); if (!yy_Sp(G)) { goto l1544; } if (!yy_Newline(G)) { goto l1544; }
  6643. yyprintf((stderr, " ok %s @ %s\n", "BlankLine", G->buf+G->pos));
  6644. return 1;
  6645. l1544:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6646. yyprintf((stderr, " fail %s @ %s\n", "BlankLine", G->buf+G->pos));
  6647. return 0;
  6648. }
  6649. YY_RULE(int) yy_FrontMatterEndMark(GREG *G)
  6650. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6651. yyprintf((stderr, "%s\n", "FrontMatterEndMark"));
  6652. { int yypos1546= G->pos, yythunkpos1546= G->thunkpos; if (!yymatchString(G, "---")) goto l1547; goto l1546;
  6653. l1547:; G->pos= yypos1546; G->thunkpos= yythunkpos1546; if (!yymatchString(G, "...")) goto l1545;
  6654. }
  6655. l1546:;
  6656. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  6657. return 1;
  6658. l1545:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6659. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  6660. return 0;
  6661. }
  6662. YY_RULE(int) yy_FrontMatterBlock(GREG *G)
  6663. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6664. yyprintf((stderr, "%s\n", "FrontMatterBlock"));
  6665. { int yypos1549= G->pos, yythunkpos1549= G->thunkpos; if (!yy_FrontMatterEndMark(G)) { goto l1549; } goto l1548;
  6666. l1549:; G->pos= yypos1549; G->thunkpos= yythunkpos1549;
  6667. }
  6668. l1550:;
  6669. { int yypos1551= G->pos, yythunkpos1551= G->thunkpos;
  6670. { int yypos1552= G->pos, yythunkpos1552= G->thunkpos; if (!yy_Newline(G)) { goto l1552; } goto l1551;
  6671. l1552:; G->pos= yypos1552; G->thunkpos= yythunkpos1552;
  6672. } if (!yymatchDot(G)) goto l1551; goto l1550;
  6673. l1551:; G->pos= yypos1551; G->thunkpos= yythunkpos1551;
  6674. } if (!yy_Newline(G)) { goto l1548; }
  6675. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  6676. return 1;
  6677. l1548:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6678. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  6679. return 0;
  6680. }
  6681. YY_RULE(int) yy_Newline(GREG *G)
  6682. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6683. yyprintf((stderr, "%s\n", "Newline"));
  6684. { int yypos1554= G->pos, yythunkpos1554= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1555; goto l1554;
  6685. l1555:; G->pos= yypos1554; G->thunkpos= yythunkpos1554; if (!yymatchChar(G, '\r')) goto l1553;
  6686. { int yypos1556= G->pos, yythunkpos1556= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1556; goto l1557;
  6687. l1556:; G->pos= yypos1556; G->thunkpos= yythunkpos1556;
  6688. }
  6689. l1557:;
  6690. }
  6691. l1554:;
  6692. yyprintf((stderr, " ok %s @ %s\n", "Newline", G->buf+G->pos));
  6693. return 1;
  6694. l1553:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6695. yyprintf((stderr, " fail %s @ %s\n", "Newline", G->buf+G->pos));
  6696. return 0;
  6697. }
  6698. YY_RULE(int) yy_LocMarker(GREG *G)
  6699. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6700. yyprintf((stderr, "%s\n", "LocMarker"));
  6701. { int yypos1559= G->pos, yythunkpos1559= G->thunkpos; if (!yymatchDot(G)) goto l1558; G->pos= yypos1559; G->thunkpos= yythunkpos1559;
  6702. } yyDo(G, yy_1_LocMarker, G->begin, G->end);
  6703. yyprintf((stderr, " ok %s @ %s\n", "LocMarker", G->buf+G->pos));
  6704. return 1;
  6705. l1558:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6706. yyprintf((stderr, " fail %s @ %s\n", "LocMarker", G->buf+G->pos));
  6707. return 0;
  6708. }
  6709. YY_RULE(int) yy_Block(GREG *G)
  6710. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6711. yyprintf((stderr, "%s\n", "Block"));
  6712. l1561:;
  6713. { int yypos1562= G->pos, yythunkpos1562= G->thunkpos; if (!yy_BlankLine(G)) { goto l1562; } goto l1561;
  6714. l1562:; G->pos= yypos1562; G->thunkpos= yythunkpos1562;
  6715. }
  6716. { int yypos1563= G->pos, yythunkpos1563= G->thunkpos; if (!yy_BlockQuote(G)) { goto l1564; } goto l1563;
  6717. l1564:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Verbatim(G)) { goto l1565; } goto l1563;
  6718. l1565:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_FencedCodeBlock(G)) { goto l1566; } goto l1563;
  6719. l1566:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_DisplayFormula(G)) { goto l1567; } goto l1563;
  6720. l1567:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Note(G)) { goto l1568; } goto l1563;
  6721. l1568:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Reference(G)) { goto l1569; } goto l1563;
  6722. l1569:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_HorizontalRule(G)) { goto l1570; } goto l1563;
  6723. l1570:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Heading(G)) { goto l1571; } goto l1563;
  6724. l1571:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_OrderedList(G)) { goto l1572; } goto l1563;
  6725. l1572:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_BulletList(G)) { goto l1573; } goto l1563;
  6726. l1573:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_HtmlBlock(G)) { goto l1574; } goto l1563;
  6727. l1574:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_StyleBlock(G)) { goto l1575; } goto l1563;
  6728. l1575:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Para(G)) { goto l1576; } goto l1563;
  6729. l1576:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Plain(G)) { goto l1560; }
  6730. }
  6731. l1563:;
  6732. yyprintf((stderr, " ok %s @ %s\n", "Block", G->buf+G->pos));
  6733. return 1;
  6734. l1560:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6735. yyprintf((stderr, " fail %s @ %s\n", "Block", G->buf+G->pos));
  6736. return 0;
  6737. }
  6738. YY_RULE(int) yy_FrontMatter(GREG *G)
  6739. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6740. yyprintf((stderr, "%s\n", "FrontMatter")); if (!yy_LocMarker(G)) { goto l1577; } yyDo(G, yySet, -1, 0);
  6741. { int yypos1578= G->pos, yythunkpos1578= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_FRONTMATTER) )) goto l1578; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1578; if (!yymatchString(G, "---")) goto l1578; if (!yy_Newline(G)) { goto l1578; }
  6742. l1580:;
  6743. { int yypos1581= G->pos, yythunkpos1581= G->thunkpos; if (!yy_FrontMatterBlock(G)) { goto l1581; } goto l1580;
  6744. l1581:; G->pos= yypos1581; G->thunkpos= yythunkpos1581;
  6745. } if (!yy_FrontMatterEndMark(G)) { goto l1578; } if (!yy_Newline(G)) { goto l1578; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1578; yyDo(G, yy_1_FrontMatter, G->begin, G->end); goto l1579;
  6746. l1578:; G->pos= yypos1578; G->thunkpos= yythunkpos1578;
  6747. }
  6748. l1579:;
  6749. yyprintf((stderr, " ok %s @ %s\n", "FrontMatter", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6750. return 1;
  6751. l1577:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6752. yyprintf((stderr, " fail %s @ %s\n", "FrontMatter", G->buf+G->pos));
  6753. return 0;
  6754. }
  6755. YY_RULE(int) yy_Doc(GREG *G)
  6756. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6757. yyprintf((stderr, "%s\n", "Doc")); if (!yy_FrontMatter(G)) { goto l1582; }
  6758. l1583:;
  6759. { int yypos1584= G->pos, yythunkpos1584= G->thunkpos; if (!yy_Block(G)) { goto l1584; } goto l1583;
  6760. l1584:; G->pos= yypos1584; G->thunkpos= yythunkpos1584;
  6761. }
  6762. yyprintf((stderr, " ok %s @ %s\n", "Doc", G->buf+G->pos));
  6763. return 1;
  6764. l1582:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6765. yyprintf((stderr, " fail %s @ %s\n", "Doc", G->buf+G->pos));
  6766. return 0;
  6767. }
  6768. #ifndef YY_PART
  6769. typedef int (*yyrule)(GREG *G);
  6770. YY_PARSE(int) YY_NAME(parse_from)(GREG *G, yyrule yystart)
  6771. {
  6772. int yyok;
  6773. if (!G->buflen)
  6774. {
  6775. G->buflen= YY_BUFFER_START_SIZE;
  6776. G->buf= (char *)YY_ALLOC(G->buflen, G->data);
  6777. G->textlen= YY_BUFFER_START_SIZE;
  6778. G->text= (char *)YY_ALLOC(G->textlen, G->data);
  6779. G->thunkslen= YY_STACK_SIZE;
  6780. G->thunks= (yythunk *)YY_ALLOC(sizeof(yythunk) * G->thunkslen, G->data);
  6781. G->valslen= YY_STACK_SIZE;
  6782. G->vals= (YYSTYPE*)YY_ALLOC(sizeof(YYSTYPE) * G->valslen, G->data);
  6783. G->begin= G->end= G->pos= G->limit= G->thunkpos= 0;
  6784. }
  6785. G->pos = 0;
  6786. G->begin= G->end= G->pos;
  6787. G->thunkpos= 0;
  6788. G->val= G->vals;
  6789. yyok= yystart(G);
  6790. if (yyok) yyDone(G);
  6791. yyCommit(G);
  6792. return yyok;
  6793. (void)yyrefill(NULL);
  6794. (void)yymatchDot(NULL);
  6795. (void)yymatchChar(NULL, 0);
  6796. (void)yymatchString(NULL, NULL);
  6797. (void)yymatchClass(NULL, NULL);
  6798. (void)yyDo(NULL, NULL, 0, 0);
  6799. (void)yyText(NULL, 0, 0);
  6800. (void)yyDone(NULL);
  6801. (void)yyCommit(NULL);
  6802. (void)yyAccept(NULL, 0);
  6803. (void)yyPush(NULL, NULL, 0, NULL, NULL);
  6804. (void)yyPop(NULL, NULL, 0, NULL, NULL);
  6805. (void)yySet(NULL, NULL, 0, NULL, NULL);
  6806. }
  6807. YY_PARSE(int) YY_NAME(parse)(GREG *G)
  6808. {
  6809. return YY_NAME(parse_from)(G, yy_Doc);
  6810. }
  6811. YY_PARSE(GREG *) YY_NAME(parse_new)(YY_XTYPE data)
  6812. {
  6813. GREG *G = (GREG *)YY_CALLOC(1, sizeof(GREG), G->data);
  6814. G->data = data;
  6815. return G;
  6816. }
  6817. YY_PARSE(void) YY_NAME(parse_free)(GREG *G)
  6818. {
  6819. YY_FREE(G->buf);
  6820. YY_FREE(G->text);
  6821. YY_FREE(G->thunks);
  6822. YY_FREE(G->vals);
  6823. YY_FREE(G);
  6824. }
  6825. #endif
  6826. /* PEG Markdown Highlight
  6827. * Copyright 2011-2016 Ali Rantakari -- http://hasseg.org
  6828. * Licensed under the GPL2+ and MIT licenses (see LICENSE for more info).
  6829. *
  6830. * pmh_parser_foot.c
  6831. *
  6832. * Code to be appended to the end of the parser code generated from the
  6833. * PEG grammar.
  6834. */
  6835. static void _parse(parser_data *p_data, yyrule start_rule)
  6836. {
  6837. GREG *g = YY_NAME(parse_new)(p_data);
  6838. if (start_rule == NULL)
  6839. YY_NAME(parse)(g);
  6840. else
  6841. YY_NAME(parse_from)(g, start_rule);
  6842. YY_NAME(parse_free)(g);
  6843. pmh_PRINTF("\n\n");
  6844. }
  6845. static void parse_markdown(parser_data *p_data)
  6846. {
  6847. pmh_PRINTF("\nPARSING DOCUMENT: ");
  6848. _parse(p_data, NULL);
  6849. }
  6850. static void parse_references(parser_data *p_data)
  6851. {
  6852. pmh_PRINTF("\nPARSING REFERENCES: ");
  6853. p_data->parsing_only_references = true;
  6854. _parse(p_data, yy_References);
  6855. p_data->parsing_only_references = false;
  6856. p_data->references = p_data->head_elems[pmh_REFERENCE];
  6857. p_data->head_elems[pmh_REFERENCE] = NULL;
  6858. }