pmh_parser.c 369 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498
  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 268
  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. elem_type_names[pmh_TABLE] = "TABLE";
  172. elem_type_names[pmh_TABLEHEADER] = "TABLEHEADER";
  173. elem_type_names[pmh_TABLEBORDER] = "TABLEBORDER";
  174. }
  175. return elem_type_names;
  176. }
  177. pmh_element_type pmh_element_type_from_name(char *name)
  178. {
  179. char **elem_type_names = get_element_type_names();
  180. int i;
  181. for (i = 0; i < pmh_NUM_LANG_TYPES; i++)
  182. {
  183. char *i_name = elem_type_names[i];
  184. if (i_name == NULL)
  185. continue;
  186. if (strcmp(i_name, name) == 0)
  187. return i;
  188. }
  189. return pmh_NO_TYPE;
  190. }
  191. char *pmh_element_name_from_type(pmh_element_type type)
  192. {
  193. char **elem_type_names = get_element_type_names();
  194. char* ret = elem_type_names[type];
  195. if (ret == NULL)
  196. return "unknown type";
  197. return ret;
  198. }
  199. /*
  200. Remove pmh_RAW elements with zero length; return pointer
  201. to new head.
  202. */
  203. static pmh_realelement *remove_zero_length_raw_spans(pmh_realelement *elem)
  204. {
  205. pmh_realelement *head = elem;
  206. pmh_realelement *parent = NULL;
  207. pmh_realelement *c = head;
  208. while (c != NULL)
  209. {
  210. if (c->type == pmh_RAW && c->pos >= c->end)
  211. {
  212. if (parent != NULL)
  213. parent->next = c->next;
  214. else
  215. head = c->next;
  216. parent = c;
  217. c = c->next;
  218. continue;
  219. }
  220. parent = c;
  221. c = c->next;
  222. }
  223. return head;
  224. }
  225. #if pmh_DEBUG_OUTPUT
  226. /*
  227. Print null-terminated string s.t. some characters are
  228. represented by their corresponding espace sequences
  229. */
  230. static void print_str_literal_escapes(char *str)
  231. {
  232. char *c = str;
  233. pmh_PRINTF("'");
  234. while (*c != '\0')
  235. {
  236. if (*c == '\n') pmh_PRINTF("\\n");
  237. else if (*c == '\t') pmh_PRINTF("\\t");
  238. else putchar(*c);
  239. c++;
  240. }
  241. pmh_PRINTF("'");
  242. }
  243. #endif
  244. #if pmh_DEBUG_OUTPUT
  245. /*
  246. Print elements in a linked list of
  247. pmh_RAW, pmh_SEPARATOR, pmh_EXTRA_TEXT elements
  248. */
  249. static void print_raw_spans_inline(pmh_realelement *elem)
  250. {
  251. pmh_realelement *cur = elem;
  252. while (cur != NULL)
  253. {
  254. if (cur->type == pmh_SEPARATOR)
  255. pmh_PRINTF("<pmh_SEP %ld> ", cur->pos);
  256. else if (cur->type == pmh_EXTRA_TEXT) {
  257. pmh_PRINTF("{pmh_ETEXT ");
  258. print_str_literal_escapes(cur->text);
  259. pmh_PRINTF("}");
  260. }
  261. else
  262. pmh_PRINTF("(%ld-%ld) ", cur->pos, cur->end);
  263. cur = cur->next;
  264. }
  265. }
  266. #endif
  267. /*
  268. Perform postprocessing parsing runs for pmh_RAW_LIST elements in `elem`,
  269. iteratively until no such elements exist.
  270. */
  271. static void process_raw_blocks(parser_data *p_data)
  272. {
  273. pmh_PRINTF("--------process_raw_blocks---------\n");
  274. while (p_data->head_elems[pmh_RAW_LIST] != NULL)
  275. {
  276. pmh_PRINTF("new iteration.\n");
  277. pmh_realelement *cursor = p_data->head_elems[pmh_RAW_LIST];
  278. p_data->head_elems[pmh_RAW_LIST] = NULL;
  279. while (cursor != NULL)
  280. {
  281. pmh_realelement *span_list = (pmh_realelement*)cursor->children;
  282. span_list = remove_zero_length_raw_spans(span_list);
  283. #if pmh_DEBUG_OUTPUT
  284. pmh_PRINTF(" process: ");
  285. print_raw_spans_inline(span_list);
  286. pmh_PRINTF("\n");
  287. #endif
  288. while (span_list != NULL)
  289. {
  290. pmh_PRINTF("next: span_list: %ld-%ld\n",
  291. span_list->pos, span_list->end);
  292. // Skip separators in the beginning, as well as
  293. // separators after another separator:
  294. if (span_list->type == pmh_SEPARATOR) {
  295. span_list = span_list->next;
  296. continue;
  297. }
  298. // Store list of spans until next separator in subspan_list:
  299. pmh_realelement *subspan_list = span_list;
  300. pmh_realelement *previous = NULL;
  301. while (span_list != NULL && span_list->type != pmh_SEPARATOR) {
  302. previous = span_list;
  303. span_list = span_list->next;
  304. }
  305. if (span_list != NULL && span_list->type == pmh_SEPARATOR) {
  306. span_list = span_list->next;
  307. previous->next = NULL;
  308. }
  309. #if pmh_DEBUG_OUTPUT
  310. pmh_PRINTF(" subspan process: ");
  311. print_raw_spans_inline(subspan_list);
  312. pmh_PRINTF("\n");
  313. #endif
  314. // Process subspan_list:
  315. parser_data *raw_p_data = mk_parser_data(
  316. p_data->original_input,
  317. p_data->strip_positions,
  318. p_data->strip_positions_len,
  319. p_data->charbuf,
  320. subspan_list,
  321. subspan_list->pos,
  322. p_data->extensions,
  323. p_data->head_elems,
  324. p_data->references
  325. );
  326. parse_markdown(raw_p_data);
  327. free(raw_p_data);
  328. pmh_PRINTF("parse over\n");
  329. }
  330. cursor = cursor->next;
  331. }
  332. }
  333. }
  334. #if pmh_DEBUG_OUTPUT
  335. static void print_raw_blocks(char *text, pmh_realelement *elem[])
  336. {
  337. pmh_PRINTF("--------print_raw_blocks---------\n");
  338. pmh_PRINTF("block:\n");
  339. pmh_realelement *cursor = elem[pmh_RAW_LIST];
  340. while (cursor != NULL)
  341. {
  342. print_raw_spans_inline(cursor->children);
  343. cursor = cursor->next;
  344. }
  345. }
  346. #endif
  347. /* Free all elements created while parsing */
  348. void pmh_free_elements(pmh_element **elems)
  349. {
  350. pmh_realelement *cursor = (pmh_realelement*)elems[pmh_ALL];
  351. while (cursor != NULL) {
  352. pmh_realelement *tofree = cursor;
  353. cursor = cursor->all_elems_next;
  354. if (tofree->text != NULL)
  355. free(tofree->text);
  356. if (tofree->label != NULL)
  357. free(tofree->label);
  358. if (tofree->address != NULL)
  359. free(tofree->address);
  360. free(tofree);
  361. }
  362. elems[pmh_ALL] = NULL;
  363. free(elems);
  364. }
  365. #define IS_CONTINUATION_BYTE(x) ((x & 0xC0) == 0x80)
  366. #define HAS_UTF8_BOM(x) ( ((*x & 0xFF) == 0xEF)\
  367. && ((*(x+1) & 0xFF) == 0xBB)\
  368. && ((*(x+2) & 0xFF) == 0xBF) )
  369. #define ADD_STRIP_POS(x) \
  370. /* reallocate more space for the array, if needed: */ \
  371. if (strip_positions_size <= strip_positions_pos) { \
  372. size_t new_size = strip_positions_size * 2; \
  373. unsigned long *new_arr = (unsigned long *) \
  374. calloc(new_size, \
  375. sizeof(unsigned long)); \
  376. memcpy(new_arr, strip_positions, \
  377. (sizeof(unsigned long) * strip_positions_size)); \
  378. strip_positions_size = new_size; \
  379. free(strip_positions); \
  380. strip_positions = new_arr; \
  381. } \
  382. strip_positions[strip_positions_pos] = x; \
  383. strip_positions_pos++;
  384. /*
  385. Copy `str` to `out`, while doing the following:
  386. - remove UTF-8 continuation bytes
  387. - remove possible UTF-8 BOM (byte order mark)
  388. - append two newlines to the end (like peg-markdown does)
  389. - keep track of which bytes we have stripped (in strip_positions)
  390. */
  391. static int strcpy_preformat(char *str, char **out,
  392. unsigned long **out_strip_positions,
  393. size_t *out_strip_positions_len)
  394. {
  395. size_t strip_positions_size = 1024;
  396. size_t strip_positions_pos = 0;
  397. unsigned long *strip_positions = (unsigned long *)
  398. calloc(strip_positions_size,
  399. sizeof(unsigned long));
  400. // +2 in the following is due to the "\n\n" suffix:
  401. char *new_str = (char *)malloc(sizeof(char) * strlen(str) + 1 + 2);
  402. char *c = str;
  403. int i = 0;
  404. if (HAS_UTF8_BOM(c)) {
  405. c += 3;
  406. ADD_STRIP_POS(0);
  407. ADD_STRIP_POS(1);
  408. ADD_STRIP_POS(2);
  409. }
  410. while (*c != '\0')
  411. {
  412. if (!IS_CONTINUATION_BYTE(*c)) {
  413. *(new_str+i) = *c, i++;
  414. } else {
  415. ADD_STRIP_POS((int)(c-str));
  416. }
  417. c++;
  418. }
  419. *(new_str+(i++)) = '\n';
  420. *(new_str+(i++)) = '\n';
  421. *(new_str+i) = '\0';
  422. *out = new_str;
  423. *out_strip_positions = strip_positions;
  424. *out_strip_positions_len = strip_positions_pos;
  425. return i;
  426. }
  427. void pmh_markdown_to_elements(char *text, int extensions,
  428. pmh_element **out_result[])
  429. {
  430. char *text_copy = NULL;
  431. unsigned long *strip_positions = NULL;
  432. size_t strip_positions_len = 0;
  433. int text_copy_len = strcpy_preformat(text, &text_copy, &strip_positions,
  434. &strip_positions_len);
  435. pmh_realelement *parsing_elem = (pmh_realelement *)
  436. malloc(sizeof(pmh_realelement));
  437. parsing_elem->type = pmh_RAW;
  438. parsing_elem->pos = 0;
  439. parsing_elem->end = text_copy_len;
  440. parsing_elem->next = NULL;
  441. parser_data *p_data = mk_parser_data(
  442. text,
  443. strip_positions,
  444. strip_positions_len,
  445. text_copy,
  446. parsing_elem,
  447. 0,
  448. extensions,
  449. NULL,
  450. NULL
  451. );
  452. pmh_realelement **result = p_data->head_elems;
  453. if (*text_copy != '\0')
  454. {
  455. // Get reference definitions into p_data->references
  456. parse_references(p_data);
  457. // Reset parser state to beginning of input
  458. p_data->offset = 0;
  459. p_data->current_elem = p_data->elem_head;
  460. // Parse whole document
  461. parse_markdown(p_data);
  462. #if pmh_DEBUG_OUTPUT
  463. print_raw_blocks(text_copy, result);
  464. #endif
  465. process_raw_blocks(p_data);
  466. }
  467. free(strip_positions);
  468. free(p_data);
  469. free(parsing_elem);
  470. free(text_copy);
  471. *out_result = (pmh_element**)result;
  472. }
  473. /*
  474. Mergesort linked list of elements (using comparison function `compare`),
  475. return new head. (Adapted slightly from Simon Tatham's algorithm.)
  476. */
  477. static pmh_element *ll_mergesort(pmh_element *list,
  478. int (*compare)(const pmh_element*,
  479. const pmh_element*))
  480. {
  481. if (!list)
  482. return NULL;
  483. pmh_element *out_head = list;
  484. /* Merge widths of doubling size until done */
  485. int merge_width = 1;
  486. while (1)
  487. {
  488. pmh_element *l, *r; /* left & right segment pointers */
  489. pmh_element *tail = NULL; /* tail of sorted section */
  490. l = out_head;
  491. out_head = NULL;
  492. int merge_count = 0;
  493. while (l)
  494. {
  495. merge_count++;
  496. /* Position r, determine lsize & rsize */
  497. r = l;
  498. int lsize = 0;
  499. int i;
  500. for (i = 0; i < merge_width; i++) {
  501. lsize++;
  502. r = r->next;
  503. if (!r)
  504. break;
  505. }
  506. int rsize = merge_width;
  507. /* Merge l & r */
  508. while (lsize > 0 || (rsize > 0 && r))
  509. {
  510. bool get_from_left = false;
  511. if (lsize == 0) get_from_left = false;
  512. else if (rsize == 0 || !r) get_from_left = true;
  513. else if (compare(l,r) <= 0) get_from_left = true;
  514. pmh_element *e;
  515. if (get_from_left) {
  516. e = l; l = l->next; lsize--;
  517. } else {
  518. e = r; r = r->next; rsize--;
  519. }
  520. /* add the next pmh_element to the merged list */
  521. if (tail)
  522. tail->next = e;
  523. else
  524. out_head = e;
  525. tail = e;
  526. }
  527. l = r;
  528. }
  529. tail->next = NULL;
  530. if (merge_count <= 1)
  531. return out_head;
  532. merge_width *= 2;
  533. }
  534. }
  535. static int elem_compare_by_pos(const pmh_element *a, const pmh_element *b)
  536. {
  537. return a->pos - b->pos;
  538. }
  539. void pmh_sort_elements_by_pos(pmh_element *element_lists[])
  540. {
  541. int i;
  542. for (i = 0; i < pmh_NUM_LANG_TYPES; i++)
  543. element_lists[i] = ll_mergesort(element_lists[i], &elem_compare_by_pos);
  544. }
  545. /* return true if extension is selected */
  546. static bool extension(parser_data *p_data, int ext)
  547. {
  548. return ((p_data->extensions & ext) != 0);
  549. }
  550. /* return reference pmh_realelement for a given label */
  551. static pmh_realelement *get_reference(parser_data *p_data, char *label)
  552. {
  553. if (!label)
  554. return NULL;
  555. pmh_realelement *cursor = p_data->references;
  556. while (cursor != NULL)
  557. {
  558. if (cursor->label && strcmp(label, cursor->label) == 0)
  559. return cursor;
  560. cursor = cursor->next;
  561. }
  562. return NULL;
  563. }
  564. /* cons an element/list onto a list, returning pointer to new head */
  565. static pmh_realelement *cons(pmh_realelement *elem, pmh_realelement *list)
  566. {
  567. assert(elem != NULL);
  568. pmh_realelement *cur = elem;
  569. while (cur->next != NULL) {
  570. cur = cur->next;
  571. }
  572. cur->next = list;
  573. return elem;
  574. }
  575. /* reverse a list, returning pointer to new list */
  576. static pmh_realelement *reverse(pmh_realelement *list)
  577. {
  578. pmh_realelement *new_head = NULL;
  579. pmh_realelement *next = NULL;
  580. while (list != NULL) {
  581. next = list->next;
  582. list->next = new_head;
  583. new_head = list;
  584. list = next;
  585. }
  586. return new_head;
  587. }
  588. /* construct pmh_realelement */
  589. static pmh_realelement *mk_element(parser_data *p_data, pmh_element_type type,
  590. long pos, long end)
  591. {
  592. pmh_realelement *result = (pmh_realelement *)malloc(sizeof(pmh_realelement));
  593. memset(result, 0, sizeof(*result));
  594. result->type = type;
  595. result->pos = pos;
  596. result->end = end;
  597. pmh_realelement *old_all_elements_head = p_data->head_elems[pmh_ALL];
  598. p_data->head_elems[pmh_ALL] = result;
  599. result->all_elems_next = old_all_elements_head;
  600. //pmh_PRINTF(" mk_element: %s [%ld - %ld]\n", pmh_element_name_from_type(type), pos, end);
  601. return result;
  602. }
  603. static pmh_realelement *copy_element(parser_data *p_data, pmh_realelement *elem)
  604. {
  605. pmh_realelement *result = mk_element(p_data, elem->type, elem->pos, elem->end);
  606. result->label = strdup_or_null(elem->label);
  607. result->text = strdup_or_null(elem->text);
  608. result->address = strdup_or_null(elem->address);
  609. return result;
  610. }
  611. /* construct pmh_EXTRA_TEXT pmh_realelement */
  612. static pmh_realelement *mk_etext(parser_data *p_data, char *string)
  613. {
  614. pmh_realelement *result;
  615. assert(string != NULL);
  616. result = mk_element(p_data, pmh_EXTRA_TEXT, 0,0);
  617. result->text = strdup_or_null(string);
  618. return result;
  619. }
  620. /*
  621. Given an element where the offsets {pos, end} represent
  622. locations in the *parsed text* (defined by the linked list of pmh_RAW and
  623. pmh_EXTRA_TEXT elements in p_data->current_elem), fix these offsets to represent
  624. corresponding offsets in the parse buffer (p_data->charbuf). Also split
  625. the given pmh_realelement into multiple parts if its offsets span multiple
  626. p_data->current_elem elements. Return the (list of) elements with real offsets.
  627. */
  628. static pmh_realelement *fix_offsets(parser_data *p_data, pmh_realelement *elem)
  629. {
  630. if (elem->type == pmh_EXTRA_TEXT)
  631. return mk_etext(p_data, elem->text);
  632. pmh_realelement *new_head = copy_element(p_data, elem);
  633. pmh_realelement *tail = new_head;
  634. pmh_realelement *prev = NULL;
  635. bool found_start = false;
  636. bool found_end = false;
  637. bool tail_needs_pos = false;
  638. unsigned long previous_end = 0;
  639. unsigned long c = 0;
  640. pmh_realelement *cursor = p_data->elem_head;
  641. while (cursor != NULL)
  642. {
  643. int thislen = (cursor->type == pmh_EXTRA_TEXT)
  644. ? strlen(cursor->text)
  645. : cursor->end - cursor->pos;
  646. if (tail_needs_pos && cursor->type != pmh_EXTRA_TEXT) {
  647. tail->pos = cursor->pos;
  648. tail_needs_pos = false;
  649. }
  650. unsigned int this_pos = cursor->pos;
  651. if (!found_start && (c <= elem->pos && elem->pos <= c+thislen)) {
  652. tail->pos = (cursor->type == pmh_EXTRA_TEXT)
  653. ? previous_end
  654. : cursor->pos + (elem->pos - c);
  655. this_pos = tail->pos;
  656. found_start = true;
  657. }
  658. if (!found_end && (c <= elem->end && elem->end <= c+thislen)) {
  659. tail->end = (cursor->type == pmh_EXTRA_TEXT)
  660. ? previous_end
  661. : cursor->pos + (elem->end - c);
  662. found_end = true;
  663. }
  664. if (found_start && found_end)
  665. break;
  666. if (cursor->type != pmh_EXTRA_TEXT)
  667. previous_end = cursor->end;
  668. if (found_start) {
  669. pmh_realelement *new_elem = copy_element(p_data, tail);
  670. new_elem->pos = this_pos;
  671. new_elem->end = cursor->end;
  672. new_elem->next = tail;
  673. if (prev != NULL)
  674. prev->next = new_elem;
  675. if (new_head == tail)
  676. new_head = new_elem;
  677. prev = new_elem;
  678. tail_needs_pos = true;
  679. }
  680. c += thislen;
  681. cursor = cursor->next;
  682. }
  683. return new_head;
  684. }
  685. /* Add an element to p_data->head_elems. */
  686. static void add(parser_data *p_data, pmh_realelement *elem)
  687. {
  688. if (elem->type != pmh_RAW_LIST)
  689. {
  690. pmh_PRINTF(" add: %s [%ld - %ld]\n",
  691. pmh_element_name_from_type(elem->type), elem->pos, elem->end);
  692. elem = fix_offsets(p_data, elem);
  693. pmh_PRINTF(" > %s [%ld - %ld]\n",
  694. pmh_element_name_from_type(elem->type), elem->pos, elem->end);
  695. }
  696. else
  697. {
  698. pmh_PRINTF(" add: pmh_RAW_LIST ");
  699. pmh_realelement *cursor = elem->children;
  700. pmh_realelement *previous = NULL;
  701. while (cursor != NULL)
  702. {
  703. pmh_realelement *next = cursor->next;
  704. pmh_PRINTF("(%ld-%ld)>", cursor->pos, cursor->end);
  705. pmh_realelement *new_cursor = fix_offsets(p_data, cursor);
  706. if (previous != NULL)
  707. previous->next = new_cursor;
  708. else
  709. elem->children = new_cursor;
  710. pmh_PRINTF("(%ld-%ld)", new_cursor->pos, new_cursor->end);
  711. while (new_cursor->next != NULL) {
  712. new_cursor = new_cursor->next;
  713. pmh_PRINTF("(%ld-%ld)", new_cursor->pos, new_cursor->end);
  714. }
  715. pmh_PRINTF(" ");
  716. if (next != NULL)
  717. new_cursor->next = next;
  718. previous = new_cursor;
  719. cursor = next;
  720. }
  721. pmh_PRINTF("\n");
  722. }
  723. if (p_data->head_elems[elem->type] == NULL)
  724. p_data->head_elems[elem->type] = elem;
  725. else
  726. {
  727. pmh_realelement *last = elem;
  728. while (last->next != NULL)
  729. last = last->next;
  730. last->next = p_data->head_elems[elem->type];
  731. p_data->head_elems[elem->type] = elem;
  732. }
  733. }
  734. // Given a range in the list of spans we use for parsing (pos, end), return
  735. // a copy of the corresponding section in the original input, with all of
  736. // the UTF-8 bytes intact:
  737. static char *copy_input_span(parser_data *p_data,
  738. unsigned long pos, unsigned long end)
  739. {
  740. if (end <= pos)
  741. return NULL;
  742. char *ret = NULL;
  743. // Adjust (pos,end) to match actual indexes in charbuf:
  744. pmh_realelement *dummy = mk_element(p_data, pmh_NO_TYPE, pos, end);
  745. pmh_realelement *fixed_dummies = fix_offsets(p_data, dummy);
  746. pmh_realelement *cursor = fixed_dummies;
  747. while (cursor != NULL)
  748. {
  749. if (cursor->end <= cursor->pos)
  750. {
  751. cursor = cursor->next;
  752. continue;
  753. }
  754. // Adjust cursor's span to take bytes stripped from the original
  755. // input into account (i.e. match the corresponding span in
  756. // p_data->original_input):
  757. unsigned long adjusted_pos = cursor->pos;
  758. unsigned long adjusted_end = cursor->end;
  759. size_t i;
  760. for (i = 0; i < p_data->strip_positions_len; i++)
  761. {
  762. unsigned long strip_position = p_data->strip_positions[i];
  763. if (strip_position <= adjusted_pos)
  764. adjusted_pos++;
  765. if (strip_position <= adjusted_end)
  766. adjusted_end++;
  767. else
  768. break;
  769. }
  770. // Copy span from original input:
  771. size_t adjusted_len = adjusted_end - adjusted_pos;
  772. char *str = (char *)malloc(sizeof(char)*adjusted_len + 1);
  773. *str = '\0';
  774. strncat(str, (p_data->original_input + adjusted_pos), adjusted_len);
  775. if (ret == NULL)
  776. ret = str;
  777. else
  778. {
  779. // append str to ret:
  780. char *new_ret = (char *)malloc(sizeof(char)
  781. *(strlen(str) + strlen(ret)) + 1);
  782. *new_ret = '\0';
  783. strcat(new_ret, ret);
  784. strcat(new_ret, str);
  785. free(ret);
  786. free(str);
  787. ret = new_ret;
  788. }
  789. cursor = cursor->next;
  790. }
  791. return ret;
  792. }
  793. # define YYSTYPE pmh_realelement *
  794. #ifdef __DEBUG__
  795. # define YY_DEBUG 1
  796. #endif
  797. #define YY_INPUT(buf, result, max_size)\
  798. yy_input_func(buf, &result, max_size, (parser_data *)G->data)
  799. static void yy_input_func(char *buf, int *result, int max_size,
  800. parser_data *p_data)
  801. {
  802. if (p_data->current_elem == NULL)
  803. {
  804. (*result) = 0;
  805. return;
  806. }
  807. if (p_data->current_elem->type == pmh_EXTRA_TEXT)
  808. {
  809. int yyc;
  810. bool moreToRead = (p_data->current_elem->text
  811. && *(p_data->current_elem->text
  812. + p_data->current_elem->text_offset) != '\0');
  813. if (moreToRead)
  814. {
  815. yyc = *(p_data->current_elem->text + p_data->current_elem->text_offset++);
  816. pmh_PRINTF("\e[47;30m"); pmh_PUTCHAR(yyc); pmh_PRINTF("\e[0m");
  817. pmh_IF(yyc == '\n') pmh_PRINTF("\e[47m \e[0m");
  818. }
  819. else
  820. {
  821. yyc = EOF;
  822. p_data->current_elem = p_data->current_elem->next;
  823. pmh_PRINTF("\e[41m \e[0m");
  824. if (p_data->current_elem != NULL)
  825. p_data->offset = p_data->current_elem->pos;
  826. }
  827. (*result) = (EOF == yyc) ? 0 : (*(buf) = yyc, 1);
  828. return;
  829. }
  830. *(buf) = *(p_data->charbuf + p_data->offset);
  831. (*result) = (*buf != '\0');
  832. p_data->offset++;
  833. pmh_PRINTF("\e[43;30m"); pmh_PUTCHAR(*buf); pmh_PRINTF("\e[0m");
  834. pmh_IF(*buf == '\n') pmh_PRINTF("\e[42m \e[0m");
  835. if (p_data->offset >= p_data->current_elem->end)
  836. {
  837. p_data->current_elem = p_data->current_elem->next;
  838. pmh_PRINTF("\e[41m \e[0m");
  839. if (p_data->current_elem != NULL)
  840. p_data->offset = p_data->current_elem->pos;
  841. }
  842. }
  843. #define elem(x) mk_element((parser_data *)G->data, x, thunk->begin, thunk->end)
  844. #define elem_s(x) mk_element((parser_data *)G->data, x, s->pos, thunk->end)
  845. #define mk_sep mk_element((parser_data *)G->data, pmh_SEPARATOR, 0,0)
  846. #define mk_notype mk_element((parser_data *)G->data, pmh_NO_TYPE, 0,0)
  847. #define etext(x) mk_etext((parser_data *)G->data, x)
  848. #define ADD(x) add((parser_data *)G->data, x)
  849. #define EXT(x) extension((parser_data *)G->data, x)
  850. #define REF_EXISTS(x) reference_exists((parser_data *)G->data, x)
  851. #define GET_REF(x) get_reference((parser_data *)G->data, x)
  852. #define PARSING_REFERENCES ((parser_data *)G->data)->parsing_only_references
  853. #define FREE_LABEL(l) { free(l->label); l->label = NULL; }
  854. #define FREE_ADDRESS(l) { free(l->address); l->address = NULL; }
  855. // This gives us the text matched with < > as it appears in the original input:
  856. #define COPY_YYTEXT_ORIG() copy_input_span((parser_data *)G->data, thunk->begin, thunk->end)
  857. // pos is the postition of next char to parse after matching one $
  858. // Do not allow $, digit, and \ before opening $
  859. bool inline_equation_predict_pre(char *buf, int pos)
  860. {
  861. if (pos < 2) {
  862. return true;
  863. }
  864. unsigned char ch = buf[pos - 2];
  865. return ch != '$' && (ch < '0' || ch > '9') && ch != '\\';
  866. }
  867. // Do not allow \, space before ending $
  868. bool inline_equation_predict_post(char *buf, int pos)
  869. {
  870. unsigned char ch = buf[pos - 2];
  871. return ch != '\\' && ch != ' ' && ch != '\t';
  872. }
  873. #define IEP_PRE inline_equation_predict_pre(G->buf, G->pos)
  874. #define IEP_POST inline_equation_predict_post(G->buf, G->pos)
  875. // Do not allow whitespace before ending ~~
  876. bool strike_predict_post(char *buf, int pos)
  877. {
  878. unsigned char ch = buf[pos - 1];
  879. return ch != '\n' && ch != '\r' && ch != ' ' && ch != '\t';
  880. }
  881. #define STRIKE_POST strike_predict_post(G->buf, G->pos)
  882. // Number of display formula raw opening
  883. unsigned char nr_dfr = 0;
  884. bool start_dfr()
  885. {
  886. nr_dfr = 1;
  887. return true;
  888. }
  889. bool inc_dfr()
  890. {
  891. ++nr_dfr;
  892. return true;
  893. }
  894. bool dec_dfr()
  895. {
  896. --nr_dfr;
  897. return true;
  898. }
  899. bool nested_dfr()
  900. {
  901. return nr_dfr > 1;
  902. }
  903. #ifndef YY_ALLOC
  904. #define YY_ALLOC(N, D) malloc(N)
  905. #endif
  906. #ifndef YY_CALLOC
  907. #define YY_CALLOC(N, S, D) calloc(N, S)
  908. #endif
  909. #ifndef YY_REALLOC
  910. #define YY_REALLOC(B, N, D) realloc(B, N)
  911. #endif
  912. #ifndef YY_FREE
  913. #define YY_FREE free
  914. #endif
  915. #ifndef YY_LOCAL
  916. #define YY_LOCAL(T) static T
  917. #endif
  918. #ifndef YY_ACTION
  919. #define YY_ACTION(T) static T
  920. #endif
  921. #ifndef YY_RULE
  922. #define YY_RULE(T) static T
  923. #endif
  924. #ifndef YY_PARSE
  925. #define YY_PARSE(T) T
  926. #endif
  927. #ifndef YY_NAME
  928. #define YY_NAME(N) yy##N
  929. #endif
  930. #ifndef YY_INPUT
  931. #define YY_INPUT(buf, result, max_size) \
  932. { \
  933. int yyc= getchar(); \
  934. result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \
  935. yyprintf((stderr, "<%c>", yyc)); \
  936. }
  937. #endif
  938. #ifndef YY_BEGIN
  939. #define YY_BEGIN ( G->begin= G->pos, 1)
  940. #endif
  941. #ifndef YY_END
  942. #define YY_END ( G->end= G->pos, 1)
  943. #endif
  944. #ifdef YY_DEBUG
  945. # define yyprintf(args) fprintf args
  946. #else
  947. # define yyprintf(args)
  948. #endif
  949. #ifndef YYSTYPE
  950. #define YYSTYPE int
  951. #endif
  952. #ifndef YY_XTYPE
  953. #define YY_XTYPE void *
  954. #endif
  955. #ifndef YY_XVAR
  956. #define YY_XVAR yyxvar
  957. #endif
  958. #ifndef YY_STACK_SIZE
  959. #define YY_STACK_SIZE 128
  960. #endif
  961. #ifndef YY_BUFFER_START_SIZE
  962. #define YY_BUFFER_START_SIZE 1024
  963. #endif
  964. #ifndef YY_PART
  965. #define yydata G->data
  966. #define yy G->ss
  967. struct _yythunk; // forward declaration
  968. typedef void (*yyaction)(struct _GREG *G, char *yytext, int yyleng, struct _yythunk *thunkpos, YY_XTYPE YY_XVAR);
  969. typedef struct _yythunk { int begin, end; yyaction action; struct _yythunk *next; } yythunk;
  970. typedef struct _GREG {
  971. char *buf;
  972. int buflen;
  973. int offset;
  974. int pos;
  975. int limit;
  976. char *text;
  977. int textlen;
  978. int begin;
  979. int end;
  980. yythunk *thunks;
  981. int thunkslen;
  982. int thunkpos;
  983. YYSTYPE ss;
  984. YYSTYPE *val;
  985. YYSTYPE *vals;
  986. int valslen;
  987. YY_XTYPE data;
  988. } GREG;
  989. YY_LOCAL(int) yyrefill(GREG *G)
  990. {
  991. int yyn;
  992. while (G->buflen - G->pos < 512)
  993. {
  994. G->buflen *= 2;
  995. G->buf= (char *)YY_REALLOC(G->buf, G->buflen, G->data);
  996. }
  997. YY_INPUT((G->buf + G->pos), yyn, (G->buflen - G->pos));
  998. if (!yyn) return 0;
  999. G->limit += yyn;
  1000. return 1;
  1001. }
  1002. YY_LOCAL(int) yymatchDot(GREG *G)
  1003. {
  1004. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  1005. ++G->pos;
  1006. return 1;
  1007. }
  1008. YY_LOCAL(int) yymatchChar(GREG *G, int c)
  1009. {
  1010. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  1011. if ((unsigned char)G->buf[G->pos] == c)
  1012. {
  1013. ++G->pos;
  1014. yyprintf((stderr, " ok yymatchChar(%c) @ %s\n", c, G->buf+G->pos));
  1015. return 1;
  1016. }
  1017. yyprintf((stderr, " fail yymatchChar(%c) @ %s\n", c, G->buf+G->pos));
  1018. return 0;
  1019. }
  1020. YY_LOCAL(int) yymatchString(GREG *G, char *s)
  1021. {
  1022. int yysav= G->pos;
  1023. while (*s)
  1024. {
  1025. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  1026. if (G->buf[G->pos] != *s)
  1027. {
  1028. G->pos= yysav;
  1029. return 0;
  1030. }
  1031. ++s;
  1032. ++G->pos;
  1033. }
  1034. return 1;
  1035. }
  1036. YY_LOCAL(int) yymatchClass(GREG *G, unsigned char *bits)
  1037. {
  1038. int c;
  1039. if (G->pos >= G->limit && !yyrefill(G)) return 0;
  1040. c= (unsigned char)G->buf[G->pos];
  1041. if (bits[c >> 3] & (1 << (c & 7)))
  1042. {
  1043. ++G->pos;
  1044. yyprintf((stderr, " ok yymatchClass @ %s\n", G->buf+G->pos));
  1045. return 1;
  1046. }
  1047. yyprintf((stderr, " fail yymatchClass @ %s\n", G->buf+G->pos));
  1048. return 0;
  1049. }
  1050. YY_LOCAL(void) yyDo(GREG *G, yyaction action, int begin, int end)
  1051. {
  1052. while (G->thunkpos >= G->thunkslen)
  1053. {
  1054. G->thunkslen *= 2;
  1055. G->thunks= (yythunk *)YY_REALLOC(G->thunks, sizeof(yythunk) * G->thunkslen, G->data);
  1056. }
  1057. G->thunks[G->thunkpos].begin= begin;
  1058. G->thunks[G->thunkpos].end= end;
  1059. G->thunks[G->thunkpos].action= action;
  1060. ++G->thunkpos;
  1061. }
  1062. YY_LOCAL(int) yyText(GREG *G, int begin, int end)
  1063. {
  1064. int yyleng= end - begin;
  1065. if (yyleng <= 0)
  1066. yyleng= 0;
  1067. else
  1068. {
  1069. while (G->textlen < (yyleng + 1))
  1070. {
  1071. G->textlen *= 2;
  1072. G->text= (char *)YY_REALLOC(G->text, G->textlen, G->data);
  1073. }
  1074. memcpy(G->text, G->buf + begin, yyleng);
  1075. }
  1076. G->text[yyleng]= '\0';
  1077. return yyleng;
  1078. }
  1079. YY_LOCAL(void) yyDone(GREG *G)
  1080. {
  1081. int pos;
  1082. for (pos= 0; pos < G->thunkpos; ++pos)
  1083. {
  1084. yythunk *thunk= &G->thunks[pos];
  1085. int yyleng= thunk->end ? yyText(G, thunk->begin, thunk->end) : thunk->begin;
  1086. yyprintf((stderr, "DO [%d] %p %s\n", pos, thunk->action, G->text));
  1087. thunk->action(G, G->text, yyleng, thunk, G->data);
  1088. }
  1089. G->thunkpos= 0;
  1090. }
  1091. YY_LOCAL(void) yyCommit(GREG *G)
  1092. {
  1093. if ((G->limit -= G->pos))
  1094. {
  1095. memmove(G->buf, G->buf + G->pos, G->limit);
  1096. }
  1097. G->offset += G->pos;
  1098. G->begin -= G->pos;
  1099. G->end -= G->pos;
  1100. G->pos= G->thunkpos= 0;
  1101. }
  1102. YY_LOCAL(int) yyAccept(GREG *G, int tp0)
  1103. {
  1104. if (tp0)
  1105. {
  1106. fprintf(stderr, "accept denied at %d\n", tp0);
  1107. return 0;
  1108. }
  1109. else
  1110. {
  1111. yyDone(G);
  1112. yyCommit(G);
  1113. }
  1114. return 1;
  1115. }
  1116. YY_LOCAL(void) yyPush(GREG *G, char *text, int count, yythunk *thunk, YY_XTYPE YY_XVAR) { G->val += count; }
  1117. YY_LOCAL(void) yyPop(GREG *G, char *text, int count, yythunk *thunk, YY_XTYPE YY_XVAR) { G->val -= count; }
  1118. YY_LOCAL(void) yySet(GREG *G, char *text, int count, yythunk *thunk, YY_XTYPE YY_XVAR) { G->val[count]= G->ss; }
  1119. #endif /* YY_PART */
  1120. #define YYACCEPT yyAccept(G, yythunkpos0)
  1121. YY_RULE(int) yy_RawNoteBlock(GREG *G); /* 268 */
  1122. YY_RULE(int) yy_RawNoteReference(GREG *G); /* 267 */
  1123. YY_RULE(int) yy_AlphanumericAscii(GREG *G); /* 266 */
  1124. YY_RULE(int) yy_Quoted(GREG *G); /* 265 */
  1125. YY_RULE(int) yy_HtmlTag(GREG *G); /* 264 */
  1126. YY_RULE(int) yy_MarkTagClose(GREG *G); /* 263 */
  1127. YY_RULE(int) yy_MarkTagText(GREG *G); /* 262 */
  1128. YY_RULE(int) yy_MarkTagOpen(GREG *G); /* 261 */
  1129. YY_RULE(int) yy_Ticks5(GREG *G); /* 260 */
  1130. YY_RULE(int) yy_Ticks4(GREG *G); /* 259 */
  1131. YY_RULE(int) yy_Ticks3(GREG *G); /* 258 */
  1132. YY_RULE(int) yy_Ticks2(GREG *G); /* 257 */
  1133. YY_RULE(int) yy_Ticks1(GREG *G); /* 256 */
  1134. YY_RULE(int) yy_SkipBlock(GREG *G); /* 255 */
  1135. YY_RULE(int) yy_References(GREG *G); /* 254 */
  1136. YY_RULE(int) yy_EmptyTitle(GREG *G); /* 253 */
  1137. YY_RULE(int) yy_RefTitleParens(GREG *G); /* 252 */
  1138. YY_RULE(int) yy_RefTitleDouble(GREG *G); /* 251 */
  1139. YY_RULE(int) yy_RefTitleSingle(GREG *G); /* 250 */
  1140. YY_RULE(int) yy_LabelInline(GREG *G); /* 249 */
  1141. YY_RULE(int) yy_RefTitle(GREG *G); /* 248 */
  1142. YY_RULE(int) yy_RefSrc(GREG *G); /* 247 */
  1143. YY_RULE(int) yy_AutoLinkEmail(GREG *G); /* 246 */
  1144. YY_RULE(int) yy_AutoLinkUrl(GREG *G); /* 245 */
  1145. YY_RULE(int) yy_ImageSizeHeight(GREG *G); /* 244 */
  1146. YY_RULE(int) yy_ImageSizeWidth(GREG *G); /* 243 */
  1147. YY_RULE(int) yy_ImageSizeComplete(GREG *G); /* 242 */
  1148. YY_RULE(int) yy_TitleDoubleExt(GREG *G); /* 241 */
  1149. YY_RULE(int) yy_TitleSingleExt(GREG *G); /* 240 */
  1150. YY_RULE(int) yy_TitleDouble(GREG *G); /* 239 */
  1151. YY_RULE(int) yy_TitleSingle(GREG *G); /* 238 */
  1152. YY_RULE(int) yy_SourceContents(GREG *G); /* 237 */
  1153. YY_RULE(int) yy_ImageSize(GREG *G); /* 236 */
  1154. YY_RULE(int) yy_TitleExt(GREG *G); /* 235 */
  1155. YY_RULE(int) yy_Title(GREG *G); /* 234 */
  1156. YY_RULE(int) yy_Source(GREG *G); /* 233 */
  1157. YY_RULE(int) yy_Label(GREG *G); /* 232 */
  1158. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G); /* 231 */
  1159. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G); /* 230 */
  1160. YY_RULE(int) yy_AutoLink(GREG *G); /* 229 */
  1161. YY_RULE(int) yy_ReferenceLink(GREG *G); /* 228 */
  1162. YY_RULE(int) yy_ExplicitLinkSize(GREG *G); /* 227 */
  1163. YY_RULE(int) yy_ExplicitLink(GREG *G); /* 226 */
  1164. YY_RULE(int) yy_StrongUl(GREG *G); /* 225 */
  1165. YY_RULE(int) yy_StrongStar(GREG *G); /* 224 */
  1166. YY_RULE(int) yy_Whitespace(GREG *G); /* 223 */
  1167. YY_RULE(int) yy_EmphUl(GREG *G); /* 222 */
  1168. YY_RULE(int) yy_EmphStar(GREG *G); /* 221 */
  1169. YY_RULE(int) yy_StarLine(GREG *G); /* 220 */
  1170. YY_RULE(int) yy_UlLine(GREG *G); /* 219 */
  1171. YY_RULE(int) yy_SpecialChar(GREG *G); /* 218 */
  1172. YY_RULE(int) yy_Eof(GREG *G); /* 217 */
  1173. YY_RULE(int) yy_NormalEndline(GREG *G); /* 216 */
  1174. YY_RULE(int) yy_TerminalEndline(GREG *G); /* 215 */
  1175. YY_RULE(int) yy_LineBreak(GREG *G); /* 214 */
  1176. YY_RULE(int) yy_CharEntity(GREG *G); /* 213 */
  1177. YY_RULE(int) yy_DecEntity(GREG *G); /* 212 */
  1178. YY_RULE(int) yy_HexEntity(GREG *G); /* 211 */
  1179. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G); /* 210 */
  1180. YY_RULE(int) yy_Alphanumeric(GREG *G); /* 209 */
  1181. YY_RULE(int) yy_NormalChar(GREG *G); /* 208 */
  1182. YY_RULE(int) yy_Symbol(GREG *G); /* 207 */
  1183. YY_RULE(int) yy_EscapedChar(GREG *G); /* 206 */
  1184. YY_RULE(int) yy_Entity(GREG *G); /* 205 */
  1185. YY_RULE(int) yy_RawHtml(GREG *G); /* 204 */
  1186. YY_RULE(int) yy_Mark(GREG *G); /* 203 */
  1187. YY_RULE(int) yy_Code(GREG *G); /* 202 */
  1188. YY_RULE(int) yy_InlineNote(GREG *G); /* 201 */
  1189. YY_RULE(int) yy_NoteReference(GREG *G); /* 200 */
  1190. YY_RULE(int) yy_Link(GREG *G); /* 199 */
  1191. YY_RULE(int) yy_Image(GREG *G); /* 198 */
  1192. YY_RULE(int) yy_Strike(GREG *G); /* 197 */
  1193. YY_RULE(int) yy_Emph(GREG *G); /* 196 */
  1194. YY_RULE(int) yy_Strong(GREG *G); /* 195 */
  1195. YY_RULE(int) yy_UlOrStarLine(GREG *G); /* 194 */
  1196. YY_RULE(int) yy_Str(GREG *G); /* 193 */
  1197. YY_RULE(int) yy_InStyleTags(GREG *G); /* 192 */
  1198. YY_RULE(int) yy_StyleClose(GREG *G); /* 191 */
  1199. YY_RULE(int) yy_StyleOpen(GREG *G); /* 190 */
  1200. YY_RULE(int) yy_HtmlBlockType(GREG *G); /* 189 */
  1201. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G); /* 188 */
  1202. YY_RULE(int) yy_HtmlComment(GREG *G); /* 187 */
  1203. YY_RULE(int) yy_HtmlBlockInTags(GREG *G); /* 186 */
  1204. YY_RULE(int) yy_HtmlBlockHead(GREG *G); /* 185 */
  1205. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G); /* 184 */
  1206. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G); /* 183 */
  1207. YY_RULE(int) yy_HtmlBlockScript(GREG *G); /* 182 */
  1208. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G); /* 181 */
  1209. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G); /* 180 */
  1210. YY_RULE(int) yy_HtmlBlockTr(GREG *G); /* 179 */
  1211. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G); /* 178 */
  1212. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G); /* 177 */
  1213. YY_RULE(int) yy_HtmlBlockThead(GREG *G); /* 176 */
  1214. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G); /* 175 */
  1215. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G); /* 174 */
  1216. YY_RULE(int) yy_HtmlBlockTh(GREG *G); /* 173 */
  1217. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G); /* 172 */
  1218. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G); /* 171 */
  1219. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G); /* 170 */
  1220. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G); /* 169 */
  1221. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G); /* 168 */
  1222. YY_RULE(int) yy_HtmlBlockTd(GREG *G); /* 167 */
  1223. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G); /* 166 */
  1224. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G); /* 165 */
  1225. YY_RULE(int) yy_HtmlBlockTbody(GREG *G); /* 164 */
  1226. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G); /* 163 */
  1227. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G); /* 162 */
  1228. YY_RULE(int) yy_HtmlBlockLi(GREG *G); /* 161 */
  1229. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G); /* 160 */
  1230. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G); /* 159 */
  1231. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G); /* 158 */
  1232. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G); /* 157 */
  1233. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G); /* 156 */
  1234. YY_RULE(int) yy_HtmlBlockDt(GREG *G); /* 155 */
  1235. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G); /* 154 */
  1236. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G); /* 153 */
  1237. YY_RULE(int) yy_HtmlBlockDd(GREG *G); /* 152 */
  1238. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G); /* 151 */
  1239. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G); /* 150 */
  1240. YY_RULE(int) yy_HtmlBlockUl(GREG *G); /* 149 */
  1241. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G); /* 148 */
  1242. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G); /* 147 */
  1243. YY_RULE(int) yy_HtmlBlockTable(GREG *G); /* 146 */
  1244. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G); /* 145 */
  1245. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G); /* 144 */
  1246. YY_RULE(int) yy_HtmlBlockPre(GREG *G); /* 143 */
  1247. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G); /* 142 */
  1248. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G); /* 141 */
  1249. YY_RULE(int) yy_HtmlBlockP(GREG *G); /* 140 */
  1250. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G); /* 139 */
  1251. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G); /* 138 */
  1252. YY_RULE(int) yy_HtmlBlockOl(GREG *G); /* 137 */
  1253. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G); /* 136 */
  1254. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G); /* 135 */
  1255. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G); /* 134 */
  1256. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G); /* 133 */
  1257. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G); /* 132 */
  1258. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G); /* 131 */
  1259. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G); /* 130 */
  1260. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G); /* 129 */
  1261. YY_RULE(int) yy_HtmlBlockMenu(GREG *G); /* 128 */
  1262. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G); /* 127 */
  1263. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G); /* 126 */
  1264. YY_RULE(int) yy_HtmlBlockH6(GREG *G); /* 125 */
  1265. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G); /* 124 */
  1266. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G); /* 123 */
  1267. YY_RULE(int) yy_HtmlBlockH5(GREG *G); /* 122 */
  1268. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G); /* 121 */
  1269. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G); /* 120 */
  1270. YY_RULE(int) yy_HtmlBlockH4(GREG *G); /* 119 */
  1271. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G); /* 118 */
  1272. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G); /* 117 */
  1273. YY_RULE(int) yy_HtmlBlockH3(GREG *G); /* 116 */
  1274. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G); /* 115 */
  1275. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G); /* 114 */
  1276. YY_RULE(int) yy_HtmlBlockH2(GREG *G); /* 113 */
  1277. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G); /* 112 */
  1278. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G); /* 111 */
  1279. YY_RULE(int) yy_HtmlBlockH1(GREG *G); /* 110 */
  1280. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G); /* 109 */
  1281. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G); /* 108 */
  1282. YY_RULE(int) yy_HtmlBlockForm(GREG *G); /* 107 */
  1283. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G); /* 106 */
  1284. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G); /* 105 */
  1285. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G); /* 104 */
  1286. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G); /* 103 */
  1287. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G); /* 102 */
  1288. YY_RULE(int) yy_HtmlBlockDl(GREG *G); /* 101 */
  1289. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G); /* 100 */
  1290. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G); /* 99 */
  1291. YY_RULE(int) yy_HtmlBlockDiv(GREG *G); /* 98 */
  1292. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G); /* 97 */
  1293. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G); /* 96 */
  1294. YY_RULE(int) yy_HtmlBlockDir(GREG *G); /* 95 */
  1295. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G); /* 94 */
  1296. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G); /* 93 */
  1297. YY_RULE(int) yy_HtmlBlockCenter(GREG *G); /* 92 */
  1298. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G); /* 91 */
  1299. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G); /* 90 */
  1300. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G); /* 89 */
  1301. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G); /* 88 */
  1302. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G); /* 87 */
  1303. YY_RULE(int) yy_HtmlBlockAddress(GREG *G); /* 86 */
  1304. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G); /* 85 */
  1305. YY_RULE(int) yy_HtmlAttribute(GREG *G); /* 84 */
  1306. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G); /* 83 */
  1307. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G); /* 82 */
  1308. YY_RULE(int) yy_Indent(GREG *G); /* 81 */
  1309. YY_RULE(int) yy_ListBlockLine(GREG *G); /* 80 */
  1310. YY_RULE(int) yy_ListContinuationBlock(GREG *G); /* 79 */
  1311. YY_RULE(int) yy_ListBlock(GREG *G); /* 78 */
  1312. YY_RULE(int) yy_ListItem(GREG *G); /* 77 */
  1313. YY_RULE(int) yy_Enumerator(GREG *G); /* 76 */
  1314. YY_RULE(int) yy_ListItemTight(GREG *G); /* 75 */
  1315. YY_RULE(int) yy_ListLoose(GREG *G); /* 74 */
  1316. YY_RULE(int) yy_ListTight(GREG *G); /* 73 */
  1317. YY_RULE(int) yy_Bullet(GREG *G); /* 72 */
  1318. YY_RULE(int) yy_TableCell(GREG *G); /* 71 */
  1319. YY_RULE(int) yy_TableBorder(GREG *G); /* 70 */
  1320. YY_RULE(int) yy_TableLine(GREG *G); /* 69 */
  1321. YY_RULE(int) yy_TableDelimiter(GREG *G); /* 68 */
  1322. YY_RULE(int) yy_TableHeader(GREG *G); /* 67 */
  1323. YY_RULE(int) yy_InlineEquationMultiple(GREG *G); /* 66 */
  1324. YY_RULE(int) yy_InlineEquationSingle(GREG *G); /* 65 */
  1325. YY_RULE(int) yy_InlineEquation(GREG *G); /* 64 */
  1326. YY_RULE(int) yy_Nonspacechar(GREG *G); /* 63 */
  1327. YY_RULE(int) yy_DisplayFormulaRawMark(GREG *G); /* 62 */
  1328. YY_RULE(int) yy_DisplayFormulaRawEnd(GREG *G); /* 61 */
  1329. YY_RULE(int) yy_Spnl(GREG *G); /* 60 */
  1330. YY_RULE(int) yy_DisplayFormulaRawStart(GREG *G); /* 59 */
  1331. YY_RULE(int) yy_FormulaNumber(GREG *G); /* 58 */
  1332. YY_RULE(int) yy_DisplayFormulaRaw(GREG *G); /* 57 */
  1333. YY_RULE(int) yy_DisplayFormulaDollar(GREG *G); /* 56 */
  1334. YY_RULE(int) yy_FencedCodeBlockTidle(GREG *G); /* 55 */
  1335. YY_RULE(int) yy_FencedCodeBlockTick(GREG *G); /* 54 */
  1336. YY_RULE(int) yy_FencedCodeBlockEndTidle(GREG *G); /* 53 */
  1337. YY_RULE(int) yy_FencedCodeBlockChunkTidle(GREG *G); /* 52 */
  1338. YY_RULE(int) yy_FencedCodeBlockStartTidleLine(GREG *G); /* 51 */
  1339. YY_RULE(int) yy_FencedCodeBlockStartTidle(GREG *G); /* 50 */
  1340. YY_RULE(int) yy_Spacechar(GREG *G); /* 49 */
  1341. YY_RULE(int) yy_FencedCodeBlockEndTick(GREG *G); /* 48 */
  1342. YY_RULE(int) yy_FencedCodeBlockChunkTick(GREG *G); /* 47 */
  1343. YY_RULE(int) yy_FencedCodeBlockStartTickLine(GREG *G); /* 46 */
  1344. YY_RULE(int) yy_FencedCodeBlockStartTick(GREG *G); /* 45 */
  1345. YY_RULE(int) yy_VerbatimChunk(GREG *G); /* 44 */
  1346. YY_RULE(int) yy_IndentedLine(GREG *G); /* 43 */
  1347. YY_RULE(int) yy_NonblankIndentedLine(GREG *G); /* 42 */
  1348. YY_RULE(int) yy_Line(GREG *G); /* 41 */
  1349. YY_RULE(int) yy_StartList(GREG *G); /* 40 */
  1350. YY_RULE(int) yy_BlockQuoteRaw(GREG *G); /* 39 */
  1351. YY_RULE(int) yy_Endline(GREG *G); /* 38 */
  1352. YY_RULE(int) yy_RawLine(GREG *G); /* 37 */
  1353. YY_RULE(int) yy_SetextBottom2(GREG *G); /* 36 */
  1354. YY_RULE(int) yy_SetextBottom1(GREG *G); /* 35 */
  1355. YY_RULE(int) yy_SetextHeading2(GREG *G); /* 34 */
  1356. YY_RULE(int) yy_SetextHeading1(GREG *G); /* 33 */
  1357. YY_RULE(int) yy_SetextHeading(GREG *G); /* 32 */
  1358. YY_RULE(int) yy_Space(GREG *G); /* 31 */
  1359. YY_RULE(int) yy_AtxHeading(GREG *G); /* 30 */
  1360. YY_RULE(int) yy_AtxStart(GREG *G); /* 29 */
  1361. YY_RULE(int) yy_Inline(GREG *G); /* 28 */
  1362. YY_RULE(int) yy_Sp(GREG *G); /* 27 */
  1363. YY_RULE(int) yy_AtxInline(GREG *G); /* 26 */
  1364. YY_RULE(int) yy_Inlines(GREG *G); /* 25 */
  1365. YY_RULE(int) yy_NonindentSpace(GREG *G); /* 24 */
  1366. YY_RULE(int) yy_Plain(GREG *G); /* 23 */
  1367. YY_RULE(int) yy_Para(GREG *G); /* 22 */
  1368. YY_RULE(int) yy_StyleBlock(GREG *G); /* 21 */
  1369. YY_RULE(int) yy_HtmlBlock(GREG *G); /* 20 */
  1370. YY_RULE(int) yy_Table(GREG *G); /* 19 */
  1371. YY_RULE(int) yy_BulletList(GREG *G); /* 18 */
  1372. YY_RULE(int) yy_OrderedList(GREG *G); /* 17 */
  1373. YY_RULE(int) yy_Heading(GREG *G); /* 16 */
  1374. YY_RULE(int) yy_HorizontalRule(GREG *G); /* 15 */
  1375. YY_RULE(int) yy_Reference(GREG *G); /* 14 */
  1376. YY_RULE(int) yy_Note(GREG *G); /* 13 */
  1377. YY_RULE(int) yy_DisplayFormula(GREG *G); /* 12 */
  1378. YY_RULE(int) yy_FencedCodeBlock(GREG *G); /* 11 */
  1379. YY_RULE(int) yy_Verbatim(GREG *G); /* 10 */
  1380. YY_RULE(int) yy_BlockQuote(GREG *G); /* 9 */
  1381. YY_RULE(int) yy_BlankLine(GREG *G); /* 8 */
  1382. YY_RULE(int) yy_FrontMatterEndMark(GREG *G); /* 7 */
  1383. YY_RULE(int) yy_FrontMatterBlock(GREG *G); /* 6 */
  1384. YY_RULE(int) yy_Newline(GREG *G); /* 5 */
  1385. YY_RULE(int) yy_LocMarker(GREG *G); /* 4 */
  1386. YY_RULE(int) yy_Block(GREG *G); /* 3 */
  1387. YY_RULE(int) yy_FrontMatter(GREG *G); /* 2 */
  1388. YY_RULE(int) yy_Doc(GREG *G); /* 1 */
  1389. YY_ACTION(void) yy_1_InlineNote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1390. {
  1391. #define s G->val[-1]
  1392. yyprintf((stderr, "do yy_1_InlineNote\n"));
  1393. ADD(elem_s(pmh_NOTE)); ;
  1394. #undef s
  1395. }
  1396. YY_ACTION(void) yy_1_Note(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1397. {
  1398. #define s G->val[-1]
  1399. yyprintf((stderr, "do yy_1_Note\n"));
  1400. ADD(elem_s(pmh_NOTE)); ;
  1401. #undef s
  1402. }
  1403. YY_ACTION(void) yy_1_NoteReference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1404. {
  1405. yyprintf((stderr, "do yy_1_NoteReference\n"));
  1406. ADD(elem(pmh_NOTE)); ;
  1407. }
  1408. YY_ACTION(void) yy_1_RawLine(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1409. {
  1410. yyprintf((stderr, "do yy_1_RawLine\n"));
  1411. yy = elem(pmh_RAW); ;
  1412. }
  1413. YY_ACTION(void) yy_1_Line(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1414. {
  1415. yyprintf((stderr, "do yy_1_Line\n"));
  1416. yy = mk_element((parser_data *)G->data, pmh_RAW, yy->pos, yy->end); ;
  1417. }
  1418. YY_ACTION(void) yy_1_StartList(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1419. {
  1420. yyprintf((stderr, "do yy_1_StartList\n"));
  1421. yy = NULL; ;
  1422. }
  1423. YY_ACTION(void) yy_1_HtmlComment(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1424. {
  1425. #define s G->val[-1]
  1426. yyprintf((stderr, "do yy_1_HtmlComment\n"));
  1427. ADD(elem_s(pmh_COMMENT)); ;
  1428. #undef s
  1429. }
  1430. YY_ACTION(void) yy_1_RawHtml(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1431. {
  1432. #define s G->val[-1]
  1433. yyprintf((stderr, "do yy_1_RawHtml\n"));
  1434. ADD(elem_s(pmh_HTML)); ;
  1435. #undef s
  1436. }
  1437. YY_ACTION(void) yy_1_MarkTagClose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1438. {
  1439. #define s G->val[-1]
  1440. yyprintf((stderr, "do yy_1_MarkTagClose\n"));
  1441. yy = elem_s(pmh_HTML); ;
  1442. #undef s
  1443. }
  1444. YY_ACTION(void) yy_1_MarkTagOpen(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1445. {
  1446. #define s G->val[-1]
  1447. yyprintf((stderr, "do yy_1_MarkTagOpen\n"));
  1448. yy = elem_s(pmh_HTML); ;
  1449. #undef s
  1450. }
  1451. YY_ACTION(void) yy_1_Mark(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1452. {
  1453. #define c G->val[-1]
  1454. #define o G->val[-2]
  1455. yyprintf((stderr, "do yy_1_Mark\n"));
  1456. ADD(o);
  1457. ADD(mk_element((parser_data *)G->data, pmh_MARK, o->end, c->pos));
  1458. ADD(c);
  1459. ;
  1460. #undef c
  1461. #undef o
  1462. }
  1463. YY_ACTION(void) yy_1_Code(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1464. {
  1465. #define s G->val[-1]
  1466. yyprintf((stderr, "do yy_1_Code\n"));
  1467. ADD(elem_s(pmh_CODE)); ;
  1468. #undef s
  1469. }
  1470. YY_ACTION(void) yy_1_Ticks5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1471. {
  1472. yyprintf((stderr, "do yy_1_Ticks5\n"));
  1473. yy = elem(pmh_NO_TYPE); ;
  1474. }
  1475. YY_ACTION(void) yy_1_Ticks4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1476. {
  1477. yyprintf((stderr, "do yy_1_Ticks4\n"));
  1478. yy = elem(pmh_NO_TYPE); ;
  1479. }
  1480. YY_ACTION(void) yy_1_Ticks3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1481. {
  1482. yyprintf((stderr, "do yy_1_Ticks3\n"));
  1483. yy = elem(pmh_NO_TYPE); ;
  1484. }
  1485. YY_ACTION(void) yy_1_Ticks2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1486. {
  1487. yyprintf((stderr, "do yy_1_Ticks2\n"));
  1488. yy = elem(pmh_NO_TYPE); ;
  1489. }
  1490. YY_ACTION(void) yy_1_Ticks1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1491. {
  1492. yyprintf((stderr, "do yy_1_Ticks1\n"));
  1493. yy = elem(pmh_NO_TYPE); ;
  1494. }
  1495. YY_ACTION(void) yy_1_RefSrc(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1496. {
  1497. yyprintf((stderr, "do yy_1_RefSrc\n"));
  1498. yy = mk_notype; yy->address = COPY_YYTEXT_ORIG(); ;
  1499. }
  1500. YY_ACTION(void) yy_2_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1501. {
  1502. #define s G->val[-1]
  1503. yyprintf((stderr, "do yy_2_Label\n"));
  1504. s->pos = s->pos;
  1505. s->end = thunk->end;
  1506. yy = s;
  1507. ;
  1508. #undef s
  1509. }
  1510. YY_ACTION(void) yy_1_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1511. {
  1512. #define s G->val[-1]
  1513. yyprintf((stderr, "do yy_1_Label\n"));
  1514. s->label = COPY_YYTEXT_ORIG(); ;
  1515. #undef s
  1516. }
  1517. YY_ACTION(void) yy_1_Reference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1518. {
  1519. #define r G->val[-1]
  1520. #define l G->val[-2]
  1521. #define s G->val[-3]
  1522. yyprintf((stderr, "do yy_1_Reference\n"));
  1523. pmh_realelement *el = elem_s(pmh_REFERENCE);
  1524. el->label = strdup_or_null(l->label);
  1525. el->address = strdup_or_null(r->address);
  1526. ADD(el);
  1527. FREE_LABEL(l);
  1528. FREE_ADDRESS(r);
  1529. ;
  1530. #undef r
  1531. #undef l
  1532. #undef s
  1533. }
  1534. YY_ACTION(void) yy_3_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1535. {
  1536. #define s G->val[-1]
  1537. yyprintf((stderr, "do yy_3_AutoLinkEmail\n"));
  1538. s->end = thunk->end;
  1539. ADD(s);
  1540. ;
  1541. #undef s
  1542. }
  1543. YY_ACTION(void) yy_2_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1544. {
  1545. #define s G->val[-1]
  1546. yyprintf((stderr, "do yy_2_AutoLinkEmail\n"));
  1547. s->address = COPY_YYTEXT_ORIG(); ;
  1548. #undef s
  1549. }
  1550. YY_ACTION(void) yy_1_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1551. {
  1552. #define s G->val[-1]
  1553. yyprintf((stderr, "do yy_1_AutoLinkEmail\n"));
  1554. s->type = pmh_AUTO_LINK_EMAIL; ;
  1555. #undef s
  1556. }
  1557. YY_ACTION(void) yy_3_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1558. {
  1559. #define s G->val[-1]
  1560. yyprintf((stderr, "do yy_3_AutoLinkUrl\n"));
  1561. s->end = thunk->end;
  1562. ADD(s);
  1563. ;
  1564. #undef s
  1565. }
  1566. YY_ACTION(void) yy_2_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1567. {
  1568. #define s G->val[-1]
  1569. yyprintf((stderr, "do yy_2_AutoLinkUrl\n"));
  1570. s->address = COPY_YYTEXT_ORIG(); ;
  1571. #undef s
  1572. }
  1573. YY_ACTION(void) yy_1_AutoLinkUrl(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_AutoLinkUrl\n"));
  1577. s->type = pmh_AUTO_LINK_URL; ;
  1578. #undef s
  1579. }
  1580. YY_ACTION(void) yy_3_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1581. {
  1582. yyprintf((stderr, "do yy_3_Source\n"));
  1583. yy->address = COPY_YYTEXT_ORIG(); ;
  1584. }
  1585. YY_ACTION(void) yy_2_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1586. {
  1587. yyprintf((stderr, "do yy_2_Source\n"));
  1588. yy->address = COPY_YYTEXT_ORIG(); ;
  1589. }
  1590. YY_ACTION(void) yy_1_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1591. {
  1592. yyprintf((stderr, "do yy_1_Source\n"));
  1593. yy = mk_notype; ;
  1594. }
  1595. YY_ACTION(void) yy_1_ExplicitLinkSize(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1596. {
  1597. #define l G->val[-1]
  1598. #define s G->val[-2]
  1599. yyprintf((stderr, "do yy_1_ExplicitLinkSize\n"));
  1600. yy = elem_s(pmh_LINK);
  1601. if (l->address != NULL)
  1602. yy->address = strdup_or_null(l->address);
  1603. FREE_LABEL(s);
  1604. FREE_ADDRESS(l);
  1605. ;
  1606. #undef l
  1607. #undef s
  1608. }
  1609. YY_ACTION(void) yy_1_ExplicitLink(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1610. {
  1611. #define l G->val[-1]
  1612. #define s G->val[-2]
  1613. yyprintf((stderr, "do yy_1_ExplicitLink\n"));
  1614. yy = elem_s(pmh_LINK);
  1615. if (l->address != NULL)
  1616. yy->address = strdup_or_null(l->address);
  1617. FREE_LABEL(s);
  1618. FREE_ADDRESS(l);
  1619. ;
  1620. #undef l
  1621. #undef s
  1622. }
  1623. YY_ACTION(void) yy_1_ReferenceLinkSingle(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1624. {
  1625. #define s G->val[-1]
  1626. yyprintf((stderr, "do yy_1_ReferenceLinkSingle\n"));
  1627. pmh_realelement *reference = GET_REF(s->label);
  1628. if (reference) {
  1629. yy = elem_s(pmh_LINK);
  1630. yy->label = strdup_or_null(s->label);
  1631. yy->address = strdup_or_null(reference->address);
  1632. } else
  1633. yy = NULL;
  1634. FREE_LABEL(s);
  1635. ;
  1636. #undef s
  1637. }
  1638. YY_ACTION(void) yy_1_ReferenceLinkDouble(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1639. {
  1640. #define l G->val[-1]
  1641. #define s G->val[-2]
  1642. yyprintf((stderr, "do yy_1_ReferenceLinkDouble\n"));
  1643. pmh_realelement *reference = GET_REF(l->label);
  1644. if (reference) {
  1645. yy = elem_s(pmh_LINK);
  1646. yy->label = strdup_or_null(l->label);
  1647. yy->address = strdup_or_null(reference->address);
  1648. } else
  1649. yy = NULL;
  1650. FREE_LABEL(s);
  1651. FREE_LABEL(l);
  1652. ;
  1653. #undef l
  1654. #undef s
  1655. }
  1656. YY_ACTION(void) yy_1_Link(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1657. {
  1658. yyprintf((stderr, "do yy_1_Link\n"));
  1659. if (yy) ADD(yy); ;
  1660. }
  1661. YY_ACTION(void) yy_1_Image(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1662. {
  1663. yyprintf((stderr, "do yy_1_Image\n"));
  1664. if (yy != NULL) {
  1665. yy->type = pmh_IMAGE;
  1666. yy->pos -= 1;
  1667. ADD(yy);
  1668. }
  1669. ;
  1670. }
  1671. YY_ACTION(void) yy_1_Strike(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1672. {
  1673. #define s G->val[-1]
  1674. yyprintf((stderr, "do yy_1_Strike\n"));
  1675. ADD(elem_s(pmh_STRIKE)); ;
  1676. #undef s
  1677. }
  1678. YY_ACTION(void) yy_1_StrongUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1679. {
  1680. #define s G->val[-1]
  1681. yyprintf((stderr, "do yy_1_StrongUl\n"));
  1682. ADD(elem_s(pmh_STRONG)); ;
  1683. #undef s
  1684. }
  1685. YY_ACTION(void) yy_1_StrongStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1686. {
  1687. #define s G->val[-1]
  1688. yyprintf((stderr, "do yy_1_StrongStar\n"));
  1689. ADD(elem_s(pmh_STRONG)); ;
  1690. #undef s
  1691. }
  1692. YY_ACTION(void) yy_1_EmphUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1693. {
  1694. #define s G->val[-1]
  1695. yyprintf((stderr, "do yy_1_EmphUl\n"));
  1696. ADD(elem_s(pmh_EMPH)); ;
  1697. #undef s
  1698. }
  1699. YY_ACTION(void) yy_1_EmphStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1700. {
  1701. #define s G->val[-1]
  1702. yyprintf((stderr, "do yy_1_EmphStar\n"));
  1703. ADD(elem_s(pmh_EMPH)); ;
  1704. #undef s
  1705. }
  1706. YY_ACTION(void) yy_1_Entity(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1707. {
  1708. #define s G->val[-1]
  1709. yyprintf((stderr, "do yy_1_Entity\n"));
  1710. ADD(elem_s(pmh_HTML_ENTITY)); ;
  1711. #undef s
  1712. }
  1713. YY_ACTION(void) yy_1_StyleBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1714. {
  1715. #define s G->val[-1]
  1716. yyprintf((stderr, "do yy_1_StyleBlock\n"));
  1717. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1718. #undef s
  1719. }
  1720. YY_ACTION(void) yy_1_HtmlBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1721. {
  1722. #define s G->val[-1]
  1723. yyprintf((stderr, "do yy_1_HtmlBlock\n"));
  1724. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1725. #undef s
  1726. }
  1727. YY_ACTION(void) yy_1_HtmlBlockH6(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1728. {
  1729. #define s G->val[-1]
  1730. yyprintf((stderr, "do yy_1_HtmlBlockH6\n"));
  1731. ADD(elem_s(pmh_H6)); ;
  1732. #undef s
  1733. }
  1734. YY_ACTION(void) yy_1_HtmlBlockH5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1735. {
  1736. #define s G->val[-1]
  1737. yyprintf((stderr, "do yy_1_HtmlBlockH5\n"));
  1738. ADD(elem_s(pmh_H5)); ;
  1739. #undef s
  1740. }
  1741. YY_ACTION(void) yy_1_HtmlBlockH4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1742. {
  1743. #define s G->val[-1]
  1744. yyprintf((stderr, "do yy_1_HtmlBlockH4\n"));
  1745. ADD(elem_s(pmh_H4)); ;
  1746. #undef s
  1747. }
  1748. YY_ACTION(void) yy_1_HtmlBlockH3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1749. {
  1750. #define s G->val[-1]
  1751. yyprintf((stderr, "do yy_1_HtmlBlockH3\n"));
  1752. ADD(elem_s(pmh_H3)); ;
  1753. #undef s
  1754. }
  1755. YY_ACTION(void) yy_1_HtmlBlockH2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1756. {
  1757. #define s G->val[-1]
  1758. yyprintf((stderr, "do yy_1_HtmlBlockH2\n"));
  1759. ADD(elem_s(pmh_H2)); ;
  1760. #undef s
  1761. }
  1762. YY_ACTION(void) yy_1_HtmlBlockH1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1763. {
  1764. #define s G->val[-1]
  1765. yyprintf((stderr, "do yy_1_HtmlBlockH1\n"));
  1766. ADD(elem_s(pmh_H1)); ;
  1767. #undef s
  1768. }
  1769. YY_ACTION(void) yy_1_Enumerator(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1770. {
  1771. yyprintf((stderr, "do yy_1_Enumerator\n"));
  1772. ADD(elem(pmh_LIST_ENUMERATOR)); ;
  1773. }
  1774. YY_ACTION(void) yy_3_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1775. {
  1776. #define a G->val[-1]
  1777. yyprintf((stderr, "do yy_3_ListContinuationBlock\n"));
  1778. yy = a; ;
  1779. #undef a
  1780. }
  1781. YY_ACTION(void) yy_2_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1782. {
  1783. #define a G->val[-1]
  1784. yyprintf((stderr, "do yy_2_ListContinuationBlock\n"));
  1785. a = cons(yy, a); ;
  1786. #undef a
  1787. }
  1788. YY_ACTION(void) yy_1_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1789. {
  1790. #define a G->val[-1]
  1791. yyprintf((stderr, "do yy_1_ListContinuationBlock\n"));
  1792. if (*yytext == '\0') /* if strlen(yytext) == 0 */
  1793. a = cons(elem(pmh_SEPARATOR), a);
  1794. else
  1795. a = cons(elem(pmh_RAW), a);
  1796. ;
  1797. #undef a
  1798. }
  1799. YY_ACTION(void) yy_3_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1800. {
  1801. #define a G->val[-1]
  1802. yyprintf((stderr, "do yy_3_ListBlock\n"));
  1803. yy = a; ;
  1804. #undef a
  1805. }
  1806. YY_ACTION(void) yy_2_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1807. {
  1808. #define a G->val[-1]
  1809. yyprintf((stderr, "do yy_2_ListBlock\n"));
  1810. a = cons(elem(pmh_RAW), a); ;
  1811. #undef a
  1812. }
  1813. YY_ACTION(void) yy_1_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1814. {
  1815. #define a G->val[-1]
  1816. yyprintf((stderr, "do yy_1_ListBlock\n"));
  1817. a = cons(yy, a); ;
  1818. #undef a
  1819. }
  1820. YY_ACTION(void) yy_3_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1821. {
  1822. #define a G->val[-1]
  1823. yyprintf((stderr, "do yy_3_ListItemTight\n"));
  1824. yy = a; ;
  1825. #undef a
  1826. }
  1827. YY_ACTION(void) yy_2_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1828. {
  1829. #define a G->val[-1]
  1830. yyprintf((stderr, "do yy_2_ListItemTight\n"));
  1831. a = cons(yy, a); ;
  1832. #undef a
  1833. }
  1834. YY_ACTION(void) yy_1_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1835. {
  1836. #define a G->val[-1]
  1837. yyprintf((stderr, "do yy_1_ListItemTight\n"));
  1838. a = cons(yy, a); ;
  1839. #undef a
  1840. }
  1841. YY_ACTION(void) yy_3_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1842. {
  1843. #define a G->val[-1]
  1844. yyprintf((stderr, "do yy_3_ListItem\n"));
  1845. yy = a; ;
  1846. #undef a
  1847. }
  1848. YY_ACTION(void) yy_2_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1849. {
  1850. #define a G->val[-1]
  1851. yyprintf((stderr, "do yy_2_ListItem\n"));
  1852. a = cons(yy, a); ;
  1853. #undef a
  1854. }
  1855. YY_ACTION(void) yy_1_ListItem(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_ListItem\n"));
  1859. a = cons(yy, a); ;
  1860. #undef a
  1861. }
  1862. YY_ACTION(void) yy_2_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1863. {
  1864. #define b G->val[-1]
  1865. #define a G->val[-2]
  1866. yyprintf((stderr, "do yy_2_ListLoose\n"));
  1867. pmh_realelement *cur = a;
  1868. while (cur != NULL) {
  1869. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1870. rawlist->children = reverse(cur->children);
  1871. ADD(rawlist);
  1872. cur = cur->next;
  1873. }
  1874. ;
  1875. #undef b
  1876. #undef a
  1877. }
  1878. YY_ACTION(void) yy_1_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1879. {
  1880. #define b G->val[-1]
  1881. #define a G->val[-2]
  1882. yyprintf((stderr, "do yy_1_ListLoose\n"));
  1883. b = cons(etext("\n\n"), b); /* In loose list, \n\n added to end of each element */
  1884. pmh_realelement *el = mk_notype;
  1885. el->children = b;
  1886. a = cons(el, a);
  1887. ;
  1888. #undef b
  1889. #undef a
  1890. }
  1891. YY_ACTION(void) yy_2_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1892. {
  1893. #define a G->val[-1]
  1894. yyprintf((stderr, "do yy_2_ListTight\n"));
  1895. pmh_realelement *cur = a;
  1896. while (cur != NULL) {
  1897. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1898. rawlist->children = reverse(cur->children);
  1899. ADD(rawlist);
  1900. cur = cur->next;
  1901. }
  1902. ;
  1903. #undef a
  1904. }
  1905. YY_ACTION(void) yy_1_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1906. {
  1907. #define a G->val[-1]
  1908. yyprintf((stderr, "do yy_1_ListTight\n"));
  1909. pmh_realelement *el = mk_notype;
  1910. el->children = yy;
  1911. a = cons(el, a);
  1912. ;
  1913. #undef a
  1914. }
  1915. YY_ACTION(void) yy_1_Bullet(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1916. {
  1917. yyprintf((stderr, "do yy_1_Bullet\n"));
  1918. ADD(elem(pmh_LIST_BULLET)); ;
  1919. }
  1920. YY_ACTION(void) yy_1_HorizontalRule(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1921. {
  1922. yyprintf((stderr, "do yy_1_HorizontalRule\n"));
  1923. ADD(elem(pmh_HRULE)); ;
  1924. }
  1925. YY_ACTION(void) yy_1_TableBorder(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1926. {
  1927. yyprintf((stderr, "do yy_1_TableBorder\n"));
  1928. ADD(elem(pmh_TABLEBORDER)); ;
  1929. }
  1930. YY_ACTION(void) yy_1_TableHeader(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1931. {
  1932. #define s G->val[-1]
  1933. yyprintf((stderr, "do yy_1_TableHeader\n"));
  1934. ADD(elem_s(pmh_TABLEHEADER)); ;
  1935. #undef s
  1936. }
  1937. YY_ACTION(void) yy_1_Table(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1938. {
  1939. #define s G->val[-1]
  1940. yyprintf((stderr, "do yy_1_Table\n"));
  1941. ADD(elem_s(pmh_TABLE)); ;
  1942. #undef s
  1943. }
  1944. YY_ACTION(void) yy_1_InlineEquation(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1945. {
  1946. yyprintf((stderr, "do yy_1_InlineEquation\n"));
  1947. ADD(elem(pmh_INLINEEQUATION)); ;
  1948. }
  1949. YY_ACTION(void) yy_1_DisplayFormulaRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1950. {
  1951. yyprintf((stderr, "do yy_1_DisplayFormulaRaw\n"));
  1952. ADD(elem(pmh_DISPLAYFORMULA)); ;
  1953. }
  1954. YY_ACTION(void) yy_1_DisplayFormulaDollar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1955. {
  1956. yyprintf((stderr, "do yy_1_DisplayFormulaDollar\n"));
  1957. ADD(elem(pmh_DISPLAYFORMULA)); ;
  1958. }
  1959. YY_ACTION(void) yy_1_FencedCodeBlockTidle(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1960. {
  1961. yyprintf((stderr, "do yy_1_FencedCodeBlockTidle\n"));
  1962. ADD(elem(pmh_FENCEDCODEBLOCK)); ;
  1963. }
  1964. YY_ACTION(void) yy_1_FencedCodeBlockTick(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1965. {
  1966. yyprintf((stderr, "do yy_1_FencedCodeBlockTick\n"));
  1967. ADD(elem(pmh_FENCEDCODEBLOCK)); ;
  1968. }
  1969. YY_ACTION(void) yy_1_Verbatim(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1970. {
  1971. #define s G->val[-1]
  1972. yyprintf((stderr, "do yy_1_Verbatim\n"));
  1973. ADD(elem_s(pmh_VERBATIM)); ;
  1974. #undef s
  1975. }
  1976. YY_ACTION(void) yy_5_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1977. {
  1978. #define a G->val[-1]
  1979. yyprintf((stderr, "do yy_5_BlockQuoteRaw\n"));
  1980. yy = a; ;
  1981. #undef a
  1982. }
  1983. YY_ACTION(void) yy_4_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1984. {
  1985. #define a G->val[-1]
  1986. yyprintf((stderr, "do yy_4_BlockQuoteRaw\n"));
  1987. a = cons(etext("\n"), a); ;
  1988. #undef a
  1989. }
  1990. YY_ACTION(void) yy_3_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1991. {
  1992. #define a G->val[-1]
  1993. yyprintf((stderr, "do yy_3_BlockQuoteRaw\n"));
  1994. a = cons(yy, a); ;
  1995. #undef a
  1996. }
  1997. YY_ACTION(void) yy_2_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1998. {
  1999. #define a G->val[-1]
  2000. yyprintf((stderr, "do yy_2_BlockQuoteRaw\n"));
  2001. a = cons(yy, a); ;
  2002. #undef a
  2003. }
  2004. YY_ACTION(void) yy_1_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2005. {
  2006. #define a G->val[-1]
  2007. yyprintf((stderr, "do yy_1_BlockQuoteRaw\n"));
  2008. ADD(elem(pmh_BLOCKQUOTE)); ;
  2009. #undef a
  2010. }
  2011. YY_ACTION(void) yy_1_BlockQuote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2012. {
  2013. #define a G->val[-1]
  2014. yyprintf((stderr, "do yy_1_BlockQuote\n"));
  2015. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  2016. rawlist->children = reverse(a);
  2017. ADD(rawlist);
  2018. ;
  2019. #undef a
  2020. }
  2021. YY_ACTION(void) yy_1_SetextHeading2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2022. {
  2023. #define s G->val[-1]
  2024. yyprintf((stderr, "do yy_1_SetextHeading2\n"));
  2025. ADD(elem_s(pmh_H2)); ;
  2026. #undef s
  2027. }
  2028. YY_ACTION(void) yy_1_SetextHeading1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2029. {
  2030. #define s G->val[-1]
  2031. yyprintf((stderr, "do yy_1_SetextHeading1\n"));
  2032. ADD(elem_s(pmh_H1)); ;
  2033. #undef s
  2034. }
  2035. YY_ACTION(void) yy_1_AtxHeading(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2036. {
  2037. #define s G->val[-1]
  2038. yyprintf((stderr, "do yy_1_AtxHeading\n"));
  2039. ADD(elem_s(s->type)); ;
  2040. #undef s
  2041. }
  2042. YY_ACTION(void) yy_1_AtxStart(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2043. {
  2044. yyprintf((stderr, "do yy_1_AtxStart\n"));
  2045. yy = elem((pmh_element_type)(pmh_H1 + (strlen(yytext) - 1))); ;
  2046. }
  2047. YY_ACTION(void) yy_1_FrontMatter(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2048. {
  2049. #define s G->val[-1]
  2050. yyprintf((stderr, "do yy_1_FrontMatter\n"));
  2051. ADD(elem(pmh_FRONTMATTER));
  2052. ;
  2053. #undef s
  2054. }
  2055. YY_ACTION(void) yy_1_LocMarker(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2056. {
  2057. yyprintf((stderr, "do yy_1_LocMarker\n"));
  2058. yy = elem(pmh_NO_TYPE); ;
  2059. }
  2060. YY_RULE(int) yy_RawNoteBlock(GREG *G)
  2061. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2062. yyprintf((stderr, "%s\n", "RawNoteBlock"));
  2063. { int yypos4= G->pos, yythunkpos4= G->thunkpos; if (!yy_BlankLine(G)) { goto l4; } goto l1;
  2064. l4:; G->pos= yypos4; G->thunkpos= yythunkpos4;
  2065. } if (!yy_OptionallyIndentedLine(G)) { goto l1; }
  2066. l2:;
  2067. { int yypos3= G->pos, yythunkpos3= G->thunkpos;
  2068. { int yypos5= G->pos, yythunkpos5= G->thunkpos; if (!yy_BlankLine(G)) { goto l5; } goto l3;
  2069. l5:; G->pos= yypos5; G->thunkpos= yythunkpos5;
  2070. } if (!yy_OptionallyIndentedLine(G)) { goto l3; } goto l2;
  2071. l3:; G->pos= yypos3; G->thunkpos= yythunkpos3;
  2072. }
  2073. l6:;
  2074. { int yypos7= G->pos, yythunkpos7= G->thunkpos; if (!yy_BlankLine(G)) { goto l7; } goto l6;
  2075. l7:; G->pos= yypos7; G->thunkpos= yythunkpos7;
  2076. }
  2077. yyprintf((stderr, " ok %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2078. return 1;
  2079. l1:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2080. yyprintf((stderr, " fail %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2081. return 0;
  2082. }
  2083. YY_RULE(int) yy_RawNoteReference(GREG *G)
  2084. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2085. yyprintf((stderr, "%s\n", "RawNoteReference")); if (!yymatchString(G, "[^")) goto l8;
  2086. { int yypos11= G->pos, yythunkpos11= G->thunkpos; if (!yy_Newline(G)) { goto l11; } goto l8;
  2087. l11:; G->pos= yypos11; G->thunkpos= yythunkpos11;
  2088. }
  2089. { int yypos12= G->pos, yythunkpos12= G->thunkpos; if (!yymatchChar(G, ']')) goto l12; goto l8;
  2090. l12:; G->pos= yypos12; G->thunkpos= yythunkpos12;
  2091. } if (!yymatchDot(G)) goto l8;
  2092. l9:;
  2093. { int yypos10= G->pos, yythunkpos10= G->thunkpos;
  2094. { int yypos13= G->pos, yythunkpos13= G->thunkpos; if (!yy_Newline(G)) { goto l13; } goto l10;
  2095. l13:; G->pos= yypos13; G->thunkpos= yythunkpos13;
  2096. }
  2097. { int yypos14= G->pos, yythunkpos14= G->thunkpos; if (!yymatchChar(G, ']')) goto l14; goto l10;
  2098. l14:; G->pos= yypos14; G->thunkpos= yythunkpos14;
  2099. } if (!yymatchDot(G)) goto l10; goto l9;
  2100. l10:; G->pos= yypos10; G->thunkpos= yythunkpos10;
  2101. } if (!yymatchChar(G, ']')) goto l8;
  2102. yyprintf((stderr, " ok %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2103. return 1;
  2104. l8:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2105. yyprintf((stderr, " fail %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2106. return 0;
  2107. }
  2108. YY_RULE(int) yy_AlphanumericAscii(GREG *G)
  2109. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2110. 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 l15;
  2111. yyprintf((stderr, " ok %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2112. return 1;
  2113. l15:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2114. yyprintf((stderr, " fail %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2115. return 0;
  2116. }
  2117. YY_RULE(int) yy_Quoted(GREG *G)
  2118. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2119. yyprintf((stderr, "%s\n", "Quoted"));
  2120. { int yypos17= G->pos, yythunkpos17= G->thunkpos; if (!yymatchChar(G, '"')) goto l18;
  2121. l19:;
  2122. { int yypos20= G->pos, yythunkpos20= G->thunkpos;
  2123. { int yypos21= G->pos, yythunkpos21= G->thunkpos; if (!yymatchChar(G, '"')) goto l21; goto l20;
  2124. l21:; G->pos= yypos21; G->thunkpos= yythunkpos21;
  2125. } if (!yymatchDot(G)) goto l20; goto l19;
  2126. l20:; G->pos= yypos20; G->thunkpos= yythunkpos20;
  2127. } if (!yymatchChar(G, '"')) goto l18; goto l17;
  2128. l18:; G->pos= yypos17; G->thunkpos= yythunkpos17; if (!yymatchChar(G, '\'')) goto l16;
  2129. l22:;
  2130. { int yypos23= G->pos, yythunkpos23= G->thunkpos;
  2131. { int yypos24= G->pos, yythunkpos24= G->thunkpos; if (!yymatchChar(G, '\'')) goto l24; goto l23;
  2132. l24:; G->pos= yypos24; G->thunkpos= yythunkpos24;
  2133. } if (!yymatchDot(G)) goto l23; goto l22;
  2134. l23:; G->pos= yypos23; G->thunkpos= yythunkpos23;
  2135. } if (!yymatchChar(G, '\'')) goto l16;
  2136. }
  2137. l17:;
  2138. yyprintf((stderr, " ok %s @ %s\n", "Quoted", G->buf+G->pos));
  2139. return 1;
  2140. l16:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2141. yyprintf((stderr, " fail %s @ %s\n", "Quoted", G->buf+G->pos));
  2142. return 0;
  2143. }
  2144. YY_RULE(int) yy_HtmlTag(GREG *G)
  2145. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2146. yyprintf((stderr, "%s\n", "HtmlTag")); if (!yymatchChar(G, '<')) goto l25; if (!yy_Spnl(G)) { goto l25; }
  2147. { int yypos26= G->pos, yythunkpos26= G->thunkpos; if (!yymatchChar(G, '/')) goto l26; goto l27;
  2148. l26:; G->pos= yypos26; G->thunkpos= yythunkpos26;
  2149. }
  2150. l27:; if (!yy_AlphanumericAscii(G)) { goto l25; }
  2151. l28:;
  2152. { int yypos29= G->pos, yythunkpos29= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l29; } goto l28;
  2153. l29:; G->pos= yypos29; G->thunkpos= yythunkpos29;
  2154. } if (!yy_Spnl(G)) { goto l25; }
  2155. l30:;
  2156. { int yypos31= G->pos, yythunkpos31= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l31; } goto l30;
  2157. l31:; G->pos= yypos31; G->thunkpos= yythunkpos31;
  2158. }
  2159. { int yypos32= G->pos, yythunkpos32= G->thunkpos; if (!yymatchChar(G, '/')) goto l32; goto l33;
  2160. l32:; G->pos= yypos32; G->thunkpos= yythunkpos32;
  2161. }
  2162. l33:; if (!yy_Spnl(G)) { goto l25; } if (!yymatchChar(G, '>')) goto l25;
  2163. yyprintf((stderr, " ok %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2164. return 1;
  2165. l25:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2166. yyprintf((stderr, " fail %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2167. return 0;
  2168. }
  2169. YY_RULE(int) yy_MarkTagClose(GREG *G)
  2170. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2171. yyprintf((stderr, "%s\n", "MarkTagClose")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l34; if (!yy_LocMarker(G)) { goto l34; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '<')) goto l34; if (!yy_Spnl(G)) { goto l34; } if (!yymatchChar(G, '/')) goto l34;
  2172. { int yypos35= G->pos, yythunkpos35= G->thunkpos; if (!yymatchString(G, "mark")) goto l36; goto l35;
  2173. l36:; G->pos= yypos35; G->thunkpos= yythunkpos35; if (!yymatchString(G, "MARK")) goto l34;
  2174. }
  2175. l35:; if (!yy_Spnl(G)) { goto l34; } if (!yymatchChar(G, '>')) goto l34; yyText(G, G->begin, G->end); if (!(YY_END)) goto l34; yyDo(G, yy_1_MarkTagClose, G->begin, G->end);
  2176. yyprintf((stderr, " ok %s @ %s\n", "MarkTagClose", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2177. return 1;
  2178. l34:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2179. yyprintf((stderr, " fail %s @ %s\n", "MarkTagClose", G->buf+G->pos));
  2180. return 0;
  2181. }
  2182. YY_RULE(int) yy_MarkTagText(GREG *G)
  2183. {
  2184. yyprintf((stderr, "%s\n", "MarkTagText"));
  2185. l38:;
  2186. { int yypos39= G->pos, yythunkpos39= G->thunkpos;
  2187. { int yypos40= G->pos, yythunkpos40= G->thunkpos; if (!yy_MarkTagClose(G)) { goto l40; } goto l39;
  2188. l40:; G->pos= yypos40; G->thunkpos= yythunkpos40;
  2189. }
  2190. { int yypos41= G->pos, yythunkpos41= G->thunkpos; if (!yy_RawHtml(G)) { goto l42; } goto l41;
  2191. l42:; G->pos= yypos41; G->thunkpos= yythunkpos41; if (!yymatchDot(G)) goto l39;
  2192. }
  2193. l41:; goto l38;
  2194. l39:; G->pos= yypos39; G->thunkpos= yythunkpos39;
  2195. }
  2196. yyprintf((stderr, " ok %s @ %s\n", "MarkTagText", G->buf+G->pos));
  2197. return 1;
  2198. }
  2199. YY_RULE(int) yy_MarkTagOpen(GREG *G)
  2200. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2201. yyprintf((stderr, "%s\n", "MarkTagOpen")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l43; if (!yy_LocMarker(G)) { goto l43; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '<')) goto l43; if (!yy_Spnl(G)) { goto l43; }
  2202. { int yypos44= G->pos, yythunkpos44= G->thunkpos; if (!yymatchString(G, "mark")) goto l45; goto l44;
  2203. l45:; G->pos= yypos44; G->thunkpos= yythunkpos44; if (!yymatchString(G, "MARK")) goto l43;
  2204. }
  2205. l44:; if (!yy_Spnl(G)) { goto l43; }
  2206. l46:;
  2207. { int yypos47= G->pos, yythunkpos47= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l47; } goto l46;
  2208. l47:; G->pos= yypos47; G->thunkpos= yythunkpos47;
  2209. } if (!yymatchChar(G, '>')) goto l43; yyText(G, G->begin, G->end); if (!(YY_END)) goto l43; yyDo(G, yy_1_MarkTagOpen, G->begin, G->end);
  2210. yyprintf((stderr, " ok %s @ %s\n", "MarkTagOpen", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2211. return 1;
  2212. l43:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2213. yyprintf((stderr, " fail %s @ %s\n", "MarkTagOpen", G->buf+G->pos));
  2214. return 0;
  2215. }
  2216. YY_RULE(int) yy_Ticks5(GREG *G)
  2217. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2218. yyprintf((stderr, "%s\n", "Ticks5")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l48; if (!yymatchString(G, "`````")) goto l48; yyText(G, G->begin, G->end); if (!(YY_END)) goto l48;
  2219. { int yypos49= G->pos, yythunkpos49= G->thunkpos; if (!yymatchChar(G, '`')) goto l49; goto l48;
  2220. l49:; G->pos= yypos49; G->thunkpos= yythunkpos49;
  2221. } yyDo(G, yy_1_Ticks5, G->begin, G->end);
  2222. yyprintf((stderr, " ok %s @ %s\n", "Ticks5", G->buf+G->pos));
  2223. return 1;
  2224. l48:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2225. yyprintf((stderr, " fail %s @ %s\n", "Ticks5", G->buf+G->pos));
  2226. return 0;
  2227. }
  2228. YY_RULE(int) yy_Ticks4(GREG *G)
  2229. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2230. yyprintf((stderr, "%s\n", "Ticks4")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l50; if (!yymatchString(G, "````")) goto l50; yyText(G, G->begin, G->end); if (!(YY_END)) goto l50;
  2231. { int yypos51= G->pos, yythunkpos51= G->thunkpos; if (!yymatchChar(G, '`')) goto l51; goto l50;
  2232. l51:; G->pos= yypos51; G->thunkpos= yythunkpos51;
  2233. } yyDo(G, yy_1_Ticks4, G->begin, G->end);
  2234. yyprintf((stderr, " ok %s @ %s\n", "Ticks4", G->buf+G->pos));
  2235. return 1;
  2236. l50:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2237. yyprintf((stderr, " fail %s @ %s\n", "Ticks4", G->buf+G->pos));
  2238. return 0;
  2239. }
  2240. YY_RULE(int) yy_Ticks3(GREG *G)
  2241. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2242. yyprintf((stderr, "%s\n", "Ticks3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l52; if (!yymatchString(G, "```")) goto l52; yyText(G, G->begin, G->end); if (!(YY_END)) goto l52;
  2243. { int yypos53= G->pos, yythunkpos53= G->thunkpos; if (!yymatchChar(G, '`')) goto l53; goto l52;
  2244. l53:; G->pos= yypos53; G->thunkpos= yythunkpos53;
  2245. } yyDo(G, yy_1_Ticks3, G->begin, G->end);
  2246. yyprintf((stderr, " ok %s @ %s\n", "Ticks3", G->buf+G->pos));
  2247. return 1;
  2248. l52:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2249. yyprintf((stderr, " fail %s @ %s\n", "Ticks3", G->buf+G->pos));
  2250. return 0;
  2251. }
  2252. YY_RULE(int) yy_Ticks2(GREG *G)
  2253. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2254. yyprintf((stderr, "%s\n", "Ticks2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l54; if (!yymatchString(G, "``")) goto l54; yyText(G, G->begin, G->end); if (!(YY_END)) goto l54;
  2255. { int yypos55= G->pos, yythunkpos55= G->thunkpos; if (!yymatchChar(G, '`')) goto l55; goto l54;
  2256. l55:; G->pos= yypos55; G->thunkpos= yythunkpos55;
  2257. } yyDo(G, yy_1_Ticks2, G->begin, G->end);
  2258. yyprintf((stderr, " ok %s @ %s\n", "Ticks2", G->buf+G->pos));
  2259. return 1;
  2260. l54:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2261. yyprintf((stderr, " fail %s @ %s\n", "Ticks2", G->buf+G->pos));
  2262. return 0;
  2263. }
  2264. YY_RULE(int) yy_Ticks1(GREG *G)
  2265. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2266. yyprintf((stderr, "%s\n", "Ticks1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l56; if (!yymatchChar(G, '`')) goto l56; yyText(G, G->begin, G->end); if (!(YY_END)) goto l56;
  2267. { int yypos57= G->pos, yythunkpos57= G->thunkpos; if (!yymatchChar(G, '`')) goto l57; goto l56;
  2268. l57:; G->pos= yypos57; G->thunkpos= yythunkpos57;
  2269. } yyDo(G, yy_1_Ticks1, G->begin, G->end);
  2270. yyprintf((stderr, " ok %s @ %s\n", "Ticks1", G->buf+G->pos));
  2271. return 1;
  2272. l56:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2273. yyprintf((stderr, " fail %s @ %s\n", "Ticks1", G->buf+G->pos));
  2274. return 0;
  2275. }
  2276. YY_RULE(int) yy_SkipBlock(GREG *G)
  2277. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2278. yyprintf((stderr, "%s\n", "SkipBlock"));
  2279. { int yypos59= G->pos, yythunkpos59= G->thunkpos;
  2280. { int yypos63= G->pos, yythunkpos63= G->thunkpos; if (!yy_BlankLine(G)) { goto l63; } goto l60;
  2281. l63:; G->pos= yypos63; G->thunkpos= yythunkpos63;
  2282. } if (!yy_RawLine(G)) { goto l60; }
  2283. l61:;
  2284. { int yypos62= G->pos, yythunkpos62= G->thunkpos;
  2285. { int yypos64= G->pos, yythunkpos64= G->thunkpos; if (!yy_BlankLine(G)) { goto l64; } goto l62;
  2286. l64:; G->pos= yypos64; G->thunkpos= yythunkpos64;
  2287. } if (!yy_RawLine(G)) { goto l62; } goto l61;
  2288. l62:; G->pos= yypos62; G->thunkpos= yythunkpos62;
  2289. }
  2290. l65:;
  2291. { int yypos66= G->pos, yythunkpos66= G->thunkpos; if (!yy_BlankLine(G)) { goto l66; } goto l65;
  2292. l66:; G->pos= yypos66; G->thunkpos= yythunkpos66;
  2293. } goto l59;
  2294. l60:; G->pos= yypos59; G->thunkpos= yythunkpos59; if (!yy_BlankLine(G)) { goto l58; }
  2295. l67:;
  2296. { int yypos68= G->pos, yythunkpos68= G->thunkpos; if (!yy_BlankLine(G)) { goto l68; } goto l67;
  2297. l68:; G->pos= yypos68; G->thunkpos= yythunkpos68;
  2298. }
  2299. }
  2300. l59:;
  2301. yyprintf((stderr, " ok %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2302. return 1;
  2303. l58:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2304. yyprintf((stderr, " fail %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2305. return 0;
  2306. }
  2307. YY_RULE(int) yy_References(GREG *G)
  2308. {
  2309. yyprintf((stderr, "%s\n", "References"));
  2310. l70:;
  2311. { int yypos71= G->pos, yythunkpos71= G->thunkpos;
  2312. { int yypos72= G->pos, yythunkpos72= G->thunkpos; if (!yy_Reference(G)) { goto l73; } goto l72;
  2313. l73:; G->pos= yypos72; G->thunkpos= yythunkpos72; if (!yy_SkipBlock(G)) { goto l71; }
  2314. }
  2315. l72:; goto l70;
  2316. l71:; G->pos= yypos71; G->thunkpos= yythunkpos71;
  2317. }
  2318. yyprintf((stderr, " ok %s @ %s\n", "References", G->buf+G->pos));
  2319. return 1;
  2320. }
  2321. YY_RULE(int) yy_EmptyTitle(GREG *G)
  2322. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2323. yyprintf((stderr, "%s\n", "EmptyTitle")); if (!yymatchString(G, "")) goto l74;
  2324. yyprintf((stderr, " ok %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2325. return 1;
  2326. l74:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2327. yyprintf((stderr, " fail %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2328. return 0;
  2329. }
  2330. YY_RULE(int) yy_RefTitleParens(GREG *G)
  2331. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2332. yyprintf((stderr, "%s\n", "RefTitleParens")); if (!yy_Spnl(G)) { goto l75; } if (!yymatchChar(G, '(')) goto l75;
  2333. l76:;
  2334. { int yypos77= G->pos, yythunkpos77= G->thunkpos;
  2335. { int yypos78= G->pos, yythunkpos78= G->thunkpos;
  2336. { int yypos79= G->pos, yythunkpos79= G->thunkpos; if (!yymatchChar(G, ')')) goto l80; if (!yy_Sp(G)) { goto l80; } if (!yy_Newline(G)) { goto l80; } goto l79;
  2337. l80:; G->pos= yypos79; G->thunkpos= yythunkpos79; if (!yy_Newline(G)) { goto l78; }
  2338. }
  2339. l79:; goto l77;
  2340. l78:; G->pos= yypos78; G->thunkpos= yythunkpos78;
  2341. } if (!yymatchDot(G)) goto l77; goto l76;
  2342. l77:; G->pos= yypos77; G->thunkpos= yythunkpos77;
  2343. } if (!yymatchChar(G, ')')) goto l75;
  2344. yyprintf((stderr, " ok %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2345. return 1;
  2346. l75:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2347. yyprintf((stderr, " fail %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2348. return 0;
  2349. }
  2350. YY_RULE(int) yy_RefTitleDouble(GREG *G)
  2351. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2352. yyprintf((stderr, "%s\n", "RefTitleDouble")); if (!yy_Spnl(G)) { goto l81; } if (!yymatchChar(G, '"')) goto l81;
  2353. l82:;
  2354. { int yypos83= G->pos, yythunkpos83= G->thunkpos;
  2355. { int yypos84= G->pos, yythunkpos84= G->thunkpos;
  2356. { int yypos85= G->pos, yythunkpos85= G->thunkpos; if (!yymatchChar(G, '"')) goto l86; if (!yy_Sp(G)) { goto l86; } if (!yy_Newline(G)) { goto l86; } goto l85;
  2357. l86:; G->pos= yypos85; G->thunkpos= yythunkpos85; if (!yy_Newline(G)) { goto l84; }
  2358. }
  2359. l85:; goto l83;
  2360. l84:; G->pos= yypos84; G->thunkpos= yythunkpos84;
  2361. } if (!yymatchDot(G)) goto l83; goto l82;
  2362. l83:; G->pos= yypos83; G->thunkpos= yythunkpos83;
  2363. } if (!yymatchChar(G, '"')) goto l81;
  2364. yyprintf((stderr, " ok %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2365. return 1;
  2366. l81:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2367. yyprintf((stderr, " fail %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2368. return 0;
  2369. }
  2370. YY_RULE(int) yy_RefTitleSingle(GREG *G)
  2371. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2372. yyprintf((stderr, "%s\n", "RefTitleSingle")); if (!yy_Spnl(G)) { goto l87; } if (!yymatchChar(G, '\'')) goto l87;
  2373. l88:;
  2374. { int yypos89= G->pos, yythunkpos89= G->thunkpos;
  2375. { int yypos90= G->pos, yythunkpos90= G->thunkpos;
  2376. { int yypos91= G->pos, yythunkpos91= G->thunkpos; if (!yymatchChar(G, '\'')) goto l92; if (!yy_Sp(G)) { goto l92; } if (!yy_Newline(G)) { goto l92; } goto l91;
  2377. l92:; G->pos= yypos91; G->thunkpos= yythunkpos91; if (!yy_Newline(G)) { goto l90; }
  2378. }
  2379. l91:; goto l89;
  2380. l90:; G->pos= yypos90; G->thunkpos= yythunkpos90;
  2381. } if (!yymatchDot(G)) goto l89; goto l88;
  2382. l89:; G->pos= yypos89; G->thunkpos= yythunkpos89;
  2383. } if (!yymatchChar(G, '\'')) goto l87;
  2384. yyprintf((stderr, " ok %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2385. return 1;
  2386. l87:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2387. yyprintf((stderr, " fail %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2388. return 0;
  2389. }
  2390. YY_RULE(int) yy_LabelInline(GREG *G)
  2391. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2392. yyprintf((stderr, "%s\n", "LabelInline"));
  2393. { int yypos94= G->pos, yythunkpos94= G->thunkpos; if (!yy_Str(G)) { goto l95; } goto l94;
  2394. l95:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_Endline(G)) { goto l96; } goto l94;
  2395. l96:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_Space(G)) { goto l97; } goto l94;
  2396. l97:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_RawHtml(G)) { goto l98; } goto l94;
  2397. l98:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_Entity(G)) { goto l99; } goto l94;
  2398. l99:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_EscapedChar(G)) { goto l100; } goto l94;
  2399. l100:; G->pos= yypos94; G->thunkpos= yythunkpos94; if (!yy_Symbol(G)) { goto l93; }
  2400. }
  2401. l94:;
  2402. yyprintf((stderr, " ok %s @ %s\n", "LabelInline", G->buf+G->pos));
  2403. return 1;
  2404. l93:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2405. yyprintf((stderr, " fail %s @ %s\n", "LabelInline", G->buf+G->pos));
  2406. return 0;
  2407. }
  2408. YY_RULE(int) yy_RefTitle(GREG *G)
  2409. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2410. yyprintf((stderr, "%s\n", "RefTitle"));
  2411. { int yypos102= G->pos, yythunkpos102= G->thunkpos; if (!yy_RefTitleSingle(G)) { goto l103; } goto l102;
  2412. l103:; G->pos= yypos102; G->thunkpos= yythunkpos102; if (!yy_RefTitleDouble(G)) { goto l104; } goto l102;
  2413. l104:; G->pos= yypos102; G->thunkpos= yythunkpos102; if (!yy_RefTitleParens(G)) { goto l105; } goto l102;
  2414. l105:; G->pos= yypos102; G->thunkpos= yythunkpos102; if (!yy_EmptyTitle(G)) { goto l101; }
  2415. }
  2416. l102:;
  2417. yyprintf((stderr, " ok %s @ %s\n", "RefTitle", G->buf+G->pos));
  2418. return 1;
  2419. l101:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2420. yyprintf((stderr, " fail %s @ %s\n", "RefTitle", G->buf+G->pos));
  2421. return 0;
  2422. }
  2423. YY_RULE(int) yy_RefSrc(GREG *G)
  2424. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2425. yyprintf((stderr, "%s\n", "RefSrc")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l106; if (!yy_Nonspacechar(G)) { goto l106; }
  2426. l107:;
  2427. { int yypos108= G->pos, yythunkpos108= G->thunkpos; if (!yy_Nonspacechar(G)) { goto l108; } goto l107;
  2428. l108:; G->pos= yypos108; G->thunkpos= yythunkpos108;
  2429. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l106; yyDo(G, yy_1_RefSrc, G->begin, G->end);
  2430. yyprintf((stderr, " ok %s @ %s\n", "RefSrc", G->buf+G->pos));
  2431. return 1;
  2432. l106:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2433. yyprintf((stderr, " fail %s @ %s\n", "RefSrc", G->buf+G->pos));
  2434. return 0;
  2435. }
  2436. YY_RULE(int) yy_AutoLinkEmail(GREG *G)
  2437. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2438. yyprintf((stderr, "%s\n", "AutoLinkEmail")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l109; if (!yy_LocMarker(G)) { goto l109; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '<')) goto l109;
  2439. { int yypos110= G->pos, yythunkpos110= G->thunkpos; if (!yymatchString(G, "mailto:")) goto l110; goto l111;
  2440. l110:; G->pos= yypos110; G->thunkpos= yythunkpos110;
  2441. }
  2442. l111:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l109; 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 l109;
  2443. l112:;
  2444. { int yypos113= G->pos, yythunkpos113= 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 l113; goto l112;
  2445. l113:; G->pos= yypos113; G->thunkpos= yythunkpos113;
  2446. } if (!yymatchChar(G, '@')) goto l109;
  2447. { int yypos116= G->pos, yythunkpos116= G->thunkpos; if (!yy_Newline(G)) { goto l116; } goto l109;
  2448. l116:; G->pos= yypos116; G->thunkpos= yythunkpos116;
  2449. }
  2450. { int yypos117= G->pos, yythunkpos117= G->thunkpos; if (!yymatchChar(G, '>')) goto l117; goto l109;
  2451. l117:; G->pos= yypos117; G->thunkpos= yythunkpos117;
  2452. } if (!yymatchDot(G)) goto l109;
  2453. l114:;
  2454. { int yypos115= G->pos, yythunkpos115= G->thunkpos;
  2455. { int yypos118= G->pos, yythunkpos118= G->thunkpos; if (!yy_Newline(G)) { goto l118; } goto l115;
  2456. l118:; G->pos= yypos118; G->thunkpos= yythunkpos118;
  2457. }
  2458. { int yypos119= G->pos, yythunkpos119= G->thunkpos; if (!yymatchChar(G, '>')) goto l119; goto l115;
  2459. l119:; G->pos= yypos119; G->thunkpos= yythunkpos119;
  2460. } if (!yymatchDot(G)) goto l115; goto l114;
  2461. l115:; G->pos= yypos115; G->thunkpos= yythunkpos115;
  2462. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l109; yyDo(G, yy_2_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '>')) goto l109; yyText(G, G->begin, G->end); if (!(YY_END)) goto l109; yyDo(G, yy_3_AutoLinkEmail, G->begin, G->end);
  2463. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkEmail", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2464. return 1;
  2465. l109:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2466. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkEmail", G->buf+G->pos));
  2467. return 0;
  2468. }
  2469. YY_RULE(int) yy_AutoLinkUrl(GREG *G)
  2470. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2471. yyprintf((stderr, "%s\n", "AutoLinkUrl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l120; if (!yy_LocMarker(G)) { goto l120; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '<')) goto l120; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l120; 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 l120;
  2472. l121:;
  2473. { int yypos122= G->pos, yythunkpos122= 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 l122; goto l121;
  2474. l122:; G->pos= yypos122; G->thunkpos= yythunkpos122;
  2475. } if (!yymatchString(G, "://")) goto l120;
  2476. { int yypos125= G->pos, yythunkpos125= G->thunkpos; if (!yy_Newline(G)) { goto l125; } goto l120;
  2477. l125:; G->pos= yypos125; G->thunkpos= yythunkpos125;
  2478. }
  2479. { int yypos126= G->pos, yythunkpos126= G->thunkpos; if (!yymatchChar(G, '>')) goto l126; goto l120;
  2480. l126:; G->pos= yypos126; G->thunkpos= yythunkpos126;
  2481. } if (!yymatchDot(G)) goto l120;
  2482. l123:;
  2483. { int yypos124= G->pos, yythunkpos124= G->thunkpos;
  2484. { int yypos127= G->pos, yythunkpos127= G->thunkpos; if (!yy_Newline(G)) { goto l127; } goto l124;
  2485. l127:; G->pos= yypos127; G->thunkpos= yythunkpos127;
  2486. }
  2487. { int yypos128= G->pos, yythunkpos128= G->thunkpos; if (!yymatchChar(G, '>')) goto l128; goto l124;
  2488. l128:; G->pos= yypos128; G->thunkpos= yythunkpos128;
  2489. } if (!yymatchDot(G)) goto l124; goto l123;
  2490. l124:; G->pos= yypos124; G->thunkpos= yythunkpos124;
  2491. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l120; yyDo(G, yy_2_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '>')) goto l120; yyText(G, G->begin, G->end); if (!(YY_END)) goto l120; yyDo(G, yy_3_AutoLinkUrl, G->begin, G->end);
  2492. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkUrl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2493. return 1;
  2494. l120:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2495. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkUrl", G->buf+G->pos));
  2496. return 0;
  2497. }
  2498. YY_RULE(int) yy_ImageSizeHeight(GREG *G)
  2499. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2500. yyprintf((stderr, "%s\n", "ImageSizeHeight")); if (!yymatchString(G, "=x")) goto l129; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l129;
  2501. l130:;
  2502. { int yypos131= G->pos, yythunkpos131= 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 l131; goto l130;
  2503. l131:; G->pos= yypos131; G->thunkpos= yythunkpos131;
  2504. }
  2505. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2506. return 1;
  2507. l129:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2508. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2509. return 0;
  2510. }
  2511. YY_RULE(int) yy_ImageSizeWidth(GREG *G)
  2512. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2513. yyprintf((stderr, "%s\n", "ImageSizeWidth")); if (!yymatchChar(G, '=')) 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;
  2514. l133:;
  2515. { 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;
  2516. l134:; G->pos= yypos134; G->thunkpos= yythunkpos134;
  2517. } if (!yymatchChar(G, 'x')) goto l132;
  2518. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2519. return 1;
  2520. l132:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2521. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2522. return 0;
  2523. }
  2524. YY_RULE(int) yy_ImageSizeComplete(GREG *G)
  2525. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2526. yyprintf((stderr, "%s\n", "ImageSizeComplete")); 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;
  2527. l136:;
  2528. { 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;
  2529. l137:; G->pos= yypos137; G->thunkpos= yythunkpos137;
  2530. } if (!yymatchChar(G, 'x')) 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;
  2531. l138:;
  2532. { int yypos139= G->pos, yythunkpos139= 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 l139; goto l138;
  2533. l139:; G->pos= yypos139; G->thunkpos= yythunkpos139;
  2534. }
  2535. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2536. return 1;
  2537. l135:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2538. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2539. return 0;
  2540. }
  2541. YY_RULE(int) yy_TitleDoubleExt(GREG *G)
  2542. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2543. yyprintf((stderr, "%s\n", "TitleDoubleExt")); if (!yymatchChar(G, '"')) goto l140;
  2544. l141:;
  2545. { int yypos142= G->pos, yythunkpos142= G->thunkpos;
  2546. { int yypos143= G->pos, yythunkpos143= G->thunkpos;
  2547. { int yypos144= G->pos, yythunkpos144= G->thunkpos; if (!yymatchChar(G, '"')) goto l145; goto l144;
  2548. l145:; G->pos= yypos144; G->thunkpos= yythunkpos144; if (!yy_Newline(G)) { goto l143; }
  2549. }
  2550. l144:; goto l142;
  2551. l143:; G->pos= yypos143; G->thunkpos= yythunkpos143;
  2552. } if (!yymatchDot(G)) goto l142; goto l141;
  2553. l142:; G->pos= yypos142; G->thunkpos= yythunkpos142;
  2554. } if (!yymatchChar(G, '"')) goto l140;
  2555. yyprintf((stderr, " ok %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2556. return 1;
  2557. l140:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2558. yyprintf((stderr, " fail %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2559. return 0;
  2560. }
  2561. YY_RULE(int) yy_TitleSingleExt(GREG *G)
  2562. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2563. yyprintf((stderr, "%s\n", "TitleSingleExt")); if (!yymatchChar(G, '\'')) goto l146;
  2564. l147:;
  2565. { int yypos148= G->pos, yythunkpos148= G->thunkpos;
  2566. { int yypos149= G->pos, yythunkpos149= G->thunkpos;
  2567. { int yypos150= G->pos, yythunkpos150= G->thunkpos; if (!yymatchChar(G, '\'')) goto l151; goto l150;
  2568. l151:; G->pos= yypos150; G->thunkpos= yythunkpos150; if (!yy_Newline(G)) { goto l149; }
  2569. }
  2570. l150:; goto l148;
  2571. l149:; G->pos= yypos149; G->thunkpos= yythunkpos149;
  2572. } if (!yymatchDot(G)) goto l148; goto l147;
  2573. l148:; G->pos= yypos148; G->thunkpos= yythunkpos148;
  2574. } if (!yymatchChar(G, '\'')) goto l146;
  2575. yyprintf((stderr, " ok %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2576. return 1;
  2577. l146:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2578. yyprintf((stderr, " fail %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2579. return 0;
  2580. }
  2581. YY_RULE(int) yy_TitleDouble(GREG *G)
  2582. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2583. yyprintf((stderr, "%s\n", "TitleDouble")); if (!yymatchChar(G, '"')) goto l152;
  2584. l153:;
  2585. { int yypos154= G->pos, yythunkpos154= G->thunkpos;
  2586. { int yypos155= G->pos, yythunkpos155= G->thunkpos; if (!yymatchChar(G, '"')) goto l155; if (!yy_Sp(G)) { goto l155; }
  2587. { int yypos156= G->pos, yythunkpos156= G->thunkpos; if (!yymatchChar(G, ')')) goto l157; goto l156;
  2588. l157:; G->pos= yypos156; G->thunkpos= yythunkpos156; if (!yy_Newline(G)) { goto l155; }
  2589. }
  2590. l156:; goto l154;
  2591. l155:; G->pos= yypos155; G->thunkpos= yythunkpos155;
  2592. } if (!yymatchDot(G)) goto l154; goto l153;
  2593. l154:; G->pos= yypos154; G->thunkpos= yythunkpos154;
  2594. } if (!yymatchChar(G, '"')) goto l152;
  2595. yyprintf((stderr, " ok %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2596. return 1;
  2597. l152:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2598. yyprintf((stderr, " fail %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2599. return 0;
  2600. }
  2601. YY_RULE(int) yy_TitleSingle(GREG *G)
  2602. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2603. yyprintf((stderr, "%s\n", "TitleSingle")); if (!yymatchChar(G, '\'')) goto l158;
  2604. l159:;
  2605. { int yypos160= G->pos, yythunkpos160= G->thunkpos;
  2606. { int yypos161= G->pos, yythunkpos161= G->thunkpos; if (!yymatchChar(G, '\'')) goto l161; if (!yy_Sp(G)) { goto l161; }
  2607. { int yypos162= G->pos, yythunkpos162= G->thunkpos; if (!yymatchChar(G, ')')) goto l163; goto l162;
  2608. l163:; G->pos= yypos162; G->thunkpos= yythunkpos162; if (!yy_Newline(G)) { goto l161; }
  2609. }
  2610. l162:; goto l160;
  2611. l161:; G->pos= yypos161; G->thunkpos= yythunkpos161;
  2612. } if (!yymatchDot(G)) goto l160; goto l159;
  2613. l160:; G->pos= yypos160; G->thunkpos= yythunkpos160;
  2614. } if (!yymatchChar(G, '\'')) goto l158;
  2615. yyprintf((stderr, " ok %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2616. return 1;
  2617. l158:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2618. yyprintf((stderr, " fail %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2619. return 0;
  2620. }
  2621. YY_RULE(int) yy_SourceContents(GREG *G)
  2622. {
  2623. yyprintf((stderr, "%s\n", "SourceContents"));
  2624. l165:;
  2625. { int yypos166= G->pos, yythunkpos166= G->thunkpos;
  2626. { int yypos167= G->pos, yythunkpos167= G->thunkpos;
  2627. { int yypos171= G->pos, yythunkpos171= G->thunkpos; if (!yymatchChar(G, '(')) goto l171; goto l168;
  2628. l171:; G->pos= yypos171; G->thunkpos= yythunkpos171;
  2629. }
  2630. { int yypos172= G->pos, yythunkpos172= G->thunkpos; if (!yymatchChar(G, ')')) goto l172; goto l168;
  2631. l172:; G->pos= yypos172; G->thunkpos= yythunkpos172;
  2632. }
  2633. { int yypos173= G->pos, yythunkpos173= G->thunkpos; if (!yymatchChar(G, '>')) goto l173; goto l168;
  2634. l173:; G->pos= yypos173; G->thunkpos= yythunkpos173;
  2635. } if (!yy_Nonspacechar(G)) { goto l168; }
  2636. l169:;
  2637. { int yypos170= G->pos, yythunkpos170= G->thunkpos;
  2638. { int yypos174= G->pos, yythunkpos174= G->thunkpos; if (!yymatchChar(G, '(')) goto l174; goto l170;
  2639. l174:; G->pos= yypos174; G->thunkpos= yythunkpos174;
  2640. }
  2641. { int yypos175= G->pos, yythunkpos175= G->thunkpos; if (!yymatchChar(G, ')')) goto l175; goto l170;
  2642. l175:; G->pos= yypos175; G->thunkpos= yythunkpos175;
  2643. }
  2644. { int yypos176= G->pos, yythunkpos176= G->thunkpos; if (!yymatchChar(G, '>')) goto l176; goto l170;
  2645. l176:; G->pos= yypos176; G->thunkpos= yythunkpos176;
  2646. } if (!yy_Nonspacechar(G)) { goto l170; } goto l169;
  2647. l170:; G->pos= yypos170; G->thunkpos= yythunkpos170;
  2648. } goto l167;
  2649. l168:; G->pos= yypos167; G->thunkpos= yythunkpos167; if (!yymatchChar(G, '(')) goto l166; if (!yy_SourceContents(G)) { goto l166; } if (!yymatchChar(G, ')')) goto l166;
  2650. }
  2651. l167:; goto l165;
  2652. l166:; G->pos= yypos166; G->thunkpos= yythunkpos166;
  2653. }
  2654. yyprintf((stderr, " ok %s @ %s\n", "SourceContents", G->buf+G->pos));
  2655. return 1;
  2656. }
  2657. YY_RULE(int) yy_ImageSize(GREG *G)
  2658. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2659. yyprintf((stderr, "%s\n", "ImageSize"));
  2660. { int yypos178= G->pos, yythunkpos178= G->thunkpos; if (!yy_ImageSizeComplete(G)) { goto l179; } goto l178;
  2661. l179:; G->pos= yypos178; G->thunkpos= yythunkpos178; if (!yy_ImageSizeWidth(G)) { goto l180; } goto l178;
  2662. l180:; G->pos= yypos178; G->thunkpos= yythunkpos178; if (!yy_ImageSizeHeight(G)) { goto l181; } goto l178;
  2663. l181:; G->pos= yypos178; G->thunkpos= yythunkpos178; if (!yymatchString(G, "")) goto l177;
  2664. }
  2665. l178:;
  2666. yyprintf((stderr, " ok %s @ %s\n", "ImageSize", G->buf+G->pos));
  2667. return 1;
  2668. l177:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2669. yyprintf((stderr, " fail %s @ %s\n", "ImageSize", G->buf+G->pos));
  2670. return 0;
  2671. }
  2672. YY_RULE(int) yy_TitleExt(GREG *G)
  2673. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2674. yyprintf((stderr, "%s\n", "TitleExt"));
  2675. { int yypos183= G->pos, yythunkpos183= G->thunkpos; if (!yy_TitleSingleExt(G)) { goto l184; } goto l183;
  2676. l184:; G->pos= yypos183; G->thunkpos= yythunkpos183; if (!yy_TitleDoubleExt(G)) { goto l185; } goto l183;
  2677. l185:; G->pos= yypos183; G->thunkpos= yythunkpos183; if (!yymatchString(G, "")) goto l182;
  2678. }
  2679. l183:;
  2680. yyprintf((stderr, " ok %s @ %s\n", "TitleExt", G->buf+G->pos));
  2681. return 1;
  2682. l182:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2683. yyprintf((stderr, " fail %s @ %s\n", "TitleExt", G->buf+G->pos));
  2684. return 0;
  2685. }
  2686. YY_RULE(int) yy_Title(GREG *G)
  2687. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2688. yyprintf((stderr, "%s\n", "Title"));
  2689. { int yypos187= G->pos, yythunkpos187= G->thunkpos; if (!yy_TitleSingle(G)) { goto l188; } goto l187;
  2690. l188:; G->pos= yypos187; G->thunkpos= yythunkpos187; if (!yy_TitleDouble(G)) { goto l189; } goto l187;
  2691. l189:; G->pos= yypos187; G->thunkpos= yythunkpos187; if (!yymatchString(G, "")) goto l186;
  2692. }
  2693. l187:;
  2694. yyprintf((stderr, " ok %s @ %s\n", "Title", G->buf+G->pos));
  2695. return 1;
  2696. l186:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2697. yyprintf((stderr, " fail %s @ %s\n", "Title", G->buf+G->pos));
  2698. return 0;
  2699. }
  2700. YY_RULE(int) yy_Source(GREG *G)
  2701. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2702. yyprintf((stderr, "%s\n", "Source")); yyDo(G, yy_1_Source, G->begin, G->end);
  2703. { int yypos191= G->pos, yythunkpos191= G->thunkpos; if (!yymatchChar(G, '<')) goto l192; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l192; if (!yy_SourceContents(G)) { goto l192; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l192; yyDo(G, yy_2_Source, G->begin, G->end); if (!yymatchChar(G, '>')) goto l192; goto l191;
  2704. l192:; G->pos= yypos191; G->thunkpos= yythunkpos191; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l190; if (!yy_SourceContents(G)) { goto l190; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l190; yyDo(G, yy_3_Source, G->begin, G->end);
  2705. }
  2706. l191:;
  2707. yyprintf((stderr, " ok %s @ %s\n", "Source", G->buf+G->pos));
  2708. return 1;
  2709. l190:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2710. yyprintf((stderr, " fail %s @ %s\n", "Source", G->buf+G->pos));
  2711. return 0;
  2712. }
  2713. YY_RULE(int) yy_Label(GREG *G)
  2714. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2715. yyprintf((stderr, "%s\n", "Label")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l193; if (!yy_LocMarker(G)) { goto l193; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '[')) goto l193;
  2716. { int yypos194= G->pos, yythunkpos194= G->thunkpos;
  2717. { int yypos196= G->pos, yythunkpos196= G->thunkpos; if (!yymatchChar(G, '^')) goto l196; goto l195;
  2718. l196:; G->pos= yypos196; G->thunkpos= yythunkpos196;
  2719. } yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l195; goto l194;
  2720. l195:; G->pos= yypos194; G->thunkpos= yythunkpos194;
  2721. { int yypos197= G->pos, yythunkpos197= G->thunkpos; if (!yymatchDot(G)) goto l193; G->pos= yypos197; G->thunkpos= yythunkpos197;
  2722. } yyText(G, G->begin, G->end); if (!( !EXT(pmh_EXT_NOTES) )) goto l193;
  2723. }
  2724. l194:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l193;
  2725. l198:;
  2726. { int yypos199= G->pos, yythunkpos199= G->thunkpos;
  2727. { int yypos200= G->pos, yythunkpos200= G->thunkpos; if (!yymatchChar(G, ']')) goto l200; goto l199;
  2728. l200:; G->pos= yypos200; G->thunkpos= yythunkpos200;
  2729. }
  2730. { int yypos201= G->pos, yythunkpos201= G->thunkpos; if (!yymatchChar(G, '[')) goto l201; goto l199;
  2731. l201:; G->pos= yypos201; G->thunkpos= yythunkpos201;
  2732. } if (!yy_LabelInline(G)) { goto l199; } goto l198;
  2733. l199:; G->pos= yypos199; G->thunkpos= yythunkpos199;
  2734. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l193; yyDo(G, yy_1_Label, G->begin, G->end); if (!yymatchChar(G, ']')) goto l193; yyText(G, G->begin, G->end); if (!(YY_END)) goto l193; yyDo(G, yy_2_Label, G->begin, G->end);
  2735. yyprintf((stderr, " ok %s @ %s\n", "Label", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2736. return 1;
  2737. l193:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2738. yyprintf((stderr, " fail %s @ %s\n", "Label", G->buf+G->pos));
  2739. return 0;
  2740. }
  2741. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G)
  2742. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2743. yyprintf((stderr, "%s\n", "ReferenceLinkSingle")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l202; if (!yy_Label(G)) { goto l202; } yyDo(G, yySet, -1, 0);
  2744. { int yypos203= G->pos, yythunkpos203= G->thunkpos; if (!yy_Spnl(G)) { goto l203; } if (!yymatchString(G, "[]")) goto l203; goto l204;
  2745. l203:; G->pos= yypos203; G->thunkpos= yythunkpos203;
  2746. }
  2747. l204:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l202; yyDo(G, yy_1_ReferenceLinkSingle, G->begin, G->end);
  2748. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2749. return 1;
  2750. l202:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2751. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos));
  2752. return 0;
  2753. }
  2754. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G)
  2755. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2756. yyprintf((stderr, "%s\n", "ReferenceLinkDouble")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l205; if (!yy_Label(G)) { goto l205; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l205; }
  2757. { int yypos206= G->pos, yythunkpos206= G->thunkpos; if (!yymatchString(G, "[]")) goto l206; goto l205;
  2758. l206:; G->pos= yypos206; G->thunkpos= yythunkpos206;
  2759. } if (!yy_Label(G)) { goto l205; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_END)) goto l205; yyDo(G, yy_1_ReferenceLinkDouble, G->begin, G->end);
  2760. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2761. return 1;
  2762. l205:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2763. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos));
  2764. return 0;
  2765. }
  2766. YY_RULE(int) yy_AutoLink(GREG *G)
  2767. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2768. yyprintf((stderr, "%s\n", "AutoLink"));
  2769. { int yypos208= G->pos, yythunkpos208= G->thunkpos; if (!yy_AutoLinkUrl(G)) { goto l209; } goto l208;
  2770. l209:; G->pos= yypos208; G->thunkpos= yythunkpos208; if (!yy_AutoLinkEmail(G)) { goto l207; }
  2771. }
  2772. l208:;
  2773. yyprintf((stderr, " ok %s @ %s\n", "AutoLink", G->buf+G->pos));
  2774. return 1;
  2775. l207:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2776. yyprintf((stderr, " fail %s @ %s\n", "AutoLink", G->buf+G->pos));
  2777. return 0;
  2778. }
  2779. YY_RULE(int) yy_ReferenceLink(GREG *G)
  2780. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2781. yyprintf((stderr, "%s\n", "ReferenceLink"));
  2782. { int yypos211= G->pos, yythunkpos211= G->thunkpos; if (!yy_ReferenceLinkDouble(G)) { goto l212; } goto l211;
  2783. l212:; G->pos= yypos211; G->thunkpos= yythunkpos211; if (!yy_ReferenceLinkSingle(G)) { goto l210; }
  2784. }
  2785. l211:;
  2786. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2787. return 1;
  2788. l210:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2789. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2790. return 0;
  2791. }
  2792. YY_RULE(int) yy_ExplicitLinkSize(GREG *G)
  2793. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2794. yyprintf((stderr, "%s\n", "ExplicitLinkSize")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l213; if (!yy_Label(G)) { goto l213; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l213; } if (!yymatchChar(G, '(')) goto l213; if (!yy_Sp(G)) { goto l213; } if (!yy_Source(G)) { goto l213; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l213; } if (!yy_TitleExt(G)) { goto l213; } if (!yy_Sp(G)) { goto l213; } if (!yy_ImageSize(G)) { goto l213; } if (!yy_Sp(G)) { goto l213; } if (!yymatchChar(G, ')')) goto l213; yyText(G, G->begin, G->end); if (!(YY_END)) goto l213; yyDo(G, yy_1_ExplicitLinkSize, G->begin, G->end);
  2795. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2796. return 1;
  2797. l213:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2798. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos));
  2799. return 0;
  2800. }
  2801. YY_RULE(int) yy_ExplicitLink(GREG *G)
  2802. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2803. yyprintf((stderr, "%s\n", "ExplicitLink")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l214; if (!yy_Label(G)) { goto l214; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l214; } if (!yymatchChar(G, '(')) goto l214; if (!yy_Sp(G)) { goto l214; } if (!yy_Source(G)) { goto l214; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l214; } if (!yy_Title(G)) { goto l214; } if (!yy_Sp(G)) { goto l214; } if (!yymatchChar(G, ')')) goto l214; yyText(G, G->begin, G->end); if (!(YY_END)) goto l214; yyDo(G, yy_1_ExplicitLink, G->begin, G->end);
  2804. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLink", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2805. return 1;
  2806. l214:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2807. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLink", G->buf+G->pos));
  2808. return 0;
  2809. }
  2810. YY_RULE(int) yy_StrongUl(GREG *G)
  2811. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2812. yyprintf((stderr, "%s\n", "StrongUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l215; if (!yy_LocMarker(G)) { goto l215; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "__")) goto l215;
  2813. { int yypos216= G->pos, yythunkpos216= G->thunkpos; if (!yy_Whitespace(G)) { goto l216; } goto l215;
  2814. l216:; G->pos= yypos216; G->thunkpos= yythunkpos216;
  2815. }
  2816. { int yypos219= G->pos, yythunkpos219= G->thunkpos; if (!yymatchString(G, "__")) goto l219; goto l215;
  2817. l219:; G->pos= yypos219; G->thunkpos= yythunkpos219;
  2818. } if (!yy_Inline(G)) { goto l215; }
  2819. l217:;
  2820. { int yypos218= G->pos, yythunkpos218= G->thunkpos;
  2821. { int yypos220= G->pos, yythunkpos220= G->thunkpos; if (!yymatchString(G, "__")) goto l220; goto l218;
  2822. l220:; G->pos= yypos220; G->thunkpos= yythunkpos220;
  2823. } if (!yy_Inline(G)) { goto l218; } goto l217;
  2824. l218:; G->pos= yypos218; G->thunkpos= yythunkpos218;
  2825. } if (!yymatchString(G, "__")) goto l215; yyText(G, G->begin, G->end); if (!(YY_END)) goto l215; yyDo(G, yy_1_StrongUl, G->begin, G->end);
  2826. yyprintf((stderr, " ok %s @ %s\n", "StrongUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2827. return 1;
  2828. l215:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2829. yyprintf((stderr, " fail %s @ %s\n", "StrongUl", G->buf+G->pos));
  2830. return 0;
  2831. }
  2832. YY_RULE(int) yy_StrongStar(GREG *G)
  2833. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2834. yyprintf((stderr, "%s\n", "StrongStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l221; if (!yy_LocMarker(G)) { goto l221; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "**")) goto l221;
  2835. { int yypos222= G->pos, yythunkpos222= G->thunkpos; if (!yy_Whitespace(G)) { goto l222; } goto l221;
  2836. l222:; G->pos= yypos222; G->thunkpos= yythunkpos222;
  2837. }
  2838. { int yypos225= G->pos, yythunkpos225= G->thunkpos; if (!yymatchString(G, "**")) goto l225; goto l221;
  2839. l225:; G->pos= yypos225; G->thunkpos= yythunkpos225;
  2840. } if (!yy_Inline(G)) { goto l221; }
  2841. l223:;
  2842. { int yypos224= G->pos, yythunkpos224= G->thunkpos;
  2843. { int yypos226= G->pos, yythunkpos226= G->thunkpos; if (!yymatchString(G, "**")) goto l226; goto l224;
  2844. l226:; G->pos= yypos226; G->thunkpos= yythunkpos226;
  2845. } if (!yy_Inline(G)) { goto l224; } goto l223;
  2846. l224:; G->pos= yypos224; G->thunkpos= yythunkpos224;
  2847. } if (!yymatchString(G, "**")) goto l221; yyText(G, G->begin, G->end); if (!(YY_END)) goto l221; yyDo(G, yy_1_StrongStar, G->begin, G->end);
  2848. yyprintf((stderr, " ok %s @ %s\n", "StrongStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2849. return 1;
  2850. l221:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2851. yyprintf((stderr, " fail %s @ %s\n", "StrongStar", G->buf+G->pos));
  2852. return 0;
  2853. }
  2854. YY_RULE(int) yy_Whitespace(GREG *G)
  2855. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2856. yyprintf((stderr, "%s\n", "Whitespace"));
  2857. { int yypos228= G->pos, yythunkpos228= G->thunkpos; if (!yy_Spacechar(G)) { goto l229; } goto l228;
  2858. l229:; G->pos= yypos228; G->thunkpos= yythunkpos228; if (!yy_Newline(G)) { goto l227; }
  2859. }
  2860. l228:;
  2861. yyprintf((stderr, " ok %s @ %s\n", "Whitespace", G->buf+G->pos));
  2862. return 1;
  2863. l227:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2864. yyprintf((stderr, " fail %s @ %s\n", "Whitespace", G->buf+G->pos));
  2865. return 0;
  2866. }
  2867. YY_RULE(int) yy_EmphUl(GREG *G)
  2868. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2869. yyprintf((stderr, "%s\n", "EmphUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l230; if (!yy_LocMarker(G)) { goto l230; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '_')) goto l230;
  2870. { int yypos231= G->pos, yythunkpos231= G->thunkpos; if (!yy_Whitespace(G)) { goto l231; } goto l230;
  2871. l231:; G->pos= yypos231; G->thunkpos= yythunkpos231;
  2872. }
  2873. { int yypos234= G->pos, yythunkpos234= G->thunkpos;
  2874. { int yypos236= G->pos, yythunkpos236= G->thunkpos; if (!yymatchChar(G, '_')) goto l236; goto l235;
  2875. l236:; G->pos= yypos236; G->thunkpos= yythunkpos236;
  2876. } if (!yy_Inline(G)) { goto l235; } goto l234;
  2877. l235:; G->pos= yypos234; G->thunkpos= yythunkpos234; if (!yy_StrongUl(G)) { goto l230; }
  2878. }
  2879. l234:;
  2880. l232:;
  2881. { int yypos233= G->pos, yythunkpos233= G->thunkpos;
  2882. { int yypos237= G->pos, yythunkpos237= G->thunkpos;
  2883. { int yypos239= G->pos, yythunkpos239= G->thunkpos; if (!yymatchChar(G, '_')) goto l239; goto l238;
  2884. l239:; G->pos= yypos239; G->thunkpos= yythunkpos239;
  2885. } if (!yy_Inline(G)) { goto l238; } goto l237;
  2886. l238:; G->pos= yypos237; G->thunkpos= yythunkpos237; if (!yy_StrongUl(G)) { goto l233; }
  2887. }
  2888. l237:; goto l232;
  2889. l233:; G->pos= yypos233; G->thunkpos= yythunkpos233;
  2890. } if (!yymatchChar(G, '_')) goto l230; yyText(G, G->begin, G->end); if (!(YY_END)) goto l230; yyDo(G, yy_1_EmphUl, G->begin, G->end);
  2891. yyprintf((stderr, " ok %s @ %s\n", "EmphUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2892. return 1;
  2893. l230:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2894. yyprintf((stderr, " fail %s @ %s\n", "EmphUl", G->buf+G->pos));
  2895. return 0;
  2896. }
  2897. YY_RULE(int) yy_EmphStar(GREG *G)
  2898. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2899. yyprintf((stderr, "%s\n", "EmphStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l240; if (!yy_LocMarker(G)) { goto l240; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '*')) goto l240;
  2900. { int yypos241= G->pos, yythunkpos241= G->thunkpos; if (!yy_Whitespace(G)) { goto l241; } goto l240;
  2901. l241:; G->pos= yypos241; G->thunkpos= yythunkpos241;
  2902. }
  2903. { int yypos244= G->pos, yythunkpos244= G->thunkpos;
  2904. { int yypos246= G->pos, yythunkpos246= G->thunkpos; if (!yymatchChar(G, '*')) goto l246; goto l245;
  2905. l246:; G->pos= yypos246; G->thunkpos= yythunkpos246;
  2906. } if (!yy_Inline(G)) { goto l245; } goto l244;
  2907. l245:; G->pos= yypos244; G->thunkpos= yythunkpos244; if (!yy_StrongStar(G)) { goto l240; }
  2908. }
  2909. l244:;
  2910. l242:;
  2911. { int yypos243= G->pos, yythunkpos243= G->thunkpos;
  2912. { int yypos247= G->pos, yythunkpos247= G->thunkpos;
  2913. { int yypos249= G->pos, yythunkpos249= G->thunkpos; if (!yymatchChar(G, '*')) goto l249; goto l248;
  2914. l249:; G->pos= yypos249; G->thunkpos= yythunkpos249;
  2915. } if (!yy_Inline(G)) { goto l248; } goto l247;
  2916. l248:; G->pos= yypos247; G->thunkpos= yythunkpos247; if (!yy_StrongStar(G)) { goto l243; }
  2917. }
  2918. l247:; goto l242;
  2919. l243:; G->pos= yypos243; G->thunkpos= yythunkpos243;
  2920. } if (!yymatchChar(G, '*')) goto l240; yyText(G, G->begin, G->end); if (!(YY_END)) goto l240; yyDo(G, yy_1_EmphStar, G->begin, G->end);
  2921. yyprintf((stderr, " ok %s @ %s\n", "EmphStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2922. return 1;
  2923. l240:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2924. yyprintf((stderr, " fail %s @ %s\n", "EmphStar", G->buf+G->pos));
  2925. return 0;
  2926. }
  2927. YY_RULE(int) yy_StarLine(GREG *G)
  2928. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2929. yyprintf((stderr, "%s\n", "StarLine"));
  2930. { int yypos251= G->pos, yythunkpos251= G->thunkpos; if (!yymatchString(G, "****")) goto l252;
  2931. l253:;
  2932. { int yypos254= G->pos, yythunkpos254= G->thunkpos; if (!yymatchChar(G, '*')) goto l254; goto l253;
  2933. l254:; G->pos= yypos254; G->thunkpos= yythunkpos254;
  2934. } goto l251;
  2935. l252:; G->pos= yypos251; G->thunkpos= yythunkpos251; if (!yy_Spacechar(G)) { goto l250; } if (!yymatchChar(G, '*')) goto l250;
  2936. l255:;
  2937. { int yypos256= G->pos, yythunkpos256= G->thunkpos; if (!yymatchChar(G, '*')) goto l256; goto l255;
  2938. l256:; G->pos= yypos256; G->thunkpos= yythunkpos256;
  2939. }
  2940. { int yypos257= G->pos, yythunkpos257= G->thunkpos; if (!yy_Spacechar(G)) { goto l250; } G->pos= yypos257; G->thunkpos= yythunkpos257;
  2941. }
  2942. }
  2943. l251:;
  2944. yyprintf((stderr, " ok %s @ %s\n", "StarLine", G->buf+G->pos));
  2945. return 1;
  2946. l250:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2947. yyprintf((stderr, " fail %s @ %s\n", "StarLine", G->buf+G->pos));
  2948. return 0;
  2949. }
  2950. YY_RULE(int) yy_UlLine(GREG *G)
  2951. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2952. yyprintf((stderr, "%s\n", "UlLine"));
  2953. { int yypos259= G->pos, yythunkpos259= G->thunkpos; if (!yymatchString(G, "____")) goto l260;
  2954. l261:;
  2955. { int yypos262= G->pos, yythunkpos262= G->thunkpos; if (!yymatchChar(G, '_')) goto l262; goto l261;
  2956. l262:; G->pos= yypos262; G->thunkpos= yythunkpos262;
  2957. } goto l259;
  2958. l260:; G->pos= yypos259; G->thunkpos= yythunkpos259; if (!yy_Spacechar(G)) { goto l258; } if (!yymatchChar(G, '_')) goto l258;
  2959. l263:;
  2960. { int yypos264= G->pos, yythunkpos264= G->thunkpos; if (!yymatchChar(G, '_')) goto l264; goto l263;
  2961. l264:; G->pos= yypos264; G->thunkpos= yythunkpos264;
  2962. }
  2963. { int yypos265= G->pos, yythunkpos265= G->thunkpos; if (!yy_Spacechar(G)) { goto l258; } G->pos= yypos265; G->thunkpos= yythunkpos265;
  2964. }
  2965. }
  2966. l259:;
  2967. yyprintf((stderr, " ok %s @ %s\n", "UlLine", G->buf+G->pos));
  2968. return 1;
  2969. l258:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2970. yyprintf((stderr, " fail %s @ %s\n", "UlLine", G->buf+G->pos));
  2971. return 0;
  2972. }
  2973. YY_RULE(int) yy_SpecialChar(GREG *G)
  2974. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2975. yyprintf((stderr, "%s\n", "SpecialChar"));
  2976. { int yypos267= G->pos, yythunkpos267= G->thunkpos; if (!yymatchChar(G, '~')) goto l268; goto l267;
  2977. l268:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '*')) goto l269; goto l267;
  2978. l269:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '_')) goto l270; goto l267;
  2979. l270:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '`')) goto l271; goto l267;
  2980. l271:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '&')) goto l272; goto l267;
  2981. l272:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '[')) goto l273; goto l267;
  2982. l273:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, ']')) goto l274; goto l267;
  2983. l274:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '(')) goto l275; goto l267;
  2984. l275:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, ')')) goto l276; goto l267;
  2985. l276:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '<')) goto l277; goto l267;
  2986. l277:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '!')) goto l278; goto l267;
  2987. l278:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '#')) goto l279; goto l267;
  2988. l279:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '\\')) goto l280; goto l267;
  2989. l280:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '\'')) goto l281; goto l267;
  2990. l281:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yymatchChar(G, '"')) goto l282; goto l267;
  2991. l282:; G->pos= yypos267; G->thunkpos= yythunkpos267; if (!yy_ExtendedSpecialChar(G)) { goto l266; }
  2992. }
  2993. l267:;
  2994. yyprintf((stderr, " ok %s @ %s\n", "SpecialChar", G->buf+G->pos));
  2995. return 1;
  2996. l266:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2997. yyprintf((stderr, " fail %s @ %s\n", "SpecialChar", G->buf+G->pos));
  2998. return 0;
  2999. }
  3000. YY_RULE(int) yy_Eof(GREG *G)
  3001. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3002. yyprintf((stderr, "%s\n", "Eof"));
  3003. { int yypos284= G->pos, yythunkpos284= G->thunkpos; if (!yymatchDot(G)) goto l284; goto l283;
  3004. l284:; G->pos= yypos284; G->thunkpos= yythunkpos284;
  3005. }
  3006. yyprintf((stderr, " ok %s @ %s\n", "Eof", G->buf+G->pos));
  3007. return 1;
  3008. l283:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3009. yyprintf((stderr, " fail %s @ %s\n", "Eof", G->buf+G->pos));
  3010. return 0;
  3011. }
  3012. YY_RULE(int) yy_NormalEndline(GREG *G)
  3013. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3014. yyprintf((stderr, "%s\n", "NormalEndline")); if (!yy_Sp(G)) { goto l285; } if (!yy_Newline(G)) { goto l285; }
  3015. { int yypos286= G->pos, yythunkpos286= G->thunkpos; if (!yy_BlankLine(G)) { goto l286; } goto l285;
  3016. l286:; G->pos= yypos286; G->thunkpos= yythunkpos286;
  3017. }
  3018. { int yypos287= G->pos, yythunkpos287= G->thunkpos; if (!yymatchChar(G, '>')) goto l287; goto l285;
  3019. l287:; G->pos= yypos287; G->thunkpos= yythunkpos287;
  3020. }
  3021. { int yypos288= G->pos, yythunkpos288= G->thunkpos; if (!yy_AtxStart(G)) { goto l288; } goto l285;
  3022. l288:; G->pos= yypos288; G->thunkpos= yythunkpos288;
  3023. }
  3024. { int yypos289= G->pos, yythunkpos289= G->thunkpos; if (!yy_Line(G)) { goto l289; }
  3025. { int yypos290= G->pos, yythunkpos290= G->thunkpos; if (!yymatchChar(G, '=')) goto l291;
  3026. l292:;
  3027. { int yypos293= G->pos, yythunkpos293= G->thunkpos; if (!yymatchChar(G, '=')) goto l293; goto l292;
  3028. l293:; G->pos= yypos293; G->thunkpos= yythunkpos293;
  3029. } goto l290;
  3030. l291:; G->pos= yypos290; G->thunkpos= yythunkpos290; if (!yymatchChar(G, '-')) goto l289;
  3031. l294:;
  3032. { int yypos295= G->pos, yythunkpos295= G->thunkpos; if (!yymatchChar(G, '-')) goto l295; goto l294;
  3033. l295:; G->pos= yypos295; G->thunkpos= yythunkpos295;
  3034. }
  3035. }
  3036. l290:; if (!yy_Newline(G)) { goto l289; } goto l285;
  3037. l289:; G->pos= yypos289; G->thunkpos= yythunkpos289;
  3038. }
  3039. { int yypos296= G->pos, yythunkpos296= G->thunkpos; if (!yy_FencedCodeBlockStartTick(G)) { goto l296; } goto l285;
  3040. l296:; G->pos= yypos296; G->thunkpos= yythunkpos296;
  3041. }
  3042. { int yypos297= G->pos, yythunkpos297= G->thunkpos; if (!yy_FencedCodeBlockStartTidle(G)) { goto l297; } goto l285;
  3043. l297:; G->pos= yypos297; G->thunkpos= yythunkpos297;
  3044. }
  3045. yyprintf((stderr, " ok %s @ %s\n", "NormalEndline", G->buf+G->pos));
  3046. return 1;
  3047. l285:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3048. yyprintf((stderr, " fail %s @ %s\n", "NormalEndline", G->buf+G->pos));
  3049. return 0;
  3050. }
  3051. YY_RULE(int) yy_TerminalEndline(GREG *G)
  3052. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3053. yyprintf((stderr, "%s\n", "TerminalEndline")); if (!yy_Sp(G)) { goto l298; } if (!yy_Newline(G)) { goto l298; } if (!yy_Eof(G)) { goto l298; }
  3054. yyprintf((stderr, " ok %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  3055. return 1;
  3056. l298:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3057. yyprintf((stderr, " fail %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  3058. return 0;
  3059. }
  3060. YY_RULE(int) yy_LineBreak(GREG *G)
  3061. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3062. yyprintf((stderr, "%s\n", "LineBreak")); if (!yymatchString(G, " ")) goto l299; if (!yy_NormalEndline(G)) { goto l299; }
  3063. yyprintf((stderr, " ok %s @ %s\n", "LineBreak", G->buf+G->pos));
  3064. return 1;
  3065. l299:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3066. yyprintf((stderr, " fail %s @ %s\n", "LineBreak", G->buf+G->pos));
  3067. return 0;
  3068. }
  3069. YY_RULE(int) yy_CharEntity(GREG *G)
  3070. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3071. yyprintf((stderr, "%s\n", "CharEntity")); if (!yymatchChar(G, '&')) goto l300; 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 l300;
  3072. l301:;
  3073. { int yypos302= G->pos, yythunkpos302= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l302; goto l301;
  3074. l302:; G->pos= yypos302; G->thunkpos= yythunkpos302;
  3075. } if (!yymatchChar(G, ';')) goto l300;
  3076. yyprintf((stderr, " ok %s @ %s\n", "CharEntity", G->buf+G->pos));
  3077. return 1;
  3078. l300:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3079. yyprintf((stderr, " fail %s @ %s\n", "CharEntity", G->buf+G->pos));
  3080. return 0;
  3081. }
  3082. YY_RULE(int) yy_DecEntity(GREG *G)
  3083. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3084. yyprintf((stderr, "%s\n", "DecEntity")); if (!yymatchChar(G, '&')) goto l303; if (!yymatchChar(G, '#')) goto l303; 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 l303;
  3085. l304:;
  3086. { int yypos305= G->pos, yythunkpos305= 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 l305; goto l304;
  3087. l305:; G->pos= yypos305; G->thunkpos= yythunkpos305;
  3088. } if (!yymatchChar(G, ';')) goto l303;
  3089. yyprintf((stderr, " ok %s @ %s\n", "DecEntity", G->buf+G->pos));
  3090. return 1;
  3091. l303:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3092. yyprintf((stderr, " fail %s @ %s\n", "DecEntity", G->buf+G->pos));
  3093. return 0;
  3094. }
  3095. YY_RULE(int) yy_HexEntity(GREG *G)
  3096. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3097. yyprintf((stderr, "%s\n", "HexEntity")); if (!yymatchChar(G, '&')) goto l306; if (!yymatchChar(G, '#')) goto l306; 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 l306; 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 l306;
  3098. l307:;
  3099. { int yypos308= G->pos, yythunkpos308= 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 l308; goto l307;
  3100. l308:; G->pos= yypos308; G->thunkpos= yythunkpos308;
  3101. } if (!yymatchChar(G, ';')) goto l306;
  3102. yyprintf((stderr, " ok %s @ %s\n", "HexEntity", G->buf+G->pos));
  3103. return 1;
  3104. l306:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3105. yyprintf((stderr, " fail %s @ %s\n", "HexEntity", G->buf+G->pos));
  3106. return 0;
  3107. }
  3108. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G)
  3109. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3110. yyprintf((stderr, "%s\n", "ExtendedSpecialChar"));
  3111. { int yypos310= G->pos, yythunkpos310= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l311; if (!yymatchChar(G, '^')) goto l311; goto l310;
  3112. l311:; G->pos= yypos310; G->thunkpos= yythunkpos310; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l312; if (!yymatchChar(G, '$')) goto l312; goto l310;
  3113. l312:; G->pos= yypos310; G->thunkpos= yythunkpos310; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_TABLE) )) goto l309; if (!yymatchChar(G, '|')) goto l309;
  3114. }
  3115. l310:;
  3116. yyprintf((stderr, " ok %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  3117. return 1;
  3118. l309:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3119. yyprintf((stderr, " fail %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  3120. return 0;
  3121. }
  3122. YY_RULE(int) yy_Alphanumeric(GREG *G)
  3123. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3124. yyprintf((stderr, "%s\n", "Alphanumeric"));
  3125. { int yypos314= G->pos, yythunkpos314= 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 l315; goto l314;
  3126. l315:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\200")) goto l316; goto l314;
  3127. l316:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\201")) goto l317; goto l314;
  3128. l317:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\202")) goto l318; goto l314;
  3129. l318:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\203")) goto l319; goto l314;
  3130. l319:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\204")) goto l320; goto l314;
  3131. l320:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\205")) goto l321; goto l314;
  3132. l321:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\206")) goto l322; goto l314;
  3133. l322:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\207")) goto l323; goto l314;
  3134. l323:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\210")) goto l324; goto l314;
  3135. l324:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\211")) goto l325; goto l314;
  3136. l325:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\212")) goto l326; goto l314;
  3137. l326:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\213")) goto l327; goto l314;
  3138. l327:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\214")) goto l328; goto l314;
  3139. l328:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\215")) goto l329; goto l314;
  3140. l329:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\216")) goto l330; goto l314;
  3141. l330:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\217")) goto l331; goto l314;
  3142. l331:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\220")) goto l332; goto l314;
  3143. l332:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\221")) goto l333; goto l314;
  3144. l333:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\222")) goto l334; goto l314;
  3145. l334:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\223")) goto l335; goto l314;
  3146. l335:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\224")) goto l336; goto l314;
  3147. l336:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\225")) goto l337; goto l314;
  3148. l337:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\226")) goto l338; goto l314;
  3149. l338:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\227")) goto l339; goto l314;
  3150. l339:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\230")) goto l340; goto l314;
  3151. l340:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\231")) goto l341; goto l314;
  3152. l341:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\232")) goto l342; goto l314;
  3153. l342:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\233")) goto l343; goto l314;
  3154. l343:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\234")) goto l344; goto l314;
  3155. l344:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\235")) goto l345; goto l314;
  3156. l345:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\236")) goto l346; goto l314;
  3157. l346:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\237")) goto l347; goto l314;
  3158. l347:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\240")) goto l348; goto l314;
  3159. l348:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\241")) goto l349; goto l314;
  3160. l349:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\242")) goto l350; goto l314;
  3161. l350:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\243")) goto l351; goto l314;
  3162. l351:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\244")) goto l352; goto l314;
  3163. l352:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\245")) goto l353; goto l314;
  3164. l353:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\246")) goto l354; goto l314;
  3165. l354:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\247")) goto l355; goto l314;
  3166. l355:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\250")) goto l356; goto l314;
  3167. l356:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\251")) goto l357; goto l314;
  3168. l357:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\252")) goto l358; goto l314;
  3169. l358:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\253")) goto l359; goto l314;
  3170. l359:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\254")) goto l360; goto l314;
  3171. l360:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\255")) goto l361; goto l314;
  3172. l361:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\256")) goto l362; goto l314;
  3173. l362:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\257")) goto l363; goto l314;
  3174. l363:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\260")) goto l364; goto l314;
  3175. l364:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\261")) goto l365; goto l314;
  3176. l365:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\262")) goto l366; goto l314;
  3177. l366:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\263")) goto l367; goto l314;
  3178. l367:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\264")) goto l368; goto l314;
  3179. l368:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\265")) goto l369; goto l314;
  3180. l369:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\266")) goto l370; goto l314;
  3181. l370:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\267")) goto l371; goto l314;
  3182. l371:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\270")) goto l372; goto l314;
  3183. l372:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\271")) goto l373; goto l314;
  3184. l373:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\272")) goto l374; goto l314;
  3185. l374:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\273")) goto l375; goto l314;
  3186. l375:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\274")) goto l376; goto l314;
  3187. l376:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\275")) goto l377; goto l314;
  3188. l377:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\276")) goto l378; goto l314;
  3189. l378:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\277")) goto l379; goto l314;
  3190. l379:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\300")) goto l380; goto l314;
  3191. l380:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\301")) goto l381; goto l314;
  3192. l381:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\302")) goto l382; goto l314;
  3193. l382:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\303")) goto l383; goto l314;
  3194. l383:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\304")) goto l384; goto l314;
  3195. l384:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\305")) goto l385; goto l314;
  3196. l385:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\306")) goto l386; goto l314;
  3197. l386:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\307")) goto l387; goto l314;
  3198. l387:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\310")) goto l388; goto l314;
  3199. l388:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\311")) goto l389; goto l314;
  3200. l389:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\312")) goto l390; goto l314;
  3201. l390:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\313")) goto l391; goto l314;
  3202. l391:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\314")) goto l392; goto l314;
  3203. l392:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\315")) goto l393; goto l314;
  3204. l393:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\316")) goto l394; goto l314;
  3205. l394:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\317")) goto l395; goto l314;
  3206. l395:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\320")) goto l396; goto l314;
  3207. l396:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\321")) goto l397; goto l314;
  3208. l397:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\322")) goto l398; goto l314;
  3209. l398:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\323")) goto l399; goto l314;
  3210. l399:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\324")) goto l400; goto l314;
  3211. l400:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\325")) goto l401; goto l314;
  3212. l401:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\326")) goto l402; goto l314;
  3213. l402:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\327")) goto l403; goto l314;
  3214. l403:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\330")) goto l404; goto l314;
  3215. l404:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\331")) goto l405; goto l314;
  3216. l405:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\332")) goto l406; goto l314;
  3217. l406:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\333")) goto l407; goto l314;
  3218. l407:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\334")) goto l408; goto l314;
  3219. l408:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\335")) goto l409; goto l314;
  3220. l409:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\336")) goto l410; goto l314;
  3221. l410:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\337")) goto l411; goto l314;
  3222. l411:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\340")) goto l412; goto l314;
  3223. l412:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\341")) goto l413; goto l314;
  3224. l413:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\342")) goto l414; goto l314;
  3225. l414:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\343")) goto l415; goto l314;
  3226. l415:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\344")) goto l416; goto l314;
  3227. l416:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\345")) goto l417; goto l314;
  3228. l417:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\346")) goto l418; goto l314;
  3229. l418:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\347")) goto l419; goto l314;
  3230. l419:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\350")) goto l420; goto l314;
  3231. l420:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\351")) goto l421; goto l314;
  3232. l421:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\352")) goto l422; goto l314;
  3233. l422:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\353")) goto l423; goto l314;
  3234. l423:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\354")) goto l424; goto l314;
  3235. l424:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\355")) goto l425; goto l314;
  3236. l425:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\356")) goto l426; goto l314;
  3237. l426:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\357")) goto l427; goto l314;
  3238. l427:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\360")) goto l428; goto l314;
  3239. l428:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\361")) goto l429; goto l314;
  3240. l429:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\362")) goto l430; goto l314;
  3241. l430:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\363")) goto l431; goto l314;
  3242. l431:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\364")) goto l432; goto l314;
  3243. l432:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\365")) goto l433; goto l314;
  3244. l433:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\366")) goto l434; goto l314;
  3245. l434:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\367")) goto l435; goto l314;
  3246. l435:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\370")) goto l436; goto l314;
  3247. l436:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\371")) goto l437; goto l314;
  3248. l437:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\372")) goto l438; goto l314;
  3249. l438:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\373")) goto l439; goto l314;
  3250. l439:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\374")) goto l440; goto l314;
  3251. l440:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\375")) goto l441; goto l314;
  3252. l441:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\376")) goto l442; goto l314;
  3253. l442:; G->pos= yypos314; G->thunkpos= yythunkpos314; if (!yymatchString(G, "\377")) goto l313;
  3254. }
  3255. l314:;
  3256. yyprintf((stderr, " ok %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3257. return 1;
  3258. l313:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3259. yyprintf((stderr, " fail %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3260. return 0;
  3261. }
  3262. YY_RULE(int) yy_NormalChar(GREG *G)
  3263. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3264. yyprintf((stderr, "%s\n", "NormalChar"));
  3265. { int yypos444= G->pos, yythunkpos444= G->thunkpos;
  3266. { int yypos445= G->pos, yythunkpos445= G->thunkpos; if (!yy_SpecialChar(G)) { goto l446; } goto l445;
  3267. l446:; G->pos= yypos445; G->thunkpos= yythunkpos445; if (!yy_Spacechar(G)) { goto l447; } goto l445;
  3268. l447:; G->pos= yypos445; G->thunkpos= yythunkpos445; if (!yy_Newline(G)) { goto l444; }
  3269. }
  3270. l445:; goto l443;
  3271. l444:; G->pos= yypos444; G->thunkpos= yythunkpos444;
  3272. } if (!yymatchDot(G)) goto l443;
  3273. yyprintf((stderr, " ok %s @ %s\n", "NormalChar", G->buf+G->pos));
  3274. return 1;
  3275. l443:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3276. yyprintf((stderr, " fail %s @ %s\n", "NormalChar", G->buf+G->pos));
  3277. return 0;
  3278. }
  3279. YY_RULE(int) yy_Symbol(GREG *G)
  3280. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3281. yyprintf((stderr, "%s\n", "Symbol")); if (!yy_SpecialChar(G)) { goto l448; }
  3282. yyprintf((stderr, " ok %s @ %s\n", "Symbol", G->buf+G->pos));
  3283. return 1;
  3284. l448:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3285. yyprintf((stderr, " fail %s @ %s\n", "Symbol", G->buf+G->pos));
  3286. return 0;
  3287. }
  3288. YY_RULE(int) yy_EscapedChar(GREG *G)
  3289. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3290. yyprintf((stderr, "%s\n", "EscapedChar")); if (!yymatchChar(G, '\\')) goto l449;
  3291. { int yypos450= G->pos, yythunkpos450= G->thunkpos; if (!yy_Newline(G)) { goto l450; } goto l449;
  3292. l450:; G->pos= yypos450; G->thunkpos= yythunkpos450;
  3293. }
  3294. { int yypos451= G->pos, yythunkpos451= G->thunkpos; if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\012\157\000\120\000\000\000\270\001\000\000\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l452; goto l451;
  3295. l452:; G->pos= yypos451; G->thunkpos= yythunkpos451; if (!yy_ExtendedSpecialChar(G)) { goto l449; }
  3296. }
  3297. l451:;
  3298. yyprintf((stderr, " ok %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3299. return 1;
  3300. l449:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3301. yyprintf((stderr, " fail %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3302. return 0;
  3303. }
  3304. YY_RULE(int) yy_Entity(GREG *G)
  3305. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3306. yyprintf((stderr, "%s\n", "Entity")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l453; if (!yy_LocMarker(G)) { goto l453; } yyDo(G, yySet, -1, 0);
  3307. { int yypos454= G->pos, yythunkpos454= G->thunkpos; if (!yy_HexEntity(G)) { goto l455; } goto l454;
  3308. l455:; G->pos= yypos454; G->thunkpos= yythunkpos454; if (!yy_DecEntity(G)) { goto l456; } goto l454;
  3309. l456:; G->pos= yypos454; G->thunkpos= yythunkpos454; if (!yy_CharEntity(G)) { goto l453; }
  3310. }
  3311. l454:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l453; yyDo(G, yy_1_Entity, G->begin, G->end);
  3312. yyprintf((stderr, " ok %s @ %s\n", "Entity", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3313. return 1;
  3314. l453:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3315. yyprintf((stderr, " fail %s @ %s\n", "Entity", G->buf+G->pos));
  3316. return 0;
  3317. }
  3318. YY_RULE(int) yy_RawHtml(GREG *G)
  3319. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3320. yyprintf((stderr, "%s\n", "RawHtml")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l457; if (!yy_LocMarker(G)) { goto l457; } yyDo(G, yySet, -1, 0);
  3321. { int yypos458= G->pos, yythunkpos458= G->thunkpos; if (!yy_HtmlComment(G)) { goto l459; } goto l458;
  3322. l459:; G->pos= yypos458; G->thunkpos= yythunkpos458; if (!yy_HtmlBlockScript(G)) { goto l460; } goto l458;
  3323. l460:; G->pos= yypos458; G->thunkpos= yythunkpos458; if (!yy_HtmlTag(G)) { goto l457; }
  3324. }
  3325. l458:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l457; yyDo(G, yy_1_RawHtml, G->begin, G->end);
  3326. yyprintf((stderr, " ok %s @ %s\n", "RawHtml", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3327. return 1;
  3328. l457:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3329. yyprintf((stderr, " fail %s @ %s\n", "RawHtml", G->buf+G->pos));
  3330. return 0;
  3331. }
  3332. YY_RULE(int) yy_Mark(GREG *G)
  3333. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  3334. yyprintf((stderr, "%s\n", "Mark")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MARK) )) goto l461; if (!yy_MarkTagOpen(G)) { goto l461; } yyDo(G, yySet, -2, 0); if (!yy_MarkTagText(G)) { goto l461; } if (!yy_MarkTagClose(G)) { goto l461; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_Mark, G->begin, G->end);
  3335. yyprintf((stderr, " ok %s @ %s\n", "Mark", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  3336. return 1;
  3337. l461:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3338. yyprintf((stderr, " fail %s @ %s\n", "Mark", G->buf+G->pos));
  3339. return 0;
  3340. }
  3341. YY_RULE(int) yy_Code(GREG *G)
  3342. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3343. yyprintf((stderr, "%s\n", "Code")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l462;
  3344. { int yypos463= G->pos, yythunkpos463= G->thunkpos; if (!yy_Ticks1(G)) { goto l464; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l464; }
  3345. { int yypos467= G->pos, yythunkpos467= G->thunkpos;
  3346. { int yypos471= G->pos, yythunkpos471= G->thunkpos; if (!yymatchChar(G, '`')) goto l471; goto l468;
  3347. l471:; G->pos= yypos471; G->thunkpos= yythunkpos471;
  3348. } if (!yy_Nonspacechar(G)) { goto l468; }
  3349. l469:;
  3350. { int yypos470= G->pos, yythunkpos470= G->thunkpos;
  3351. { int yypos472= G->pos, yythunkpos472= G->thunkpos; if (!yymatchChar(G, '`')) goto l472; goto l470;
  3352. l472:; G->pos= yypos472; G->thunkpos= yythunkpos472;
  3353. } if (!yy_Nonspacechar(G)) { goto l470; } goto l469;
  3354. l470:; G->pos= yypos470; G->thunkpos= yythunkpos470;
  3355. } goto l467;
  3356. l468:; G->pos= yypos467; G->thunkpos= yythunkpos467;
  3357. { int yypos474= G->pos, yythunkpos474= G->thunkpos; if (!yy_Ticks1(G)) { goto l474; } goto l473;
  3358. l474:; G->pos= yypos474; G->thunkpos= yythunkpos474;
  3359. } if (!yymatchChar(G, '`')) goto l473;
  3360. l475:;
  3361. { int yypos476= G->pos, yythunkpos476= G->thunkpos; if (!yymatchChar(G, '`')) goto l476; goto l475;
  3362. l476:; G->pos= yypos476; G->thunkpos= yythunkpos476;
  3363. } goto l467;
  3364. l473:; G->pos= yypos467; G->thunkpos= yythunkpos467;
  3365. { int yypos477= G->pos, yythunkpos477= G->thunkpos; if (!yy_Sp(G)) { goto l477; } if (!yy_Ticks1(G)) { goto l477; } goto l464;
  3366. l477:; G->pos= yypos477; G->thunkpos= yythunkpos477;
  3367. }
  3368. { int yypos478= G->pos, yythunkpos478= G->thunkpos; if (!yy_Spacechar(G)) { goto l479; } goto l478;
  3369. l479:; G->pos= yypos478; G->thunkpos= yythunkpos478; if (!yy_Newline(G)) { goto l464; }
  3370. { int yypos480= G->pos, yythunkpos480= G->thunkpos; if (!yy_BlankLine(G)) { goto l480; } goto l464;
  3371. l480:; G->pos= yypos480; G->thunkpos= yythunkpos480;
  3372. }
  3373. }
  3374. l478:;
  3375. }
  3376. l467:;
  3377. l465:;
  3378. { int yypos466= G->pos, yythunkpos466= G->thunkpos;
  3379. { int yypos481= G->pos, yythunkpos481= G->thunkpos;
  3380. { int yypos485= G->pos, yythunkpos485= G->thunkpos; if (!yymatchChar(G, '`')) goto l485; goto l482;
  3381. l485:; G->pos= yypos485; G->thunkpos= yythunkpos485;
  3382. } if (!yy_Nonspacechar(G)) { goto l482; }
  3383. l483:;
  3384. { int yypos484= G->pos, yythunkpos484= G->thunkpos;
  3385. { int yypos486= G->pos, yythunkpos486= G->thunkpos; if (!yymatchChar(G, '`')) goto l486; goto l484;
  3386. l486:; G->pos= yypos486; G->thunkpos= yythunkpos486;
  3387. } if (!yy_Nonspacechar(G)) { goto l484; } goto l483;
  3388. l484:; G->pos= yypos484; G->thunkpos= yythunkpos484;
  3389. } goto l481;
  3390. l482:; G->pos= yypos481; G->thunkpos= yythunkpos481;
  3391. { int yypos488= G->pos, yythunkpos488= G->thunkpos; if (!yy_Ticks1(G)) { goto l488; } goto l487;
  3392. l488:; G->pos= yypos488; G->thunkpos= yythunkpos488;
  3393. } if (!yymatchChar(G, '`')) goto l487;
  3394. l489:;
  3395. { int yypos490= G->pos, yythunkpos490= G->thunkpos; if (!yymatchChar(G, '`')) goto l490; goto l489;
  3396. l490:; G->pos= yypos490; G->thunkpos= yythunkpos490;
  3397. } goto l481;
  3398. l487:; G->pos= yypos481; G->thunkpos= yythunkpos481;
  3399. { int yypos491= G->pos, yythunkpos491= G->thunkpos; if (!yy_Sp(G)) { goto l491; } if (!yy_Ticks1(G)) { goto l491; } goto l466;
  3400. l491:; G->pos= yypos491; G->thunkpos= yythunkpos491;
  3401. }
  3402. { int yypos492= G->pos, yythunkpos492= G->thunkpos; if (!yy_Spacechar(G)) { goto l493; } goto l492;
  3403. l493:; G->pos= yypos492; G->thunkpos= yythunkpos492; if (!yy_Newline(G)) { goto l466; }
  3404. { int yypos494= G->pos, yythunkpos494= G->thunkpos; if (!yy_BlankLine(G)) { goto l494; } goto l466;
  3405. l494:; G->pos= yypos494; G->thunkpos= yythunkpos494;
  3406. }
  3407. }
  3408. l492:;
  3409. }
  3410. l481:; goto l465;
  3411. l466:; G->pos= yypos466; G->thunkpos= yythunkpos466;
  3412. } if (!yy_Sp(G)) { goto l464; } if (!yy_Ticks1(G)) { goto l464; } goto l463;
  3413. l464:; G->pos= yypos463; G->thunkpos= yythunkpos463; if (!yy_Ticks2(G)) { goto l495; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l495; }
  3414. { int yypos498= G->pos, yythunkpos498= G->thunkpos;
  3415. { int yypos502= G->pos, yythunkpos502= G->thunkpos; if (!yymatchChar(G, '`')) goto l502; goto l499;
  3416. l502:; G->pos= yypos502; G->thunkpos= yythunkpos502;
  3417. } if (!yy_Nonspacechar(G)) { goto l499; }
  3418. l500:;
  3419. { int yypos501= G->pos, yythunkpos501= G->thunkpos;
  3420. { int yypos503= G->pos, yythunkpos503= G->thunkpos; if (!yymatchChar(G, '`')) goto l503; goto l501;
  3421. l503:; G->pos= yypos503; G->thunkpos= yythunkpos503;
  3422. } if (!yy_Nonspacechar(G)) { goto l501; } goto l500;
  3423. l501:; G->pos= yypos501; G->thunkpos= yythunkpos501;
  3424. } goto l498;
  3425. l499:; G->pos= yypos498; G->thunkpos= yythunkpos498;
  3426. { int yypos505= G->pos, yythunkpos505= G->thunkpos; if (!yy_Ticks2(G)) { goto l505; } goto l504;
  3427. l505:; G->pos= yypos505; G->thunkpos= yythunkpos505;
  3428. } if (!yymatchChar(G, '`')) goto l504;
  3429. l506:;
  3430. { int yypos507= G->pos, yythunkpos507= G->thunkpos; if (!yymatchChar(G, '`')) goto l507; goto l506;
  3431. l507:; G->pos= yypos507; G->thunkpos= yythunkpos507;
  3432. } goto l498;
  3433. l504:; G->pos= yypos498; G->thunkpos= yythunkpos498;
  3434. { int yypos508= G->pos, yythunkpos508= G->thunkpos; if (!yy_Sp(G)) { goto l508; } if (!yy_Ticks2(G)) { goto l508; } goto l495;
  3435. l508:; G->pos= yypos508; G->thunkpos= yythunkpos508;
  3436. }
  3437. { int yypos509= G->pos, yythunkpos509= G->thunkpos; if (!yy_Spacechar(G)) { goto l510; } goto l509;
  3438. l510:; G->pos= yypos509; G->thunkpos= yythunkpos509; if (!yy_Newline(G)) { goto l495; }
  3439. { int yypos511= G->pos, yythunkpos511= G->thunkpos; if (!yy_BlankLine(G)) { goto l511; } goto l495;
  3440. l511:; G->pos= yypos511; G->thunkpos= yythunkpos511;
  3441. }
  3442. }
  3443. l509:;
  3444. }
  3445. l498:;
  3446. l496:;
  3447. { int yypos497= G->pos, yythunkpos497= G->thunkpos;
  3448. { int yypos512= G->pos, yythunkpos512= G->thunkpos;
  3449. { int yypos516= G->pos, yythunkpos516= G->thunkpos; if (!yymatchChar(G, '`')) goto l516; goto l513;
  3450. l516:; G->pos= yypos516; G->thunkpos= yythunkpos516;
  3451. } if (!yy_Nonspacechar(G)) { goto l513; }
  3452. l514:;
  3453. { int yypos515= G->pos, yythunkpos515= G->thunkpos;
  3454. { int yypos517= G->pos, yythunkpos517= G->thunkpos; if (!yymatchChar(G, '`')) goto l517; goto l515;
  3455. l517:; G->pos= yypos517; G->thunkpos= yythunkpos517;
  3456. } if (!yy_Nonspacechar(G)) { goto l515; } goto l514;
  3457. l515:; G->pos= yypos515; G->thunkpos= yythunkpos515;
  3458. } goto l512;
  3459. l513:; G->pos= yypos512; G->thunkpos= yythunkpos512;
  3460. { int yypos519= G->pos, yythunkpos519= G->thunkpos; if (!yy_Ticks2(G)) { goto l519; } goto l518;
  3461. l519:; G->pos= yypos519; G->thunkpos= yythunkpos519;
  3462. } if (!yymatchChar(G, '`')) goto l518;
  3463. l520:;
  3464. { int yypos521= G->pos, yythunkpos521= G->thunkpos; if (!yymatchChar(G, '`')) goto l521; goto l520;
  3465. l521:; G->pos= yypos521; G->thunkpos= yythunkpos521;
  3466. } goto l512;
  3467. l518:; G->pos= yypos512; G->thunkpos= yythunkpos512;
  3468. { int yypos522= G->pos, yythunkpos522= G->thunkpos; if (!yy_Sp(G)) { goto l522; } if (!yy_Ticks2(G)) { goto l522; } goto l497;
  3469. l522:; G->pos= yypos522; G->thunkpos= yythunkpos522;
  3470. }
  3471. { int yypos523= G->pos, yythunkpos523= G->thunkpos; if (!yy_Spacechar(G)) { goto l524; } goto l523;
  3472. l524:; G->pos= yypos523; G->thunkpos= yythunkpos523; if (!yy_Newline(G)) { goto l497; }
  3473. { int yypos525= G->pos, yythunkpos525= G->thunkpos; if (!yy_BlankLine(G)) { goto l525; } goto l497;
  3474. l525:; G->pos= yypos525; G->thunkpos= yythunkpos525;
  3475. }
  3476. }
  3477. l523:;
  3478. }
  3479. l512:; goto l496;
  3480. l497:; G->pos= yypos497; G->thunkpos= yythunkpos497;
  3481. } if (!yy_Sp(G)) { goto l495; } if (!yy_Ticks2(G)) { goto l495; } goto l463;
  3482. l495:; G->pos= yypos463; G->thunkpos= yythunkpos463;
  3483. { int yypos527= G->pos, yythunkpos527= G->thunkpos; if (!yy_FencedCodeBlockStartTickLine(G)) { goto l527; } goto l526;
  3484. l527:; G->pos= yypos527; G->thunkpos= yythunkpos527;
  3485. } if (!yy_Ticks3(G)) { goto l526; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l526; }
  3486. { int yypos530= G->pos, yythunkpos530= G->thunkpos;
  3487. { int yypos534= G->pos, yythunkpos534= G->thunkpos; if (!yymatchChar(G, '`')) goto l534; goto l531;
  3488. l534:; G->pos= yypos534; G->thunkpos= yythunkpos534;
  3489. } if (!yy_Nonspacechar(G)) { goto l531; }
  3490. l532:;
  3491. { int yypos533= G->pos, yythunkpos533= G->thunkpos;
  3492. { int yypos535= G->pos, yythunkpos535= G->thunkpos; if (!yymatchChar(G, '`')) goto l535; goto l533;
  3493. l535:; G->pos= yypos535; G->thunkpos= yythunkpos535;
  3494. } if (!yy_Nonspacechar(G)) { goto l533; } goto l532;
  3495. l533:; G->pos= yypos533; G->thunkpos= yythunkpos533;
  3496. } goto l530;
  3497. l531:; G->pos= yypos530; G->thunkpos= yythunkpos530;
  3498. { int yypos537= G->pos, yythunkpos537= G->thunkpos; if (!yy_Ticks3(G)) { goto l537; } goto l536;
  3499. l537:; G->pos= yypos537; G->thunkpos= yythunkpos537;
  3500. } if (!yymatchChar(G, '`')) goto l536;
  3501. l538:;
  3502. { int yypos539= G->pos, yythunkpos539= G->thunkpos; if (!yymatchChar(G, '`')) goto l539; goto l538;
  3503. l539:; G->pos= yypos539; G->thunkpos= yythunkpos539;
  3504. } goto l530;
  3505. l536:; G->pos= yypos530; G->thunkpos= yythunkpos530;
  3506. { int yypos540= G->pos, yythunkpos540= G->thunkpos; if (!yy_Sp(G)) { goto l540; } if (!yy_Ticks3(G)) { goto l540; } goto l526;
  3507. l540:; G->pos= yypos540; G->thunkpos= yythunkpos540;
  3508. }
  3509. { int yypos541= G->pos, yythunkpos541= G->thunkpos; if (!yy_Spacechar(G)) { goto l542; } goto l541;
  3510. l542:; G->pos= yypos541; G->thunkpos= yythunkpos541; if (!yy_Newline(G)) { goto l526; }
  3511. { int yypos543= G->pos, yythunkpos543= G->thunkpos; if (!yy_BlankLine(G)) { goto l543; } goto l526;
  3512. l543:; G->pos= yypos543; G->thunkpos= yythunkpos543;
  3513. }
  3514. }
  3515. l541:;
  3516. }
  3517. l530:;
  3518. l528:;
  3519. { int yypos529= G->pos, yythunkpos529= G->thunkpos;
  3520. { int yypos544= G->pos, yythunkpos544= G->thunkpos;
  3521. { int yypos548= G->pos, yythunkpos548= G->thunkpos; if (!yymatchChar(G, '`')) goto l548; goto l545;
  3522. l548:; G->pos= yypos548; G->thunkpos= yythunkpos548;
  3523. } if (!yy_Nonspacechar(G)) { goto l545; }
  3524. l546:;
  3525. { int yypos547= G->pos, yythunkpos547= G->thunkpos;
  3526. { int yypos549= G->pos, yythunkpos549= G->thunkpos; if (!yymatchChar(G, '`')) goto l549; goto l547;
  3527. l549:; G->pos= yypos549; G->thunkpos= yythunkpos549;
  3528. } if (!yy_Nonspacechar(G)) { goto l547; } goto l546;
  3529. l547:; G->pos= yypos547; G->thunkpos= yythunkpos547;
  3530. } goto l544;
  3531. l545:; G->pos= yypos544; G->thunkpos= yythunkpos544;
  3532. { int yypos551= G->pos, yythunkpos551= G->thunkpos; if (!yy_Ticks3(G)) { goto l551; } goto l550;
  3533. l551:; G->pos= yypos551; G->thunkpos= yythunkpos551;
  3534. } if (!yymatchChar(G, '`')) goto l550;
  3535. l552:;
  3536. { int yypos553= G->pos, yythunkpos553= G->thunkpos; if (!yymatchChar(G, '`')) goto l553; goto l552;
  3537. l553:; G->pos= yypos553; G->thunkpos= yythunkpos553;
  3538. } goto l544;
  3539. l550:; G->pos= yypos544; G->thunkpos= yythunkpos544;
  3540. { int yypos554= G->pos, yythunkpos554= G->thunkpos; if (!yy_Sp(G)) { goto l554; } if (!yy_Ticks3(G)) { goto l554; } goto l529;
  3541. l554:; G->pos= yypos554; G->thunkpos= yythunkpos554;
  3542. }
  3543. { int yypos555= G->pos, yythunkpos555= G->thunkpos; if (!yy_Spacechar(G)) { goto l556; } goto l555;
  3544. l556:; G->pos= yypos555; G->thunkpos= yythunkpos555; if (!yy_Newline(G)) { goto l529; }
  3545. { int yypos557= G->pos, yythunkpos557= G->thunkpos; if (!yy_BlankLine(G)) { goto l557; } goto l529;
  3546. l557:; G->pos= yypos557; G->thunkpos= yythunkpos557;
  3547. }
  3548. }
  3549. l555:;
  3550. }
  3551. l544:; goto l528;
  3552. l529:; G->pos= yypos529; G->thunkpos= yythunkpos529;
  3553. } if (!yy_Sp(G)) { goto l526; } if (!yy_Ticks3(G)) { goto l526; } goto l463;
  3554. l526:; G->pos= yypos463; G->thunkpos= yythunkpos463; if (!yy_Ticks4(G)) { goto l558; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l558; }
  3555. { int yypos561= G->pos, yythunkpos561= G->thunkpos;
  3556. { int yypos565= G->pos, yythunkpos565= G->thunkpos; if (!yymatchChar(G, '`')) goto l565; goto l562;
  3557. l565:; G->pos= yypos565; G->thunkpos= yythunkpos565;
  3558. } if (!yy_Nonspacechar(G)) { goto l562; }
  3559. l563:;
  3560. { int yypos564= G->pos, yythunkpos564= G->thunkpos;
  3561. { int yypos566= G->pos, yythunkpos566= G->thunkpos; if (!yymatchChar(G, '`')) goto l566; goto l564;
  3562. l566:; G->pos= yypos566; G->thunkpos= yythunkpos566;
  3563. } if (!yy_Nonspacechar(G)) { goto l564; } goto l563;
  3564. l564:; G->pos= yypos564; G->thunkpos= yythunkpos564;
  3565. } goto l561;
  3566. l562:; G->pos= yypos561; G->thunkpos= yythunkpos561;
  3567. { int yypos568= G->pos, yythunkpos568= G->thunkpos; if (!yy_Ticks4(G)) { goto l568; } goto l567;
  3568. l568:; G->pos= yypos568; G->thunkpos= yythunkpos568;
  3569. } if (!yymatchChar(G, '`')) goto l567;
  3570. l569:;
  3571. { int yypos570= G->pos, yythunkpos570= G->thunkpos; if (!yymatchChar(G, '`')) goto l570; goto l569;
  3572. l570:; G->pos= yypos570; G->thunkpos= yythunkpos570;
  3573. } goto l561;
  3574. l567:; G->pos= yypos561; G->thunkpos= yythunkpos561;
  3575. { int yypos571= G->pos, yythunkpos571= G->thunkpos; if (!yy_Sp(G)) { goto l571; } if (!yy_Ticks4(G)) { goto l571; } goto l558;
  3576. l571:; G->pos= yypos571; G->thunkpos= yythunkpos571;
  3577. }
  3578. { int yypos572= G->pos, yythunkpos572= G->thunkpos; if (!yy_Spacechar(G)) { goto l573; } goto l572;
  3579. l573:; G->pos= yypos572; G->thunkpos= yythunkpos572; if (!yy_Newline(G)) { goto l558; }
  3580. { int yypos574= G->pos, yythunkpos574= G->thunkpos; if (!yy_BlankLine(G)) { goto l574; } goto l558;
  3581. l574:; G->pos= yypos574; G->thunkpos= yythunkpos574;
  3582. }
  3583. }
  3584. l572:;
  3585. }
  3586. l561:;
  3587. l559:;
  3588. { int yypos560= G->pos, yythunkpos560= G->thunkpos;
  3589. { int yypos575= G->pos, yythunkpos575= G->thunkpos;
  3590. { int yypos579= G->pos, yythunkpos579= G->thunkpos; if (!yymatchChar(G, '`')) goto l579; goto l576;
  3591. l579:; G->pos= yypos579; G->thunkpos= yythunkpos579;
  3592. } if (!yy_Nonspacechar(G)) { goto l576; }
  3593. l577:;
  3594. { int yypos578= G->pos, yythunkpos578= G->thunkpos;
  3595. { int yypos580= G->pos, yythunkpos580= G->thunkpos; if (!yymatchChar(G, '`')) goto l580; goto l578;
  3596. l580:; G->pos= yypos580; G->thunkpos= yythunkpos580;
  3597. } if (!yy_Nonspacechar(G)) { goto l578; } goto l577;
  3598. l578:; G->pos= yypos578; G->thunkpos= yythunkpos578;
  3599. } goto l575;
  3600. l576:; G->pos= yypos575; G->thunkpos= yythunkpos575;
  3601. { int yypos582= G->pos, yythunkpos582= G->thunkpos; if (!yy_Ticks4(G)) { goto l582; } goto l581;
  3602. l582:; G->pos= yypos582; G->thunkpos= yythunkpos582;
  3603. } if (!yymatchChar(G, '`')) goto l581;
  3604. l583:;
  3605. { int yypos584= G->pos, yythunkpos584= G->thunkpos; if (!yymatchChar(G, '`')) goto l584; goto l583;
  3606. l584:; G->pos= yypos584; G->thunkpos= yythunkpos584;
  3607. } goto l575;
  3608. l581:; G->pos= yypos575; G->thunkpos= yythunkpos575;
  3609. { int yypos585= G->pos, yythunkpos585= G->thunkpos; if (!yy_Sp(G)) { goto l585; } if (!yy_Ticks4(G)) { goto l585; } goto l560;
  3610. l585:; G->pos= yypos585; G->thunkpos= yythunkpos585;
  3611. }
  3612. { int yypos586= G->pos, yythunkpos586= G->thunkpos; if (!yy_Spacechar(G)) { goto l587; } goto l586;
  3613. l587:; G->pos= yypos586; G->thunkpos= yythunkpos586; if (!yy_Newline(G)) { goto l560; }
  3614. { int yypos588= G->pos, yythunkpos588= G->thunkpos; if (!yy_BlankLine(G)) { goto l588; } goto l560;
  3615. l588:; G->pos= yypos588; G->thunkpos= yythunkpos588;
  3616. }
  3617. }
  3618. l586:;
  3619. }
  3620. l575:; goto l559;
  3621. l560:; G->pos= yypos560; G->thunkpos= yythunkpos560;
  3622. } if (!yy_Sp(G)) { goto l558; } if (!yy_Ticks4(G)) { goto l558; } goto l463;
  3623. l558:; G->pos= yypos463; G->thunkpos= yythunkpos463; if (!yy_Ticks5(G)) { goto l462; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l462; }
  3624. { int yypos591= G->pos, yythunkpos591= G->thunkpos;
  3625. { int yypos595= G->pos, yythunkpos595= G->thunkpos; if (!yymatchChar(G, '`')) goto l595; goto l592;
  3626. l595:; G->pos= yypos595; G->thunkpos= yythunkpos595;
  3627. } if (!yy_Nonspacechar(G)) { goto l592; }
  3628. l593:;
  3629. { int yypos594= G->pos, yythunkpos594= G->thunkpos;
  3630. { int yypos596= G->pos, yythunkpos596= G->thunkpos; if (!yymatchChar(G, '`')) goto l596; goto l594;
  3631. l596:; G->pos= yypos596; G->thunkpos= yythunkpos596;
  3632. } if (!yy_Nonspacechar(G)) { goto l594; } goto l593;
  3633. l594:; G->pos= yypos594; G->thunkpos= yythunkpos594;
  3634. } goto l591;
  3635. l592:; G->pos= yypos591; G->thunkpos= yythunkpos591;
  3636. { int yypos598= G->pos, yythunkpos598= G->thunkpos; if (!yy_Ticks5(G)) { goto l598; } goto l597;
  3637. l598:; G->pos= yypos598; G->thunkpos= yythunkpos598;
  3638. } if (!yymatchChar(G, '`')) goto l597;
  3639. l599:;
  3640. { int yypos600= G->pos, yythunkpos600= G->thunkpos; if (!yymatchChar(G, '`')) goto l600; goto l599;
  3641. l600:; G->pos= yypos600; G->thunkpos= yythunkpos600;
  3642. } goto l591;
  3643. l597:; G->pos= yypos591; G->thunkpos= yythunkpos591;
  3644. { int yypos601= G->pos, yythunkpos601= G->thunkpos; if (!yy_Sp(G)) { goto l601; } if (!yy_Ticks5(G)) { goto l601; } goto l462;
  3645. l601:; G->pos= yypos601; G->thunkpos= yythunkpos601;
  3646. }
  3647. { int yypos602= G->pos, yythunkpos602= G->thunkpos; if (!yy_Spacechar(G)) { goto l603; } goto l602;
  3648. l603:; G->pos= yypos602; G->thunkpos= yythunkpos602; if (!yy_Newline(G)) { goto l462; }
  3649. { int yypos604= G->pos, yythunkpos604= G->thunkpos; if (!yy_BlankLine(G)) { goto l604; } goto l462;
  3650. l604:; G->pos= yypos604; G->thunkpos= yythunkpos604;
  3651. }
  3652. }
  3653. l602:;
  3654. }
  3655. l591:;
  3656. l589:;
  3657. { int yypos590= G->pos, yythunkpos590= G->thunkpos;
  3658. { int yypos605= G->pos, yythunkpos605= G->thunkpos;
  3659. { int yypos609= G->pos, yythunkpos609= G->thunkpos; if (!yymatchChar(G, '`')) goto l609; goto l606;
  3660. l609:; G->pos= yypos609; G->thunkpos= yythunkpos609;
  3661. } if (!yy_Nonspacechar(G)) { goto l606; }
  3662. l607:;
  3663. { int yypos608= G->pos, yythunkpos608= G->thunkpos;
  3664. { int yypos610= G->pos, yythunkpos610= G->thunkpos; if (!yymatchChar(G, '`')) goto l610; goto l608;
  3665. l610:; G->pos= yypos610; G->thunkpos= yythunkpos610;
  3666. } if (!yy_Nonspacechar(G)) { goto l608; } goto l607;
  3667. l608:; G->pos= yypos608; G->thunkpos= yythunkpos608;
  3668. } goto l605;
  3669. l606:; G->pos= yypos605; G->thunkpos= yythunkpos605;
  3670. { int yypos612= G->pos, yythunkpos612= G->thunkpos; if (!yy_Ticks5(G)) { goto l612; } goto l611;
  3671. l612:; G->pos= yypos612; G->thunkpos= yythunkpos612;
  3672. } if (!yymatchChar(G, '`')) goto l611;
  3673. l613:;
  3674. { int yypos614= G->pos, yythunkpos614= G->thunkpos; if (!yymatchChar(G, '`')) goto l614; goto l613;
  3675. l614:; G->pos= yypos614; G->thunkpos= yythunkpos614;
  3676. } goto l605;
  3677. l611:; G->pos= yypos605; G->thunkpos= yythunkpos605;
  3678. { int yypos615= G->pos, yythunkpos615= G->thunkpos; if (!yy_Sp(G)) { goto l615; } if (!yy_Ticks5(G)) { goto l615; } goto l590;
  3679. l615:; G->pos= yypos615; G->thunkpos= yythunkpos615;
  3680. }
  3681. { int yypos616= G->pos, yythunkpos616= G->thunkpos; if (!yy_Spacechar(G)) { goto l617; } goto l616;
  3682. l617:; G->pos= yypos616; G->thunkpos= yythunkpos616; if (!yy_Newline(G)) { goto l590; }
  3683. { int yypos618= G->pos, yythunkpos618= G->thunkpos; if (!yy_BlankLine(G)) { goto l618; } goto l590;
  3684. l618:; G->pos= yypos618; G->thunkpos= yythunkpos618;
  3685. }
  3686. }
  3687. l616:;
  3688. }
  3689. l605:; goto l589;
  3690. l590:; G->pos= yypos590; G->thunkpos= yythunkpos590;
  3691. } if (!yy_Sp(G)) { goto l462; } if (!yy_Ticks5(G)) { goto l462; }
  3692. }
  3693. l463:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l462; yyDo(G, yy_1_Code, G->begin, G->end);
  3694. yyprintf((stderr, " ok %s @ %s\n", "Code", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3695. return 1;
  3696. l462:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3697. yyprintf((stderr, " fail %s @ %s\n", "Code", G->buf+G->pos));
  3698. return 0;
  3699. }
  3700. YY_RULE(int) yy_InlineNote(GREG *G)
  3701. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3702. yyprintf((stderr, "%s\n", "InlineNote")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l619; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l619; if (!yy_LocMarker(G)) { goto l619; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "^[")) goto l619;
  3703. { int yypos622= G->pos, yythunkpos622= G->thunkpos; if (!yymatchChar(G, ']')) goto l622; goto l619;
  3704. l622:; G->pos= yypos622; G->thunkpos= yythunkpos622;
  3705. } if (!yy_Inline(G)) { goto l619; }
  3706. l620:;
  3707. { int yypos621= G->pos, yythunkpos621= G->thunkpos;
  3708. { int yypos623= G->pos, yythunkpos623= G->thunkpos; if (!yymatchChar(G, ']')) goto l623; goto l621;
  3709. l623:; G->pos= yypos623; G->thunkpos= yythunkpos623;
  3710. } if (!yy_Inline(G)) { goto l621; } goto l620;
  3711. l621:; G->pos= yypos621; G->thunkpos= yythunkpos621;
  3712. } if (!yymatchChar(G, ']')) goto l619; yyText(G, G->begin, G->end); if (!(YY_END)) goto l619; yyDo(G, yy_1_InlineNote, G->begin, G->end);
  3713. yyprintf((stderr, " ok %s @ %s\n", "InlineNote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3714. return 1;
  3715. l619:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3716. yyprintf((stderr, " fail %s @ %s\n", "InlineNote", G->buf+G->pos));
  3717. return 0;
  3718. }
  3719. YY_RULE(int) yy_NoteReference(GREG *G)
  3720. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3721. yyprintf((stderr, "%s\n", "NoteReference")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l624; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l624; if (!yy_RawNoteReference(G)) { goto l624; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l624; yyDo(G, yy_1_NoteReference, G->begin, G->end);
  3722. yyprintf((stderr, " ok %s @ %s\n", "NoteReference", G->buf+G->pos));
  3723. return 1;
  3724. l624:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3725. yyprintf((stderr, " fail %s @ %s\n", "NoteReference", G->buf+G->pos));
  3726. return 0;
  3727. }
  3728. YY_RULE(int) yy_Link(GREG *G)
  3729. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3730. yyprintf((stderr, "%s\n", "Link"));
  3731. { int yypos626= G->pos, yythunkpos626= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l627; } goto l626;
  3732. l627:; G->pos= yypos626; G->thunkpos= yythunkpos626; if (!yy_ReferenceLink(G)) { goto l628; } goto l626;
  3733. l628:; G->pos= yypos626; G->thunkpos= yythunkpos626; if (!yy_AutoLink(G)) { goto l625; }
  3734. }
  3735. l626:; yyDo(G, yy_1_Link, G->begin, G->end);
  3736. yyprintf((stderr, " ok %s @ %s\n", "Link", G->buf+G->pos));
  3737. return 1;
  3738. l625:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3739. yyprintf((stderr, " fail %s @ %s\n", "Link", G->buf+G->pos));
  3740. return 0;
  3741. }
  3742. YY_RULE(int) yy_Image(GREG *G)
  3743. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3744. yyprintf((stderr, "%s\n", "Image")); if (!yymatchChar(G, '!')) goto l629;
  3745. { int yypos630= G->pos, yythunkpos630= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l631; } goto l630;
  3746. l631:; G->pos= yypos630; G->thunkpos= yythunkpos630; if (!yy_ExplicitLinkSize(G)) { goto l632; } goto l630;
  3747. l632:; G->pos= yypos630; G->thunkpos= yythunkpos630; if (!yy_ReferenceLink(G)) { goto l629; }
  3748. }
  3749. l630:; yyDo(G, yy_1_Image, G->begin, G->end);
  3750. yyprintf((stderr, " ok %s @ %s\n", "Image", G->buf+G->pos));
  3751. return 1;
  3752. l629:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3753. yyprintf((stderr, " fail %s @ %s\n", "Image", G->buf+G->pos));
  3754. return 0;
  3755. }
  3756. YY_RULE(int) yy_Strike(GREG *G)
  3757. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3758. yyprintf((stderr, "%s\n", "Strike")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_STRIKE) )) goto l633; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l633; if (!yy_LocMarker(G)) { goto l633; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "~~")) goto l633;
  3759. { int yypos634= G->pos, yythunkpos634= G->thunkpos; if (!yy_Whitespace(G)) { goto l634; } goto l633;
  3760. l634:; G->pos= yypos634; G->thunkpos= yythunkpos634;
  3761. }
  3762. { int yypos637= G->pos, yythunkpos637= G->thunkpos; if (!yymatchString(G, "~~")) goto l637; goto l633;
  3763. l637:; G->pos= yypos637; G->thunkpos= yythunkpos637;
  3764. } if (!yy_Inline(G)) { goto l633; }
  3765. l635:;
  3766. { int yypos636= G->pos, yythunkpos636= G->thunkpos;
  3767. { int yypos638= G->pos, yythunkpos638= G->thunkpos; if (!yymatchString(G, "~~")) goto l638; goto l636;
  3768. l638:; G->pos= yypos638; G->thunkpos= yythunkpos638;
  3769. } if (!yy_Inline(G)) { goto l636; } goto l635;
  3770. l636:; G->pos= yypos636; G->thunkpos= yythunkpos636;
  3771. } yyText(G, G->begin, G->end); if (!( STRIKE_POST )) goto l633; if (!yymatchString(G, "~~")) goto l633; yyText(G, G->begin, G->end); if (!(YY_END)) goto l633; yyDo(G, yy_1_Strike, G->begin, G->end);
  3772. yyprintf((stderr, " ok %s @ %s\n", "Strike", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3773. return 1;
  3774. l633:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3775. yyprintf((stderr, " fail %s @ %s\n", "Strike", G->buf+G->pos));
  3776. return 0;
  3777. }
  3778. YY_RULE(int) yy_Emph(GREG *G)
  3779. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3780. yyprintf((stderr, "%s\n", "Emph"));
  3781. { int yypos640= G->pos, yythunkpos640= G->thunkpos; if (!yy_EmphStar(G)) { goto l641; } goto l640;
  3782. l641:; G->pos= yypos640; G->thunkpos= yythunkpos640; if (!yy_EmphUl(G)) { goto l639; }
  3783. }
  3784. l640:;
  3785. yyprintf((stderr, " ok %s @ %s\n", "Emph", G->buf+G->pos));
  3786. return 1;
  3787. l639:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3788. yyprintf((stderr, " fail %s @ %s\n", "Emph", G->buf+G->pos));
  3789. return 0;
  3790. }
  3791. YY_RULE(int) yy_Strong(GREG *G)
  3792. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3793. yyprintf((stderr, "%s\n", "Strong"));
  3794. { int yypos643= G->pos, yythunkpos643= G->thunkpos; if (!yy_StrongStar(G)) { goto l644; } goto l643;
  3795. l644:; G->pos= yypos643; G->thunkpos= yythunkpos643; if (!yy_StrongUl(G)) { goto l642; }
  3796. }
  3797. l643:;
  3798. yyprintf((stderr, " ok %s @ %s\n", "Strong", G->buf+G->pos));
  3799. return 1;
  3800. l642:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3801. yyprintf((stderr, " fail %s @ %s\n", "Strong", G->buf+G->pos));
  3802. return 0;
  3803. }
  3804. YY_RULE(int) yy_UlOrStarLine(GREG *G)
  3805. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3806. yyprintf((stderr, "%s\n", "UlOrStarLine"));
  3807. { int yypos646= G->pos, yythunkpos646= G->thunkpos; if (!yy_UlLine(G)) { goto l647; } goto l646;
  3808. l647:; G->pos= yypos646; G->thunkpos= yythunkpos646; if (!yy_StarLine(G)) { goto l645; }
  3809. }
  3810. l646:;
  3811. yyprintf((stderr, " ok %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3812. return 1;
  3813. l645:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3814. yyprintf((stderr, " fail %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3815. return 0;
  3816. }
  3817. YY_RULE(int) yy_Str(GREG *G)
  3818. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3819. yyprintf((stderr, "%s\n", "Str")); if (!yy_NormalChar(G)) { goto l648; }
  3820. l649:;
  3821. { int yypos650= G->pos, yythunkpos650= G->thunkpos;
  3822. { int yypos651= G->pos, yythunkpos651= G->thunkpos; if (!yy_NormalChar(G)) { goto l652; } goto l651;
  3823. l652:; G->pos= yypos651; G->thunkpos= yythunkpos651; if (!yymatchChar(G, '_')) goto l650;
  3824. l653:;
  3825. { int yypos654= G->pos, yythunkpos654= G->thunkpos; if (!yymatchChar(G, '_')) goto l654; goto l653;
  3826. l654:; G->pos= yypos654; G->thunkpos= yythunkpos654;
  3827. }
  3828. { int yypos655= G->pos, yythunkpos655= G->thunkpos; if (!yy_Alphanumeric(G)) { goto l650; } G->pos= yypos655; G->thunkpos= yythunkpos655;
  3829. }
  3830. }
  3831. l651:; goto l649;
  3832. l650:; G->pos= yypos650; G->thunkpos= yythunkpos650;
  3833. }
  3834. yyprintf((stderr, " ok %s @ %s\n", "Str", G->buf+G->pos));
  3835. return 1;
  3836. l648:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3837. yyprintf((stderr, " fail %s @ %s\n", "Str", G->buf+G->pos));
  3838. return 0;
  3839. }
  3840. YY_RULE(int) yy_InStyleTags(GREG *G)
  3841. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3842. yyprintf((stderr, "%s\n", "InStyleTags")); if (!yy_StyleOpen(G)) { goto l656; }
  3843. l657:;
  3844. { int yypos658= G->pos, yythunkpos658= G->thunkpos;
  3845. { int yypos659= G->pos, yythunkpos659= G->thunkpos; if (!yy_StyleClose(G)) { goto l659; } goto l658;
  3846. l659:; G->pos= yypos659; G->thunkpos= yythunkpos659;
  3847. } if (!yymatchDot(G)) goto l658; goto l657;
  3848. l658:; G->pos= yypos658; G->thunkpos= yythunkpos658;
  3849. } if (!yy_StyleClose(G)) { goto l656; }
  3850. yyprintf((stderr, " ok %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3851. return 1;
  3852. l656:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3853. yyprintf((stderr, " fail %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3854. return 0;
  3855. }
  3856. YY_RULE(int) yy_StyleClose(GREG *G)
  3857. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3858. yyprintf((stderr, "%s\n", "StyleClose")); if (!yymatchChar(G, '<')) goto l660; if (!yy_Spnl(G)) { goto l660; } if (!yymatchChar(G, '/')) goto l660;
  3859. { int yypos661= G->pos, yythunkpos661= G->thunkpos; if (!yymatchString(G, "style")) goto l662; goto l661;
  3860. l662:; G->pos= yypos661; G->thunkpos= yythunkpos661; if (!yymatchString(G, "STYLE")) goto l660;
  3861. }
  3862. l661:; if (!yy_Spnl(G)) { goto l660; } if (!yymatchChar(G, '>')) goto l660;
  3863. yyprintf((stderr, " ok %s @ %s\n", "StyleClose", G->buf+G->pos));
  3864. return 1;
  3865. l660:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3866. yyprintf((stderr, " fail %s @ %s\n", "StyleClose", G->buf+G->pos));
  3867. return 0;
  3868. }
  3869. YY_RULE(int) yy_StyleOpen(GREG *G)
  3870. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3871. yyprintf((stderr, "%s\n", "StyleOpen")); if (!yymatchChar(G, '<')) goto l663; if (!yy_Spnl(G)) { goto l663; }
  3872. { int yypos664= G->pos, yythunkpos664= G->thunkpos; if (!yymatchString(G, "style")) goto l665; goto l664;
  3873. l665:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "STYLE")) goto l663;
  3874. }
  3875. l664:; if (!yy_Spnl(G)) { goto l663; }
  3876. l666:;
  3877. { int yypos667= G->pos, yythunkpos667= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l667; } goto l666;
  3878. l667:; G->pos= yypos667; G->thunkpos= yythunkpos667;
  3879. } if (!yymatchChar(G, '>')) goto l663;
  3880. yyprintf((stderr, " ok %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3881. return 1;
  3882. l663:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3883. yyprintf((stderr, " fail %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3884. return 0;
  3885. }
  3886. YY_RULE(int) yy_HtmlBlockType(GREG *G)
  3887. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3888. yyprintf((stderr, "%s\n", "HtmlBlockType"));
  3889. { int yypos669= G->pos, yythunkpos669= G->thunkpos; if (!yymatchString(G, "address")) goto l670; goto l669;
  3890. l670:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "blockquote")) goto l671; goto l669;
  3891. l671:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "center")) goto l672; goto l669;
  3892. l672:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "dir")) goto l673; goto l669;
  3893. l673:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "div")) goto l674; goto l669;
  3894. l674:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "dl")) goto l675; goto l669;
  3895. l675:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "fieldset")) goto l676; goto l669;
  3896. l676:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "form")) goto l677; goto l669;
  3897. l677:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "h1")) goto l678; goto l669;
  3898. l678:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "h2")) goto l679; goto l669;
  3899. l679:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "h3")) goto l680; goto l669;
  3900. l680:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "h4")) goto l681; goto l669;
  3901. l681:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "h5")) goto l682; goto l669;
  3902. l682:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "h6")) goto l683; goto l669;
  3903. l683:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "hr")) goto l684; goto l669;
  3904. l684:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "isindex")) goto l685; goto l669;
  3905. l685:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "menu")) goto l686; goto l669;
  3906. l686:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "noframes")) goto l687; goto l669;
  3907. l687:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "noscript")) goto l688; goto l669;
  3908. l688:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "ol")) goto l689; goto l669;
  3909. l689:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchChar(G, 'p')) goto l690; goto l669;
  3910. l690:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "pre")) goto l691; goto l669;
  3911. l691:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "table")) goto l692; goto l669;
  3912. l692:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "ul")) goto l693; goto l669;
  3913. l693:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "dd")) goto l694; goto l669;
  3914. l694:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "dt")) goto l695; goto l669;
  3915. l695:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "frameset")) goto l696; goto l669;
  3916. l696:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "li")) goto l697; goto l669;
  3917. l697:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "tbody")) goto l698; goto l669;
  3918. l698:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "td")) goto l699; goto l669;
  3919. l699:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "tfoot")) goto l700; goto l669;
  3920. l700:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "th")) goto l701; goto l669;
  3921. l701:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "thead")) goto l702; goto l669;
  3922. l702:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "tr")) goto l703; goto l669;
  3923. l703:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "script")) goto l704; goto l669;
  3924. l704:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "ADDRESS")) goto l705; goto l669;
  3925. l705:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "BLOCKQUOTE")) goto l706; goto l669;
  3926. l706:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "CENTER")) goto l707; goto l669;
  3927. l707:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "DIR")) goto l708; goto l669;
  3928. l708:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "DIV")) goto l709; goto l669;
  3929. l709:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "DL")) goto l710; goto l669;
  3930. l710:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "FIELDSET")) goto l711; goto l669;
  3931. l711:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "FORM")) goto l712; goto l669;
  3932. l712:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "H1")) goto l713; goto l669;
  3933. l713:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "H2")) goto l714; goto l669;
  3934. l714:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "H3")) goto l715; goto l669;
  3935. l715:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "H4")) goto l716; goto l669;
  3936. l716:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "H5")) goto l717; goto l669;
  3937. l717:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "H6")) goto l718; goto l669;
  3938. l718:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "HR")) goto l719; goto l669;
  3939. l719:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "ISINDEX")) goto l720; goto l669;
  3940. l720:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "MENU")) goto l721; goto l669;
  3941. l721:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "NOFRAMES")) goto l722; goto l669;
  3942. l722:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "NOSCRIPT")) goto l723; goto l669;
  3943. l723:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "OL")) goto l724; goto l669;
  3944. l724:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchChar(G, 'P')) goto l725; goto l669;
  3945. l725:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "PRE")) goto l726; goto l669;
  3946. l726:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "TABLE")) goto l727; goto l669;
  3947. l727:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "UL")) goto l728; goto l669;
  3948. l728:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "DD")) goto l729; goto l669;
  3949. l729:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "DT")) goto l730; goto l669;
  3950. l730:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "FRAMESET")) goto l731; goto l669;
  3951. l731:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "LI")) goto l732; goto l669;
  3952. l732:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "TBODY")) goto l733; goto l669;
  3953. l733:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "TD")) goto l734; goto l669;
  3954. l734:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "TFOOT")) goto l735; goto l669;
  3955. l735:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "TH")) goto l736; goto l669;
  3956. l736:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "THEAD")) goto l737; goto l669;
  3957. l737:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "TR")) goto l738; goto l669;
  3958. l738:; G->pos= yypos669; G->thunkpos= yythunkpos669; if (!yymatchString(G, "SCRIPT")) goto l668;
  3959. }
  3960. l669:;
  3961. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3962. return 1;
  3963. l668:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3964. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3965. return 0;
  3966. }
  3967. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G)
  3968. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3969. yyprintf((stderr, "%s\n", "HtmlBlockSelfClosing")); if (!yymatchChar(G, '<')) goto l739; if (!yy_Spnl(G)) { goto l739; } if (!yy_HtmlBlockType(G)) { goto l739; } if (!yy_Spnl(G)) { goto l739; }
  3970. l740:;
  3971. { int yypos741= G->pos, yythunkpos741= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l741; } goto l740;
  3972. l741:; G->pos= yypos741; G->thunkpos= yythunkpos741;
  3973. } if (!yymatchChar(G, '/')) goto l739; if (!yy_Spnl(G)) { goto l739; } if (!yymatchChar(G, '>')) goto l739;
  3974. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3975. return 1;
  3976. l739:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3977. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3978. return 0;
  3979. }
  3980. YY_RULE(int) yy_HtmlComment(GREG *G)
  3981. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3982. yyprintf((stderr, "%s\n", "HtmlComment")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l742; if (!yy_LocMarker(G)) { goto l742; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "<!--")) goto l742;
  3983. l743:;
  3984. { int yypos744= G->pos, yythunkpos744= G->thunkpos;
  3985. { int yypos745= G->pos, yythunkpos745= G->thunkpos; if (!yymatchString(G, "-->")) goto l745; goto l744;
  3986. l745:; G->pos= yypos745; G->thunkpos= yythunkpos745;
  3987. } if (!yymatchDot(G)) goto l744; goto l743;
  3988. l744:; G->pos= yypos744; G->thunkpos= yythunkpos744;
  3989. } if (!yymatchString(G, "-->")) goto l742; yyText(G, G->begin, G->end); if (!(YY_END)) goto l742; yyDo(G, yy_1_HtmlComment, G->begin, G->end);
  3990. yyprintf((stderr, " ok %s @ %s\n", "HtmlComment", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3991. return 1;
  3992. l742:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3993. yyprintf((stderr, " fail %s @ %s\n", "HtmlComment", G->buf+G->pos));
  3994. return 0;
  3995. }
  3996. YY_RULE(int) yy_HtmlBlockInTags(GREG *G)
  3997. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3998. yyprintf((stderr, "%s\n", "HtmlBlockInTags"));
  3999. { int yypos747= G->pos, yythunkpos747= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l748; } goto l747;
  4000. l748:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockBlockquote(G)) { goto l749; } goto l747;
  4001. l749:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockCenter(G)) { goto l750; } goto l747;
  4002. l750:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockDir(G)) { goto l751; } goto l747;
  4003. l751:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockDiv(G)) { goto l752; } goto l747;
  4004. l752:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockDl(G)) { goto l753; } goto l747;
  4005. l753:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockFieldset(G)) { goto l754; } goto l747;
  4006. l754:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockForm(G)) { goto l755; } goto l747;
  4007. l755:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockH1(G)) { goto l756; } goto l747;
  4008. l756:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockH2(G)) { goto l757; } goto l747;
  4009. l757:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockH3(G)) { goto l758; } goto l747;
  4010. l758:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockH4(G)) { goto l759; } goto l747;
  4011. l759:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockH5(G)) { goto l760; } goto l747;
  4012. l760:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockH6(G)) { goto l761; } goto l747;
  4013. l761:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockMenu(G)) { goto l762; } goto l747;
  4014. l762:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockNoframes(G)) { goto l763; } goto l747;
  4015. l763:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockNoscript(G)) { goto l764; } goto l747;
  4016. l764:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockOl(G)) { goto l765; } goto l747;
  4017. l765:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockP(G)) { goto l766; } goto l747;
  4018. l766:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockPre(G)) { goto l767; } goto l747;
  4019. l767:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockTable(G)) { goto l768; } goto l747;
  4020. l768:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockUl(G)) { goto l769; } goto l747;
  4021. l769:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockDd(G)) { goto l770; } goto l747;
  4022. l770:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockDt(G)) { goto l771; } goto l747;
  4023. l771:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockFrameset(G)) { goto l772; } goto l747;
  4024. l772:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockLi(G)) { goto l773; } goto l747;
  4025. l773:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockTbody(G)) { goto l774; } goto l747;
  4026. l774:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockTd(G)) { goto l775; } goto l747;
  4027. l775:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockTfoot(G)) { goto l776; } goto l747;
  4028. l776:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockTh(G)) { goto l777; } goto l747;
  4029. l777:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockThead(G)) { goto l778; } goto l747;
  4030. l778:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockTr(G)) { goto l779; } goto l747;
  4031. l779:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockScript(G)) { goto l780; } goto l747;
  4032. l780:; G->pos= yypos747; G->thunkpos= yythunkpos747; if (!yy_HtmlBlockHead(G)) { goto l746; }
  4033. }
  4034. l747:;
  4035. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  4036. return 1;
  4037. l746:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4038. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  4039. return 0;
  4040. }
  4041. YY_RULE(int) yy_HtmlBlockHead(GREG *G)
  4042. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4043. yyprintf((stderr, "%s\n", "HtmlBlockHead")); if (!yy_HtmlBlockOpenHead(G)) { goto l781; }
  4044. l782:;
  4045. { int yypos783= G->pos, yythunkpos783= G->thunkpos;
  4046. { int yypos784= G->pos, yythunkpos784= G->thunkpos; if (!yy_HtmlBlockCloseHead(G)) { goto l784; } goto l783;
  4047. l784:; G->pos= yypos784; G->thunkpos= yythunkpos784;
  4048. } if (!yymatchDot(G)) goto l783; goto l782;
  4049. l783:; G->pos= yypos783; G->thunkpos= yythunkpos783;
  4050. } if (!yy_HtmlBlockCloseHead(G)) { goto l781; }
  4051. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  4052. return 1;
  4053. l781:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4054. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  4055. return 0;
  4056. }
  4057. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G)
  4058. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4059. yyprintf((stderr, "%s\n", "HtmlBlockCloseHead")); if (!yymatchChar(G, '<')) goto l785; if (!yy_Spnl(G)) { goto l785; } if (!yymatchChar(G, '/')) goto l785;
  4060. { int yypos786= G->pos, yythunkpos786= G->thunkpos; if (!yymatchString(G, "head")) goto l787; goto l786;
  4061. l787:; G->pos= yypos786; G->thunkpos= yythunkpos786; if (!yymatchString(G, "HEAD")) goto l785;
  4062. }
  4063. l786:; if (!yy_Spnl(G)) { goto l785; } if (!yymatchChar(G, '>')) goto l785;
  4064. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  4065. return 1;
  4066. l785:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4067. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  4068. return 0;
  4069. }
  4070. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G)
  4071. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4072. yyprintf((stderr, "%s\n", "HtmlBlockOpenHead")); if (!yymatchChar(G, '<')) goto l788; if (!yy_Spnl(G)) { goto l788; }
  4073. { int yypos789= G->pos, yythunkpos789= G->thunkpos; if (!yymatchString(G, "head")) goto l790; goto l789;
  4074. l790:; G->pos= yypos789; G->thunkpos= yythunkpos789; if (!yymatchString(G, "HEAD")) goto l788;
  4075. }
  4076. l789:; if (!yy_Spnl(G)) { goto l788; }
  4077. l791:;
  4078. { int yypos792= G->pos, yythunkpos792= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l792; } goto l791;
  4079. l792:; G->pos= yypos792; G->thunkpos= yythunkpos792;
  4080. } if (!yymatchChar(G, '>')) goto l788;
  4081. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  4082. return 1;
  4083. l788:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4084. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  4085. return 0;
  4086. }
  4087. YY_RULE(int) yy_HtmlBlockScript(GREG *G)
  4088. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4089. yyprintf((stderr, "%s\n", "HtmlBlockScript")); if (!yy_HtmlBlockOpenScript(G)) { goto l793; }
  4090. l794:;
  4091. { int yypos795= G->pos, yythunkpos795= G->thunkpos;
  4092. { int yypos796= G->pos, yythunkpos796= G->thunkpos; if (!yy_HtmlBlockCloseScript(G)) { goto l796; } goto l795;
  4093. l796:; G->pos= yypos796; G->thunkpos= yythunkpos796;
  4094. } if (!yymatchDot(G)) goto l795; goto l794;
  4095. l795:; G->pos= yypos795; G->thunkpos= yythunkpos795;
  4096. } if (!yy_HtmlBlockCloseScript(G)) { goto l793; }
  4097. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  4098. return 1;
  4099. l793:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4100. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  4101. return 0;
  4102. }
  4103. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G)
  4104. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4105. yyprintf((stderr, "%s\n", "HtmlBlockCloseScript")); if (!yymatchChar(G, '<')) goto l797; if (!yy_Spnl(G)) { goto l797; } if (!yymatchChar(G, '/')) goto l797;
  4106. { int yypos798= G->pos, yythunkpos798= G->thunkpos; if (!yymatchString(G, "script")) goto l799; goto l798;
  4107. l799:; G->pos= yypos798; G->thunkpos= yythunkpos798; if (!yymatchString(G, "SCRIPT")) goto l797;
  4108. }
  4109. l798:; if (!yy_Spnl(G)) { goto l797; } if (!yymatchChar(G, '>')) goto l797;
  4110. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4111. return 1;
  4112. l797:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4113. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4114. return 0;
  4115. }
  4116. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G)
  4117. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4118. yyprintf((stderr, "%s\n", "HtmlBlockOpenScript")); if (!yymatchChar(G, '<')) goto l800; if (!yy_Spnl(G)) { goto l800; }
  4119. { int yypos801= G->pos, yythunkpos801= G->thunkpos; if (!yymatchString(G, "script")) goto l802; goto l801;
  4120. l802:; G->pos= yypos801; G->thunkpos= yythunkpos801; if (!yymatchString(G, "SCRIPT")) goto l800;
  4121. }
  4122. l801:; if (!yy_Spnl(G)) { goto l800; }
  4123. l803:;
  4124. { int yypos804= G->pos, yythunkpos804= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l804; } goto l803;
  4125. l804:; G->pos= yypos804; G->thunkpos= yythunkpos804;
  4126. } if (!yymatchChar(G, '>')) goto l800;
  4127. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4128. return 1;
  4129. l800:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4130. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4131. return 0;
  4132. }
  4133. YY_RULE(int) yy_HtmlBlockTr(GREG *G)
  4134. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4135. yyprintf((stderr, "%s\n", "HtmlBlockTr")); if (!yy_HtmlBlockOpenTr(G)) { goto l805; }
  4136. l806:;
  4137. { int yypos807= G->pos, yythunkpos807= G->thunkpos;
  4138. { int yypos808= G->pos, yythunkpos808= G->thunkpos; if (!yy_HtmlBlockTr(G)) { goto l809; } goto l808;
  4139. l809:; G->pos= yypos808; G->thunkpos= yythunkpos808;
  4140. { int yypos810= G->pos, yythunkpos810= G->thunkpos; if (!yy_HtmlBlockCloseTr(G)) { goto l810; } goto l807;
  4141. l810:; G->pos= yypos810; G->thunkpos= yythunkpos810;
  4142. } if (!yymatchDot(G)) goto l807;
  4143. }
  4144. l808:; goto l806;
  4145. l807:; G->pos= yypos807; G->thunkpos= yythunkpos807;
  4146. } if (!yy_HtmlBlockCloseTr(G)) { goto l805; }
  4147. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4148. return 1;
  4149. l805:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4150. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4151. return 0;
  4152. }
  4153. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G)
  4154. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4155. yyprintf((stderr, "%s\n", "HtmlBlockCloseTr")); if (!yymatchChar(G, '<')) goto l811; if (!yy_Spnl(G)) { goto l811; } if (!yymatchChar(G, '/')) goto l811;
  4156. { int yypos812= G->pos, yythunkpos812= G->thunkpos; if (!yymatchString(G, "tr")) goto l813; goto l812;
  4157. l813:; G->pos= yypos812; G->thunkpos= yythunkpos812; if (!yymatchString(G, "TR")) goto l811;
  4158. }
  4159. l812:; if (!yy_Spnl(G)) { goto l811; } if (!yymatchChar(G, '>')) goto l811;
  4160. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4161. return 1;
  4162. l811:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4163. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4164. return 0;
  4165. }
  4166. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G)
  4167. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4168. yyprintf((stderr, "%s\n", "HtmlBlockOpenTr")); if (!yymatchChar(G, '<')) goto l814; if (!yy_Spnl(G)) { goto l814; }
  4169. { int yypos815= G->pos, yythunkpos815= G->thunkpos; if (!yymatchString(G, "tr")) goto l816; goto l815;
  4170. l816:; G->pos= yypos815; G->thunkpos= yythunkpos815; if (!yymatchString(G, "TR")) goto l814;
  4171. }
  4172. l815:; if (!yy_Spnl(G)) { goto l814; }
  4173. l817:;
  4174. { int yypos818= G->pos, yythunkpos818= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l818; } goto l817;
  4175. l818:; G->pos= yypos818; G->thunkpos= yythunkpos818;
  4176. } if (!yymatchChar(G, '>')) goto l814;
  4177. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4178. return 1;
  4179. l814:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4180. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4181. return 0;
  4182. }
  4183. YY_RULE(int) yy_HtmlBlockThead(GREG *G)
  4184. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4185. yyprintf((stderr, "%s\n", "HtmlBlockThead")); if (!yy_HtmlBlockOpenThead(G)) { goto l819; }
  4186. l820:;
  4187. { int yypos821= G->pos, yythunkpos821= G->thunkpos;
  4188. { int yypos822= G->pos, yythunkpos822= G->thunkpos; if (!yy_HtmlBlockThead(G)) { goto l823; } goto l822;
  4189. l823:; G->pos= yypos822; G->thunkpos= yythunkpos822;
  4190. { int yypos824= G->pos, yythunkpos824= G->thunkpos; if (!yy_HtmlBlockCloseThead(G)) { goto l824; } goto l821;
  4191. l824:; G->pos= yypos824; G->thunkpos= yythunkpos824;
  4192. } if (!yymatchDot(G)) goto l821;
  4193. }
  4194. l822:; goto l820;
  4195. l821:; G->pos= yypos821; G->thunkpos= yythunkpos821;
  4196. } if (!yy_HtmlBlockCloseThead(G)) { goto l819; }
  4197. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4198. return 1;
  4199. l819:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4200. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4201. return 0;
  4202. }
  4203. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G)
  4204. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4205. yyprintf((stderr, "%s\n", "HtmlBlockCloseThead")); if (!yymatchChar(G, '<')) goto l825; if (!yy_Spnl(G)) { goto l825; } if (!yymatchChar(G, '/')) goto l825;
  4206. { int yypos826= G->pos, yythunkpos826= G->thunkpos; if (!yymatchString(G, "thead")) goto l827; goto l826;
  4207. l827:; G->pos= yypos826; G->thunkpos= yythunkpos826; if (!yymatchString(G, "THEAD")) goto l825;
  4208. }
  4209. l826:; if (!yy_Spnl(G)) { goto l825; } if (!yymatchChar(G, '>')) goto l825;
  4210. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4211. return 1;
  4212. l825:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4213. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4214. return 0;
  4215. }
  4216. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G)
  4217. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4218. yyprintf((stderr, "%s\n", "HtmlBlockOpenThead")); if (!yymatchChar(G, '<')) goto l828; if (!yy_Spnl(G)) { goto l828; }
  4219. { int yypos829= G->pos, yythunkpos829= G->thunkpos; if (!yymatchString(G, "thead")) goto l830; goto l829;
  4220. l830:; G->pos= yypos829; G->thunkpos= yythunkpos829; if (!yymatchString(G, "THEAD")) goto l828;
  4221. }
  4222. l829:; if (!yy_Spnl(G)) { goto l828; }
  4223. l831:;
  4224. { int yypos832= G->pos, yythunkpos832= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l832; } goto l831;
  4225. l832:; G->pos= yypos832; G->thunkpos= yythunkpos832;
  4226. } if (!yymatchChar(G, '>')) goto l828;
  4227. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4228. return 1;
  4229. l828:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4230. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4231. return 0;
  4232. }
  4233. YY_RULE(int) yy_HtmlBlockTh(GREG *G)
  4234. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4235. yyprintf((stderr, "%s\n", "HtmlBlockTh")); if (!yy_HtmlBlockOpenTh(G)) { goto l833; }
  4236. l834:;
  4237. { int yypos835= G->pos, yythunkpos835= G->thunkpos;
  4238. { int yypos836= G->pos, yythunkpos836= G->thunkpos; if (!yy_HtmlBlockTh(G)) { goto l837; } goto l836;
  4239. l837:; G->pos= yypos836; G->thunkpos= yythunkpos836;
  4240. { int yypos838= G->pos, yythunkpos838= G->thunkpos; if (!yy_HtmlBlockCloseTh(G)) { goto l838; } goto l835;
  4241. l838:; G->pos= yypos838; G->thunkpos= yythunkpos838;
  4242. } if (!yymatchDot(G)) goto l835;
  4243. }
  4244. l836:; goto l834;
  4245. l835:; G->pos= yypos835; G->thunkpos= yythunkpos835;
  4246. } if (!yy_HtmlBlockCloseTh(G)) { goto l833; }
  4247. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4248. return 1;
  4249. l833:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4250. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4251. return 0;
  4252. }
  4253. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G)
  4254. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4255. yyprintf((stderr, "%s\n", "HtmlBlockCloseTh")); if (!yymatchChar(G, '<')) goto l839; if (!yy_Spnl(G)) { goto l839; } if (!yymatchChar(G, '/')) goto l839;
  4256. { int yypos840= G->pos, yythunkpos840= G->thunkpos; if (!yymatchString(G, "th")) goto l841; goto l840;
  4257. l841:; G->pos= yypos840; G->thunkpos= yythunkpos840; if (!yymatchString(G, "TH")) goto l839;
  4258. }
  4259. l840:; if (!yy_Spnl(G)) { goto l839; } if (!yymatchChar(G, '>')) goto l839;
  4260. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4261. return 1;
  4262. l839:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4263. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4264. return 0;
  4265. }
  4266. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G)
  4267. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4268. yyprintf((stderr, "%s\n", "HtmlBlockOpenTh")); if (!yymatchChar(G, '<')) goto l842; if (!yy_Spnl(G)) { goto l842; }
  4269. { int yypos843= G->pos, yythunkpos843= G->thunkpos; if (!yymatchString(G, "th")) goto l844; goto l843;
  4270. l844:; G->pos= yypos843; G->thunkpos= yythunkpos843; if (!yymatchString(G, "TH")) goto l842;
  4271. }
  4272. l843:; if (!yy_Spnl(G)) { goto l842; }
  4273. l845:;
  4274. { int yypos846= G->pos, yythunkpos846= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l846; } goto l845;
  4275. l846:; G->pos= yypos846; G->thunkpos= yythunkpos846;
  4276. } if (!yymatchChar(G, '>')) goto l842;
  4277. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4278. return 1;
  4279. l842:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4280. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4281. return 0;
  4282. }
  4283. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G)
  4284. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4285. yyprintf((stderr, "%s\n", "HtmlBlockTfoot")); if (!yy_HtmlBlockOpenTfoot(G)) { goto l847; }
  4286. l848:;
  4287. { int yypos849= G->pos, yythunkpos849= G->thunkpos;
  4288. { int yypos850= G->pos, yythunkpos850= G->thunkpos; if (!yy_HtmlBlockTfoot(G)) { goto l851; } goto l850;
  4289. l851:; G->pos= yypos850; G->thunkpos= yythunkpos850;
  4290. { int yypos852= G->pos, yythunkpos852= G->thunkpos; if (!yy_HtmlBlockCloseTfoot(G)) { goto l852; } goto l849;
  4291. l852:; G->pos= yypos852; G->thunkpos= yythunkpos852;
  4292. } if (!yymatchDot(G)) goto l849;
  4293. }
  4294. l850:; goto l848;
  4295. l849:; G->pos= yypos849; G->thunkpos= yythunkpos849;
  4296. } if (!yy_HtmlBlockCloseTfoot(G)) { goto l847; }
  4297. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4298. return 1;
  4299. l847:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4300. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4301. return 0;
  4302. }
  4303. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G)
  4304. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4305. yyprintf((stderr, "%s\n", "HtmlBlockCloseTfoot")); if (!yymatchChar(G, '<')) goto l853; if (!yy_Spnl(G)) { goto l853; } if (!yymatchChar(G, '/')) goto l853;
  4306. { int yypos854= G->pos, yythunkpos854= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l855; goto l854;
  4307. l855:; G->pos= yypos854; G->thunkpos= yythunkpos854; if (!yymatchString(G, "TFOOT")) goto l853;
  4308. }
  4309. l854:; if (!yy_Spnl(G)) { goto l853; } if (!yymatchChar(G, '>')) goto l853;
  4310. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4311. return 1;
  4312. l853:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4313. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4314. return 0;
  4315. }
  4316. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G)
  4317. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4318. yyprintf((stderr, "%s\n", "HtmlBlockOpenTfoot")); if (!yymatchChar(G, '<')) goto l856; if (!yy_Spnl(G)) { goto l856; }
  4319. { int yypos857= G->pos, yythunkpos857= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l858; goto l857;
  4320. l858:; G->pos= yypos857; G->thunkpos= yythunkpos857; if (!yymatchString(G, "TFOOT")) goto l856;
  4321. }
  4322. l857:; if (!yy_Spnl(G)) { goto l856; }
  4323. l859:;
  4324. { int yypos860= G->pos, yythunkpos860= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l860; } goto l859;
  4325. l860:; G->pos= yypos860; G->thunkpos= yythunkpos860;
  4326. } if (!yymatchChar(G, '>')) goto l856;
  4327. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4328. return 1;
  4329. l856:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4330. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4331. return 0;
  4332. }
  4333. YY_RULE(int) yy_HtmlBlockTd(GREG *G)
  4334. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4335. yyprintf((stderr, "%s\n", "HtmlBlockTd")); if (!yy_HtmlBlockOpenTd(G)) { goto l861; }
  4336. l862:;
  4337. { int yypos863= G->pos, yythunkpos863= G->thunkpos;
  4338. { int yypos864= G->pos, yythunkpos864= G->thunkpos; if (!yy_HtmlBlockTd(G)) { goto l865; } goto l864;
  4339. l865:; G->pos= yypos864; G->thunkpos= yythunkpos864;
  4340. { int yypos866= G->pos, yythunkpos866= G->thunkpos; if (!yy_HtmlBlockCloseTd(G)) { goto l866; } goto l863;
  4341. l866:; G->pos= yypos866; G->thunkpos= yythunkpos866;
  4342. } if (!yymatchDot(G)) goto l863;
  4343. }
  4344. l864:; goto l862;
  4345. l863:; G->pos= yypos863; G->thunkpos= yythunkpos863;
  4346. } if (!yy_HtmlBlockCloseTd(G)) { goto l861; }
  4347. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4348. return 1;
  4349. l861:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4350. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4351. return 0;
  4352. }
  4353. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G)
  4354. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4355. yyprintf((stderr, "%s\n", "HtmlBlockCloseTd")); if (!yymatchChar(G, '<')) goto l867; if (!yy_Spnl(G)) { goto l867; } if (!yymatchChar(G, '/')) goto l867;
  4356. { int yypos868= G->pos, yythunkpos868= G->thunkpos; if (!yymatchString(G, "td")) goto l869; goto l868;
  4357. l869:; G->pos= yypos868; G->thunkpos= yythunkpos868; if (!yymatchString(G, "TD")) goto l867;
  4358. }
  4359. l868:; if (!yy_Spnl(G)) { goto l867; } if (!yymatchChar(G, '>')) goto l867;
  4360. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4361. return 1;
  4362. l867:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4363. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4364. return 0;
  4365. }
  4366. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G)
  4367. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4368. yyprintf((stderr, "%s\n", "HtmlBlockOpenTd")); if (!yymatchChar(G, '<')) goto l870; if (!yy_Spnl(G)) { goto l870; }
  4369. { int yypos871= G->pos, yythunkpos871= G->thunkpos; if (!yymatchString(G, "td")) goto l872; goto l871;
  4370. l872:; G->pos= yypos871; G->thunkpos= yythunkpos871; if (!yymatchString(G, "TD")) goto l870;
  4371. }
  4372. l871:; if (!yy_Spnl(G)) { goto l870; }
  4373. l873:;
  4374. { int yypos874= G->pos, yythunkpos874= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l874; } goto l873;
  4375. l874:; G->pos= yypos874; G->thunkpos= yythunkpos874;
  4376. } if (!yymatchChar(G, '>')) goto l870;
  4377. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4378. return 1;
  4379. l870:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4380. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4381. return 0;
  4382. }
  4383. YY_RULE(int) yy_HtmlBlockTbody(GREG *G)
  4384. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4385. yyprintf((stderr, "%s\n", "HtmlBlockTbody")); if (!yy_HtmlBlockOpenTbody(G)) { goto l875; }
  4386. l876:;
  4387. { int yypos877= G->pos, yythunkpos877= G->thunkpos;
  4388. { int yypos878= G->pos, yythunkpos878= G->thunkpos; if (!yy_HtmlBlockTbody(G)) { goto l879; } goto l878;
  4389. l879:; G->pos= yypos878; G->thunkpos= yythunkpos878;
  4390. { int yypos880= G->pos, yythunkpos880= G->thunkpos; if (!yy_HtmlBlockCloseTbody(G)) { goto l880; } goto l877;
  4391. l880:; G->pos= yypos880; G->thunkpos= yythunkpos880;
  4392. } if (!yymatchDot(G)) goto l877;
  4393. }
  4394. l878:; goto l876;
  4395. l877:; G->pos= yypos877; G->thunkpos= yythunkpos877;
  4396. } if (!yy_HtmlBlockCloseTbody(G)) { goto l875; }
  4397. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4398. return 1;
  4399. l875:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4400. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4401. return 0;
  4402. }
  4403. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G)
  4404. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4405. yyprintf((stderr, "%s\n", "HtmlBlockCloseTbody")); if (!yymatchChar(G, '<')) goto l881; if (!yy_Spnl(G)) { goto l881; } if (!yymatchChar(G, '/')) goto l881;
  4406. { int yypos882= G->pos, yythunkpos882= G->thunkpos; if (!yymatchString(G, "tbody")) goto l883; goto l882;
  4407. l883:; G->pos= yypos882; G->thunkpos= yythunkpos882; if (!yymatchString(G, "TBODY")) goto l881;
  4408. }
  4409. l882:; if (!yy_Spnl(G)) { goto l881; } if (!yymatchChar(G, '>')) goto l881;
  4410. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4411. return 1;
  4412. l881:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4413. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4414. return 0;
  4415. }
  4416. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G)
  4417. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4418. yyprintf((stderr, "%s\n", "HtmlBlockOpenTbody")); if (!yymatchChar(G, '<')) goto l884; if (!yy_Spnl(G)) { goto l884; }
  4419. { int yypos885= G->pos, yythunkpos885= G->thunkpos; if (!yymatchString(G, "tbody")) goto l886; goto l885;
  4420. l886:; G->pos= yypos885; G->thunkpos= yythunkpos885; if (!yymatchString(G, "TBODY")) goto l884;
  4421. }
  4422. l885:; if (!yy_Spnl(G)) { goto l884; }
  4423. l887:;
  4424. { int yypos888= G->pos, yythunkpos888= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l888; } goto l887;
  4425. l888:; G->pos= yypos888; G->thunkpos= yythunkpos888;
  4426. } if (!yymatchChar(G, '>')) goto l884;
  4427. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4428. return 1;
  4429. l884:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4430. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4431. return 0;
  4432. }
  4433. YY_RULE(int) yy_HtmlBlockLi(GREG *G)
  4434. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4435. yyprintf((stderr, "%s\n", "HtmlBlockLi")); if (!yy_HtmlBlockOpenLi(G)) { goto l889; }
  4436. l890:;
  4437. { int yypos891= G->pos, yythunkpos891= G->thunkpos;
  4438. { int yypos892= G->pos, yythunkpos892= G->thunkpos; if (!yy_HtmlBlockLi(G)) { goto l893; } goto l892;
  4439. l893:; G->pos= yypos892; G->thunkpos= yythunkpos892;
  4440. { int yypos894= G->pos, yythunkpos894= G->thunkpos; if (!yy_HtmlBlockCloseLi(G)) { goto l894; } goto l891;
  4441. l894:; G->pos= yypos894; G->thunkpos= yythunkpos894;
  4442. } if (!yymatchDot(G)) goto l891;
  4443. }
  4444. l892:; goto l890;
  4445. l891:; G->pos= yypos891; G->thunkpos= yythunkpos891;
  4446. } if (!yy_HtmlBlockCloseLi(G)) { goto l889; }
  4447. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4448. return 1;
  4449. l889:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4450. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4451. return 0;
  4452. }
  4453. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G)
  4454. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4455. yyprintf((stderr, "%s\n", "HtmlBlockCloseLi")); if (!yymatchChar(G, '<')) goto l895; if (!yy_Spnl(G)) { goto l895; } if (!yymatchChar(G, '/')) goto l895;
  4456. { int yypos896= G->pos, yythunkpos896= G->thunkpos; if (!yymatchString(G, "li")) goto l897; goto l896;
  4457. l897:; G->pos= yypos896; G->thunkpos= yythunkpos896; if (!yymatchString(G, "LI")) goto l895;
  4458. }
  4459. l896:; if (!yy_Spnl(G)) { goto l895; } if (!yymatchChar(G, '>')) goto l895;
  4460. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4461. return 1;
  4462. l895:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4463. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4464. return 0;
  4465. }
  4466. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G)
  4467. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4468. yyprintf((stderr, "%s\n", "HtmlBlockOpenLi")); if (!yymatchChar(G, '<')) goto l898; if (!yy_Spnl(G)) { goto l898; }
  4469. { int yypos899= G->pos, yythunkpos899= G->thunkpos; if (!yymatchString(G, "li")) goto l900; goto l899;
  4470. l900:; G->pos= yypos899; G->thunkpos= yythunkpos899; if (!yymatchString(G, "LI")) goto l898;
  4471. }
  4472. l899:; if (!yy_Spnl(G)) { goto l898; }
  4473. l901:;
  4474. { int yypos902= G->pos, yythunkpos902= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l902; } goto l901;
  4475. l902:; G->pos= yypos902; G->thunkpos= yythunkpos902;
  4476. } if (!yymatchChar(G, '>')) goto l898;
  4477. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4478. return 1;
  4479. l898:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4480. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4481. return 0;
  4482. }
  4483. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G)
  4484. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4485. yyprintf((stderr, "%s\n", "HtmlBlockFrameset")); if (!yy_HtmlBlockOpenFrameset(G)) { goto l903; }
  4486. l904:;
  4487. { int yypos905= G->pos, yythunkpos905= G->thunkpos;
  4488. { int yypos906= G->pos, yythunkpos906= G->thunkpos; if (!yy_HtmlBlockFrameset(G)) { goto l907; } goto l906;
  4489. l907:; G->pos= yypos906; G->thunkpos= yythunkpos906;
  4490. { int yypos908= G->pos, yythunkpos908= G->thunkpos; if (!yy_HtmlBlockCloseFrameset(G)) { goto l908; } goto l905;
  4491. l908:; G->pos= yypos908; G->thunkpos= yythunkpos908;
  4492. } if (!yymatchDot(G)) goto l905;
  4493. }
  4494. l906:; goto l904;
  4495. l905:; G->pos= yypos905; G->thunkpos= yythunkpos905;
  4496. } if (!yy_HtmlBlockCloseFrameset(G)) { goto l903; }
  4497. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4498. return 1;
  4499. l903:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4500. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4501. return 0;
  4502. }
  4503. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G)
  4504. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4505. yyprintf((stderr, "%s\n", "HtmlBlockCloseFrameset")); if (!yymatchChar(G, '<')) goto l909; if (!yy_Spnl(G)) { goto l909; } if (!yymatchChar(G, '/')) goto l909;
  4506. { int yypos910= G->pos, yythunkpos910= G->thunkpos; if (!yymatchString(G, "frameset")) goto l911; goto l910;
  4507. l911:; G->pos= yypos910; G->thunkpos= yythunkpos910; if (!yymatchString(G, "FRAMESET")) goto l909;
  4508. }
  4509. l910:; if (!yy_Spnl(G)) { goto l909; } if (!yymatchChar(G, '>')) goto l909;
  4510. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4511. return 1;
  4512. l909:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4513. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4514. return 0;
  4515. }
  4516. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G)
  4517. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4518. yyprintf((stderr, "%s\n", "HtmlBlockOpenFrameset")); if (!yymatchChar(G, '<')) goto l912; if (!yy_Spnl(G)) { goto l912; }
  4519. { int yypos913= G->pos, yythunkpos913= G->thunkpos; if (!yymatchString(G, "frameset")) goto l914; goto l913;
  4520. l914:; G->pos= yypos913; G->thunkpos= yythunkpos913; if (!yymatchString(G, "FRAMESET")) goto l912;
  4521. }
  4522. l913:; if (!yy_Spnl(G)) { goto l912; }
  4523. l915:;
  4524. { int yypos916= G->pos, yythunkpos916= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l916; } goto l915;
  4525. l916:; G->pos= yypos916; G->thunkpos= yythunkpos916;
  4526. } if (!yymatchChar(G, '>')) goto l912;
  4527. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4528. return 1;
  4529. l912:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4530. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4531. return 0;
  4532. }
  4533. YY_RULE(int) yy_HtmlBlockDt(GREG *G)
  4534. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4535. yyprintf((stderr, "%s\n", "HtmlBlockDt")); if (!yy_HtmlBlockOpenDt(G)) { goto l917; }
  4536. l918:;
  4537. { int yypos919= G->pos, yythunkpos919= G->thunkpos;
  4538. { int yypos920= G->pos, yythunkpos920= G->thunkpos; if (!yy_HtmlBlockDt(G)) { goto l921; } goto l920;
  4539. l921:; G->pos= yypos920; G->thunkpos= yythunkpos920;
  4540. { int yypos922= G->pos, yythunkpos922= G->thunkpos; if (!yy_HtmlBlockCloseDt(G)) { goto l922; } goto l919;
  4541. l922:; G->pos= yypos922; G->thunkpos= yythunkpos922;
  4542. } if (!yymatchDot(G)) goto l919;
  4543. }
  4544. l920:; goto l918;
  4545. l919:; G->pos= yypos919; G->thunkpos= yythunkpos919;
  4546. } if (!yy_HtmlBlockCloseDt(G)) { goto l917; }
  4547. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4548. return 1;
  4549. l917:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4550. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4551. return 0;
  4552. }
  4553. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G)
  4554. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4555. yyprintf((stderr, "%s\n", "HtmlBlockCloseDt")); if (!yymatchChar(G, '<')) goto l923; if (!yy_Spnl(G)) { goto l923; } if (!yymatchChar(G, '/')) goto l923;
  4556. { int yypos924= G->pos, yythunkpos924= G->thunkpos; if (!yymatchString(G, "dt")) goto l925; goto l924;
  4557. l925:; G->pos= yypos924; G->thunkpos= yythunkpos924; if (!yymatchString(G, "DT")) goto l923;
  4558. }
  4559. l924:; if (!yy_Spnl(G)) { goto l923; } if (!yymatchChar(G, '>')) goto l923;
  4560. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4561. return 1;
  4562. l923:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4563. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4564. return 0;
  4565. }
  4566. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G)
  4567. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4568. yyprintf((stderr, "%s\n", "HtmlBlockOpenDt")); if (!yymatchChar(G, '<')) goto l926; if (!yy_Spnl(G)) { goto l926; }
  4569. { int yypos927= G->pos, yythunkpos927= G->thunkpos; if (!yymatchString(G, "dt")) goto l928; goto l927;
  4570. l928:; G->pos= yypos927; G->thunkpos= yythunkpos927; if (!yymatchString(G, "DT")) goto l926;
  4571. }
  4572. l927:; if (!yy_Spnl(G)) { goto l926; }
  4573. l929:;
  4574. { int yypos930= G->pos, yythunkpos930= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l930; } goto l929;
  4575. l930:; G->pos= yypos930; G->thunkpos= yythunkpos930;
  4576. } if (!yymatchChar(G, '>')) goto l926;
  4577. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4578. return 1;
  4579. l926:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4580. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4581. return 0;
  4582. }
  4583. YY_RULE(int) yy_HtmlBlockDd(GREG *G)
  4584. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4585. yyprintf((stderr, "%s\n", "HtmlBlockDd")); if (!yy_HtmlBlockOpenDd(G)) { goto l931; }
  4586. l932:;
  4587. { int yypos933= G->pos, yythunkpos933= G->thunkpos;
  4588. { int yypos934= G->pos, yythunkpos934= G->thunkpos; if (!yy_HtmlBlockDd(G)) { goto l935; } goto l934;
  4589. l935:; G->pos= yypos934; G->thunkpos= yythunkpos934;
  4590. { int yypos936= G->pos, yythunkpos936= G->thunkpos; if (!yy_HtmlBlockCloseDd(G)) { goto l936; } goto l933;
  4591. l936:; G->pos= yypos936; G->thunkpos= yythunkpos936;
  4592. } if (!yymatchDot(G)) goto l933;
  4593. }
  4594. l934:; goto l932;
  4595. l933:; G->pos= yypos933; G->thunkpos= yythunkpos933;
  4596. } if (!yy_HtmlBlockCloseDd(G)) { goto l931; }
  4597. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4598. return 1;
  4599. l931:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4600. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4601. return 0;
  4602. }
  4603. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G)
  4604. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4605. yyprintf((stderr, "%s\n", "HtmlBlockCloseDd")); if (!yymatchChar(G, '<')) goto l937; if (!yy_Spnl(G)) { goto l937; } if (!yymatchChar(G, '/')) goto l937;
  4606. { int yypos938= G->pos, yythunkpos938= G->thunkpos; if (!yymatchString(G, "dd")) goto l939; goto l938;
  4607. l939:; G->pos= yypos938; G->thunkpos= yythunkpos938; if (!yymatchString(G, "DD")) goto l937;
  4608. }
  4609. l938:; if (!yy_Spnl(G)) { goto l937; } if (!yymatchChar(G, '>')) goto l937;
  4610. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4611. return 1;
  4612. l937:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4613. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4614. return 0;
  4615. }
  4616. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G)
  4617. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4618. yyprintf((stderr, "%s\n", "HtmlBlockOpenDd")); if (!yymatchChar(G, '<')) goto l940; if (!yy_Spnl(G)) { goto l940; }
  4619. { int yypos941= G->pos, yythunkpos941= G->thunkpos; if (!yymatchString(G, "dd")) goto l942; goto l941;
  4620. l942:; G->pos= yypos941; G->thunkpos= yythunkpos941; if (!yymatchString(G, "DD")) goto l940;
  4621. }
  4622. l941:; if (!yy_Spnl(G)) { goto l940; }
  4623. l943:;
  4624. { int yypos944= G->pos, yythunkpos944= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l944; } goto l943;
  4625. l944:; G->pos= yypos944; G->thunkpos= yythunkpos944;
  4626. } if (!yymatchChar(G, '>')) goto l940;
  4627. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4628. return 1;
  4629. l940:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4630. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4631. return 0;
  4632. }
  4633. YY_RULE(int) yy_HtmlBlockUl(GREG *G)
  4634. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4635. yyprintf((stderr, "%s\n", "HtmlBlockUl")); if (!yy_HtmlBlockOpenUl(G)) { goto l945; }
  4636. l946:;
  4637. { int yypos947= G->pos, yythunkpos947= G->thunkpos;
  4638. { int yypos948= G->pos, yythunkpos948= G->thunkpos; if (!yy_HtmlBlockUl(G)) { goto l949; } goto l948;
  4639. l949:; G->pos= yypos948; G->thunkpos= yythunkpos948;
  4640. { int yypos950= G->pos, yythunkpos950= G->thunkpos; if (!yy_HtmlBlockCloseUl(G)) { goto l950; } goto l947;
  4641. l950:; G->pos= yypos950; G->thunkpos= yythunkpos950;
  4642. } if (!yymatchDot(G)) goto l947;
  4643. }
  4644. l948:; goto l946;
  4645. l947:; G->pos= yypos947; G->thunkpos= yythunkpos947;
  4646. } if (!yy_HtmlBlockCloseUl(G)) { goto l945; }
  4647. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4648. return 1;
  4649. l945:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4650. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4651. return 0;
  4652. }
  4653. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G)
  4654. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4655. yyprintf((stderr, "%s\n", "HtmlBlockCloseUl")); if (!yymatchChar(G, '<')) goto l951; if (!yy_Spnl(G)) { goto l951; } if (!yymatchChar(G, '/')) goto l951;
  4656. { int yypos952= G->pos, yythunkpos952= G->thunkpos; if (!yymatchString(G, "ul")) goto l953; goto l952;
  4657. l953:; G->pos= yypos952; G->thunkpos= yythunkpos952; if (!yymatchString(G, "UL")) goto l951;
  4658. }
  4659. l952:; if (!yy_Spnl(G)) { goto l951; } if (!yymatchChar(G, '>')) goto l951;
  4660. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4661. return 1;
  4662. l951:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4663. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4664. return 0;
  4665. }
  4666. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G)
  4667. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4668. yyprintf((stderr, "%s\n", "HtmlBlockOpenUl")); if (!yymatchChar(G, '<')) goto l954; if (!yy_Spnl(G)) { goto l954; }
  4669. { int yypos955= G->pos, yythunkpos955= G->thunkpos; if (!yymatchString(G, "ul")) goto l956; goto l955;
  4670. l956:; G->pos= yypos955; G->thunkpos= yythunkpos955; if (!yymatchString(G, "UL")) goto l954;
  4671. }
  4672. l955:; if (!yy_Spnl(G)) { goto l954; }
  4673. l957:;
  4674. { int yypos958= G->pos, yythunkpos958= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l958; } goto l957;
  4675. l958:; G->pos= yypos958; G->thunkpos= yythunkpos958;
  4676. } if (!yymatchChar(G, '>')) goto l954;
  4677. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4678. return 1;
  4679. l954:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4680. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4681. return 0;
  4682. }
  4683. YY_RULE(int) yy_HtmlBlockTable(GREG *G)
  4684. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4685. yyprintf((stderr, "%s\n", "HtmlBlockTable")); if (!yy_HtmlBlockOpenTable(G)) { goto l959; }
  4686. l960:;
  4687. { int yypos961= G->pos, yythunkpos961= G->thunkpos;
  4688. { int yypos962= G->pos, yythunkpos962= G->thunkpos; if (!yy_HtmlBlockTable(G)) { goto l963; } goto l962;
  4689. l963:; G->pos= yypos962; G->thunkpos= yythunkpos962;
  4690. { int yypos964= G->pos, yythunkpos964= G->thunkpos; if (!yy_HtmlBlockCloseTable(G)) { goto l964; } goto l961;
  4691. l964:; G->pos= yypos964; G->thunkpos= yythunkpos964;
  4692. } if (!yymatchDot(G)) goto l961;
  4693. }
  4694. l962:; goto l960;
  4695. l961:; G->pos= yypos961; G->thunkpos= yythunkpos961;
  4696. } if (!yy_HtmlBlockCloseTable(G)) { goto l959; }
  4697. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4698. return 1;
  4699. l959:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4700. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4701. return 0;
  4702. }
  4703. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G)
  4704. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4705. yyprintf((stderr, "%s\n", "HtmlBlockCloseTable")); if (!yymatchChar(G, '<')) goto l965; if (!yy_Spnl(G)) { goto l965; } if (!yymatchChar(G, '/')) goto l965;
  4706. { int yypos966= G->pos, yythunkpos966= G->thunkpos; if (!yymatchString(G, "table")) goto l967; goto l966;
  4707. l967:; G->pos= yypos966; G->thunkpos= yythunkpos966; if (!yymatchString(G, "TABLE")) goto l965;
  4708. }
  4709. l966:; if (!yy_Spnl(G)) { goto l965; } if (!yymatchChar(G, '>')) goto l965;
  4710. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4711. return 1;
  4712. l965:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4713. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4714. return 0;
  4715. }
  4716. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G)
  4717. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4718. yyprintf((stderr, "%s\n", "HtmlBlockOpenTable")); if (!yymatchChar(G, '<')) goto l968; if (!yy_Spnl(G)) { goto l968; }
  4719. { int yypos969= G->pos, yythunkpos969= G->thunkpos; if (!yymatchString(G, "table")) goto l970; goto l969;
  4720. l970:; G->pos= yypos969; G->thunkpos= yythunkpos969; if (!yymatchString(G, "TABLE")) goto l968;
  4721. }
  4722. l969:; if (!yy_Spnl(G)) { goto l968; }
  4723. l971:;
  4724. { int yypos972= G->pos, yythunkpos972= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l972; } goto l971;
  4725. l972:; G->pos= yypos972; G->thunkpos= yythunkpos972;
  4726. } if (!yymatchChar(G, '>')) goto l968;
  4727. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4728. return 1;
  4729. l968:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4730. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4731. return 0;
  4732. }
  4733. YY_RULE(int) yy_HtmlBlockPre(GREG *G)
  4734. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4735. yyprintf((stderr, "%s\n", "HtmlBlockPre")); if (!yy_HtmlBlockOpenPre(G)) { goto l973; }
  4736. l974:;
  4737. { int yypos975= G->pos, yythunkpos975= G->thunkpos;
  4738. { int yypos976= G->pos, yythunkpos976= G->thunkpos; if (!yy_HtmlBlockPre(G)) { goto l977; } goto l976;
  4739. l977:; G->pos= yypos976; G->thunkpos= yythunkpos976;
  4740. { int yypos978= G->pos, yythunkpos978= G->thunkpos; if (!yy_HtmlBlockClosePre(G)) { goto l978; } goto l975;
  4741. l978:; G->pos= yypos978; G->thunkpos= yythunkpos978;
  4742. } if (!yymatchDot(G)) goto l975;
  4743. }
  4744. l976:; goto l974;
  4745. l975:; G->pos= yypos975; G->thunkpos= yythunkpos975;
  4746. } if (!yy_HtmlBlockClosePre(G)) { goto l973; }
  4747. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4748. return 1;
  4749. l973:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4750. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4751. return 0;
  4752. }
  4753. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G)
  4754. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4755. yyprintf((stderr, "%s\n", "HtmlBlockClosePre")); if (!yymatchChar(G, '<')) goto l979; if (!yy_Spnl(G)) { goto l979; } if (!yymatchChar(G, '/')) goto l979;
  4756. { int yypos980= G->pos, yythunkpos980= G->thunkpos; if (!yymatchString(G, "pre")) goto l981; goto l980;
  4757. l981:; G->pos= yypos980; G->thunkpos= yythunkpos980; if (!yymatchString(G, "PRE")) goto l979;
  4758. }
  4759. l980:; if (!yy_Spnl(G)) { goto l979; } if (!yymatchChar(G, '>')) goto l979;
  4760. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4761. return 1;
  4762. l979:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4763. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4764. return 0;
  4765. }
  4766. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G)
  4767. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4768. yyprintf((stderr, "%s\n", "HtmlBlockOpenPre")); if (!yymatchChar(G, '<')) goto l982; if (!yy_Spnl(G)) { goto l982; }
  4769. { int yypos983= G->pos, yythunkpos983= G->thunkpos; if (!yymatchString(G, "pre")) goto l984; goto l983;
  4770. l984:; G->pos= yypos983; G->thunkpos= yythunkpos983; if (!yymatchString(G, "PRE")) goto l982;
  4771. }
  4772. l983:; if (!yy_Spnl(G)) { goto l982; }
  4773. l985:;
  4774. { int yypos986= G->pos, yythunkpos986= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l986; } goto l985;
  4775. l986:; G->pos= yypos986; G->thunkpos= yythunkpos986;
  4776. } if (!yymatchChar(G, '>')) goto l982;
  4777. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4778. return 1;
  4779. l982:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4780. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4781. return 0;
  4782. }
  4783. YY_RULE(int) yy_HtmlBlockP(GREG *G)
  4784. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4785. yyprintf((stderr, "%s\n", "HtmlBlockP")); if (!yy_HtmlBlockOpenP(G)) { goto l987; }
  4786. l988:;
  4787. { int yypos989= G->pos, yythunkpos989= G->thunkpos;
  4788. { int yypos990= G->pos, yythunkpos990= G->thunkpos; if (!yy_HtmlBlockP(G)) { goto l991; } goto l990;
  4789. l991:; G->pos= yypos990; G->thunkpos= yythunkpos990;
  4790. { int yypos992= G->pos, yythunkpos992= G->thunkpos; if (!yy_HtmlBlockCloseP(G)) { goto l992; } goto l989;
  4791. l992:; G->pos= yypos992; G->thunkpos= yythunkpos992;
  4792. } if (!yymatchDot(G)) goto l989;
  4793. }
  4794. l990:; goto l988;
  4795. l989:; G->pos= yypos989; G->thunkpos= yythunkpos989;
  4796. } if (!yy_HtmlBlockCloseP(G)) { goto l987; }
  4797. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4798. return 1;
  4799. l987:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4800. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4801. return 0;
  4802. }
  4803. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G)
  4804. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4805. yyprintf((stderr, "%s\n", "HtmlBlockCloseP")); if (!yymatchChar(G, '<')) goto l993; if (!yy_Spnl(G)) { goto l993; } if (!yymatchChar(G, '/')) goto l993;
  4806. { int yypos994= G->pos, yythunkpos994= G->thunkpos; if (!yymatchChar(G, 'p')) goto l995; goto l994;
  4807. l995:; G->pos= yypos994; G->thunkpos= yythunkpos994; if (!yymatchChar(G, 'P')) goto l993;
  4808. }
  4809. l994:; if (!yy_Spnl(G)) { goto l993; } if (!yymatchChar(G, '>')) goto l993;
  4810. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4811. return 1;
  4812. l993:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4813. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4814. return 0;
  4815. }
  4816. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G)
  4817. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4818. yyprintf((stderr, "%s\n", "HtmlBlockOpenP")); if (!yymatchChar(G, '<')) goto l996; if (!yy_Spnl(G)) { goto l996; }
  4819. { int yypos997= G->pos, yythunkpos997= G->thunkpos; if (!yymatchChar(G, 'p')) goto l998; goto l997;
  4820. l998:; G->pos= yypos997; G->thunkpos= yythunkpos997; if (!yymatchChar(G, 'P')) goto l996;
  4821. }
  4822. l997:; if (!yy_Spnl(G)) { goto l996; }
  4823. l999:;
  4824. { int yypos1000= G->pos, yythunkpos1000= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1000; } goto l999;
  4825. l1000:; G->pos= yypos1000; G->thunkpos= yythunkpos1000;
  4826. } if (!yymatchChar(G, '>')) goto l996;
  4827. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4828. return 1;
  4829. l996:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4830. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4831. return 0;
  4832. }
  4833. YY_RULE(int) yy_HtmlBlockOl(GREG *G)
  4834. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4835. yyprintf((stderr, "%s\n", "HtmlBlockOl")); if (!yy_HtmlBlockOpenOl(G)) { goto l1001; }
  4836. l1002:;
  4837. { int yypos1003= G->pos, yythunkpos1003= G->thunkpos;
  4838. { int yypos1004= G->pos, yythunkpos1004= G->thunkpos; if (!yy_HtmlBlockOl(G)) { goto l1005; } goto l1004;
  4839. l1005:; G->pos= yypos1004; G->thunkpos= yythunkpos1004;
  4840. { int yypos1006= G->pos, yythunkpos1006= G->thunkpos; if (!yy_HtmlBlockCloseOl(G)) { goto l1006; } goto l1003;
  4841. l1006:; G->pos= yypos1006; G->thunkpos= yythunkpos1006;
  4842. } if (!yymatchDot(G)) goto l1003;
  4843. }
  4844. l1004:; goto l1002;
  4845. l1003:; G->pos= yypos1003; G->thunkpos= yythunkpos1003;
  4846. } if (!yy_HtmlBlockCloseOl(G)) { goto l1001; }
  4847. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4848. return 1;
  4849. l1001:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4850. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4851. return 0;
  4852. }
  4853. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G)
  4854. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4855. yyprintf((stderr, "%s\n", "HtmlBlockCloseOl")); if (!yymatchChar(G, '<')) goto l1007; if (!yy_Spnl(G)) { goto l1007; } if (!yymatchChar(G, '/')) goto l1007;
  4856. { int yypos1008= G->pos, yythunkpos1008= G->thunkpos; if (!yymatchString(G, "ol")) goto l1009; goto l1008;
  4857. l1009:; G->pos= yypos1008; G->thunkpos= yythunkpos1008; if (!yymatchString(G, "OL")) goto l1007;
  4858. }
  4859. l1008:; if (!yy_Spnl(G)) { goto l1007; } if (!yymatchChar(G, '>')) goto l1007;
  4860. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4861. return 1;
  4862. l1007:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4863. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4864. return 0;
  4865. }
  4866. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G)
  4867. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4868. yyprintf((stderr, "%s\n", "HtmlBlockOpenOl")); if (!yymatchChar(G, '<')) goto l1010; if (!yy_Spnl(G)) { goto l1010; }
  4869. { int yypos1011= G->pos, yythunkpos1011= G->thunkpos; if (!yymatchString(G, "ol")) goto l1012; goto l1011;
  4870. l1012:; G->pos= yypos1011; G->thunkpos= yythunkpos1011; if (!yymatchString(G, "OL")) goto l1010;
  4871. }
  4872. l1011:; if (!yy_Spnl(G)) { goto l1010; }
  4873. l1013:;
  4874. { int yypos1014= G->pos, yythunkpos1014= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1014; } goto l1013;
  4875. l1014:; G->pos= yypos1014; G->thunkpos= yythunkpos1014;
  4876. } if (!yymatchChar(G, '>')) goto l1010;
  4877. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4878. return 1;
  4879. l1010:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4880. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4881. return 0;
  4882. }
  4883. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G)
  4884. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4885. yyprintf((stderr, "%s\n", "HtmlBlockNoscript")); if (!yy_HtmlBlockOpenNoscript(G)) { goto l1015; }
  4886. l1016:;
  4887. { int yypos1017= G->pos, yythunkpos1017= G->thunkpos;
  4888. { int yypos1018= G->pos, yythunkpos1018= G->thunkpos; if (!yy_HtmlBlockNoscript(G)) { goto l1019; } goto l1018;
  4889. l1019:; G->pos= yypos1018; G->thunkpos= yythunkpos1018;
  4890. { int yypos1020= G->pos, yythunkpos1020= G->thunkpos; if (!yy_HtmlBlockCloseNoscript(G)) { goto l1020; } goto l1017;
  4891. l1020:; G->pos= yypos1020; G->thunkpos= yythunkpos1020;
  4892. } if (!yymatchDot(G)) goto l1017;
  4893. }
  4894. l1018:; goto l1016;
  4895. l1017:; G->pos= yypos1017; G->thunkpos= yythunkpos1017;
  4896. } if (!yy_HtmlBlockCloseNoscript(G)) { goto l1015; }
  4897. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4898. return 1;
  4899. l1015:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4900. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4901. return 0;
  4902. }
  4903. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G)
  4904. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4905. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoscript")); if (!yymatchChar(G, '<')) goto l1021; if (!yy_Spnl(G)) { goto l1021; } if (!yymatchChar(G, '/')) goto l1021;
  4906. { int yypos1022= G->pos, yythunkpos1022= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1023; goto l1022;
  4907. l1023:; G->pos= yypos1022; G->thunkpos= yythunkpos1022; if (!yymatchString(G, "NOSCRIPT")) goto l1021;
  4908. }
  4909. l1022:; if (!yy_Spnl(G)) { goto l1021; } if (!yymatchChar(G, '>')) goto l1021;
  4910. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4911. return 1;
  4912. l1021:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4913. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4914. return 0;
  4915. }
  4916. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G)
  4917. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4918. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoscript")); if (!yymatchChar(G, '<')) goto l1024; if (!yy_Spnl(G)) { goto l1024; }
  4919. { int yypos1025= G->pos, yythunkpos1025= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1026; goto l1025;
  4920. l1026:; G->pos= yypos1025; G->thunkpos= yythunkpos1025; if (!yymatchString(G, "NOSCRIPT")) goto l1024;
  4921. }
  4922. l1025:; if (!yy_Spnl(G)) { goto l1024; }
  4923. l1027:;
  4924. { int yypos1028= G->pos, yythunkpos1028= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1028; } goto l1027;
  4925. l1028:; G->pos= yypos1028; G->thunkpos= yythunkpos1028;
  4926. } if (!yymatchChar(G, '>')) goto l1024;
  4927. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4928. return 1;
  4929. l1024:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4930. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4931. return 0;
  4932. }
  4933. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G)
  4934. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4935. yyprintf((stderr, "%s\n", "HtmlBlockNoframes")); if (!yy_HtmlBlockOpenNoframes(G)) { goto l1029; }
  4936. l1030:;
  4937. { int yypos1031= G->pos, yythunkpos1031= G->thunkpos;
  4938. { int yypos1032= G->pos, yythunkpos1032= G->thunkpos; if (!yy_HtmlBlockNoframes(G)) { goto l1033; } goto l1032;
  4939. l1033:; G->pos= yypos1032; G->thunkpos= yythunkpos1032;
  4940. { int yypos1034= G->pos, yythunkpos1034= G->thunkpos; if (!yy_HtmlBlockCloseNoframes(G)) { goto l1034; } goto l1031;
  4941. l1034:; G->pos= yypos1034; G->thunkpos= yythunkpos1034;
  4942. } if (!yymatchDot(G)) goto l1031;
  4943. }
  4944. l1032:; goto l1030;
  4945. l1031:; G->pos= yypos1031; G->thunkpos= yythunkpos1031;
  4946. } if (!yy_HtmlBlockCloseNoframes(G)) { goto l1029; }
  4947. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4948. return 1;
  4949. l1029:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4950. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4951. return 0;
  4952. }
  4953. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G)
  4954. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4955. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoframes")); if (!yymatchChar(G, '<')) goto l1035; if (!yy_Spnl(G)) { goto l1035; } if (!yymatchChar(G, '/')) goto l1035;
  4956. { int yypos1036= G->pos, yythunkpos1036= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1037; goto l1036;
  4957. l1037:; G->pos= yypos1036; G->thunkpos= yythunkpos1036; if (!yymatchString(G, "NOFRAMES")) goto l1035;
  4958. }
  4959. l1036:; if (!yy_Spnl(G)) { goto l1035; } if (!yymatchChar(G, '>')) goto l1035;
  4960. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4961. return 1;
  4962. l1035:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4963. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4964. return 0;
  4965. }
  4966. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G)
  4967. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4968. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoframes")); if (!yymatchChar(G, '<')) goto l1038; if (!yy_Spnl(G)) { goto l1038; }
  4969. { int yypos1039= G->pos, yythunkpos1039= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1040; goto l1039;
  4970. l1040:; G->pos= yypos1039; G->thunkpos= yythunkpos1039; if (!yymatchString(G, "NOFRAMES")) goto l1038;
  4971. }
  4972. l1039:; if (!yy_Spnl(G)) { goto l1038; }
  4973. l1041:;
  4974. { int yypos1042= G->pos, yythunkpos1042= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1042; } goto l1041;
  4975. l1042:; G->pos= yypos1042; G->thunkpos= yythunkpos1042;
  4976. } if (!yymatchChar(G, '>')) goto l1038;
  4977. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4978. return 1;
  4979. l1038:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4980. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4981. return 0;
  4982. }
  4983. YY_RULE(int) yy_HtmlBlockMenu(GREG *G)
  4984. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4985. yyprintf((stderr, "%s\n", "HtmlBlockMenu")); if (!yy_HtmlBlockOpenMenu(G)) { goto l1043; }
  4986. l1044:;
  4987. { int yypos1045= G->pos, yythunkpos1045= G->thunkpos;
  4988. { int yypos1046= G->pos, yythunkpos1046= G->thunkpos; if (!yy_HtmlBlockMenu(G)) { goto l1047; } goto l1046;
  4989. l1047:; G->pos= yypos1046; G->thunkpos= yythunkpos1046;
  4990. { int yypos1048= G->pos, yythunkpos1048= G->thunkpos; if (!yy_HtmlBlockCloseMenu(G)) { goto l1048; } goto l1045;
  4991. l1048:; G->pos= yypos1048; G->thunkpos= yythunkpos1048;
  4992. } if (!yymatchDot(G)) goto l1045;
  4993. }
  4994. l1046:; goto l1044;
  4995. l1045:; G->pos= yypos1045; G->thunkpos= yythunkpos1045;
  4996. } if (!yy_HtmlBlockCloseMenu(G)) { goto l1043; }
  4997. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4998. return 1;
  4999. l1043:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5000. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  5001. return 0;
  5002. }
  5003. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G)
  5004. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5005. yyprintf((stderr, "%s\n", "HtmlBlockCloseMenu")); if (!yymatchChar(G, '<')) goto l1049; if (!yy_Spnl(G)) { goto l1049; } if (!yymatchChar(G, '/')) goto l1049;
  5006. { int yypos1050= G->pos, yythunkpos1050= G->thunkpos; if (!yymatchString(G, "menu")) goto l1051; goto l1050;
  5007. l1051:; G->pos= yypos1050; G->thunkpos= yythunkpos1050; if (!yymatchString(G, "MENU")) goto l1049;
  5008. }
  5009. l1050:; if (!yy_Spnl(G)) { goto l1049; } if (!yymatchChar(G, '>')) goto l1049;
  5010. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  5011. return 1;
  5012. l1049:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5013. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  5014. return 0;
  5015. }
  5016. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G)
  5017. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5018. yyprintf((stderr, "%s\n", "HtmlBlockOpenMenu")); if (!yymatchChar(G, '<')) goto l1052; if (!yy_Spnl(G)) { goto l1052; }
  5019. { int yypos1053= G->pos, yythunkpos1053= G->thunkpos; if (!yymatchString(G, "menu")) goto l1054; goto l1053;
  5020. l1054:; G->pos= yypos1053; G->thunkpos= yythunkpos1053; if (!yymatchString(G, "MENU")) goto l1052;
  5021. }
  5022. l1053:; if (!yy_Spnl(G)) { goto l1052; }
  5023. l1055:;
  5024. { int yypos1056= G->pos, yythunkpos1056= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1056; } goto l1055;
  5025. l1056:; G->pos= yypos1056; G->thunkpos= yythunkpos1056;
  5026. } if (!yymatchChar(G, '>')) goto l1052;
  5027. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  5028. return 1;
  5029. l1052:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5030. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  5031. return 0;
  5032. }
  5033. YY_RULE(int) yy_HtmlBlockH6(GREG *G)
  5034. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5035. yyprintf((stderr, "%s\n", "HtmlBlockH6")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1057; if (!yy_LocMarker(G)) { goto l1057; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH6(G)) { goto l1057; }
  5036. l1058:;
  5037. { int yypos1059= G->pos, yythunkpos1059= G->thunkpos;
  5038. { int yypos1060= G->pos, yythunkpos1060= G->thunkpos; if (!yy_HtmlBlockH6(G)) { goto l1061; } goto l1060;
  5039. l1061:; G->pos= yypos1060; G->thunkpos= yythunkpos1060;
  5040. { int yypos1062= G->pos, yythunkpos1062= G->thunkpos; if (!yy_HtmlBlockCloseH6(G)) { goto l1062; } goto l1059;
  5041. l1062:; G->pos= yypos1062; G->thunkpos= yythunkpos1062;
  5042. } if (!yymatchDot(G)) goto l1059;
  5043. }
  5044. l1060:; goto l1058;
  5045. l1059:; G->pos= yypos1059; G->thunkpos= yythunkpos1059;
  5046. } if (!yy_HtmlBlockCloseH6(G)) { goto l1057; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1057; yyDo(G, yy_1_HtmlBlockH6, G->begin, G->end);
  5047. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH6", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5048. return 1;
  5049. l1057:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5050. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH6", G->buf+G->pos));
  5051. return 0;
  5052. }
  5053. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G)
  5054. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5055. yyprintf((stderr, "%s\n", "HtmlBlockCloseH6")); if (!yymatchChar(G, '<')) goto l1063; if (!yy_Spnl(G)) { goto l1063; } if (!yymatchChar(G, '/')) goto l1063;
  5056. { int yypos1064= G->pos, yythunkpos1064= G->thunkpos; if (!yymatchString(G, "h6")) goto l1065; goto l1064;
  5057. l1065:; G->pos= yypos1064; G->thunkpos= yythunkpos1064; if (!yymatchString(G, "H6")) goto l1063;
  5058. }
  5059. l1064:; if (!yy_Spnl(G)) { goto l1063; } if (!yymatchChar(G, '>')) goto l1063;
  5060. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  5061. return 1;
  5062. l1063:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5063. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  5064. return 0;
  5065. }
  5066. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G)
  5067. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5068. yyprintf((stderr, "%s\n", "HtmlBlockOpenH6")); if (!yymatchChar(G, '<')) goto l1066; if (!yy_Spnl(G)) { goto l1066; }
  5069. { int yypos1067= G->pos, yythunkpos1067= G->thunkpos; if (!yymatchString(G, "h6")) goto l1068; goto l1067;
  5070. l1068:; G->pos= yypos1067; G->thunkpos= yythunkpos1067; if (!yymatchString(G, "H6")) goto l1066;
  5071. }
  5072. l1067:; if (!yy_Spnl(G)) { goto l1066; }
  5073. l1069:;
  5074. { int yypos1070= G->pos, yythunkpos1070= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1070; } goto l1069;
  5075. l1070:; G->pos= yypos1070; G->thunkpos= yythunkpos1070;
  5076. } if (!yymatchChar(G, '>')) goto l1066;
  5077. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  5078. return 1;
  5079. l1066:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5080. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  5081. return 0;
  5082. }
  5083. YY_RULE(int) yy_HtmlBlockH5(GREG *G)
  5084. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5085. yyprintf((stderr, "%s\n", "HtmlBlockH5")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1071; if (!yy_LocMarker(G)) { goto l1071; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH5(G)) { goto l1071; }
  5086. l1072:;
  5087. { int yypos1073= G->pos, yythunkpos1073= G->thunkpos;
  5088. { int yypos1074= G->pos, yythunkpos1074= G->thunkpos; if (!yy_HtmlBlockH5(G)) { goto l1075; } goto l1074;
  5089. l1075:; G->pos= yypos1074; G->thunkpos= yythunkpos1074;
  5090. { int yypos1076= G->pos, yythunkpos1076= G->thunkpos; if (!yy_HtmlBlockCloseH5(G)) { goto l1076; } goto l1073;
  5091. l1076:; G->pos= yypos1076; G->thunkpos= yythunkpos1076;
  5092. } if (!yymatchDot(G)) goto l1073;
  5093. }
  5094. l1074:; goto l1072;
  5095. l1073:; G->pos= yypos1073; G->thunkpos= yythunkpos1073;
  5096. } if (!yy_HtmlBlockCloseH5(G)) { goto l1071; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1071; yyDo(G, yy_1_HtmlBlockH5, G->begin, G->end);
  5097. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH5", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5098. return 1;
  5099. l1071:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5100. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH5", G->buf+G->pos));
  5101. return 0;
  5102. }
  5103. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G)
  5104. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5105. yyprintf((stderr, "%s\n", "HtmlBlockCloseH5")); if (!yymatchChar(G, '<')) goto l1077; if (!yy_Spnl(G)) { goto l1077; } if (!yymatchChar(G, '/')) goto l1077;
  5106. { int yypos1078= G->pos, yythunkpos1078= G->thunkpos; if (!yymatchString(G, "h5")) goto l1079; goto l1078;
  5107. l1079:; G->pos= yypos1078; G->thunkpos= yythunkpos1078; if (!yymatchString(G, "H5")) goto l1077;
  5108. }
  5109. l1078:; if (!yy_Spnl(G)) { goto l1077; } if (!yymatchChar(G, '>')) goto l1077;
  5110. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5111. return 1;
  5112. l1077:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5113. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5114. return 0;
  5115. }
  5116. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G)
  5117. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5118. yyprintf((stderr, "%s\n", "HtmlBlockOpenH5")); if (!yymatchChar(G, '<')) goto l1080; if (!yy_Spnl(G)) { goto l1080; }
  5119. { int yypos1081= G->pos, yythunkpos1081= G->thunkpos; if (!yymatchString(G, "h5")) goto l1082; goto l1081;
  5120. l1082:; G->pos= yypos1081; G->thunkpos= yythunkpos1081; if (!yymatchString(G, "H5")) goto l1080;
  5121. }
  5122. l1081:; if (!yy_Spnl(G)) { goto l1080; }
  5123. l1083:;
  5124. { int yypos1084= G->pos, yythunkpos1084= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1084; } goto l1083;
  5125. l1084:; G->pos= yypos1084; G->thunkpos= yythunkpos1084;
  5126. } if (!yymatchChar(G, '>')) goto l1080;
  5127. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5128. return 1;
  5129. l1080:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5130. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5131. return 0;
  5132. }
  5133. YY_RULE(int) yy_HtmlBlockH4(GREG *G)
  5134. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5135. yyprintf((stderr, "%s\n", "HtmlBlockH4")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1085; if (!yy_LocMarker(G)) { goto l1085; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH4(G)) { goto l1085; }
  5136. l1086:;
  5137. { int yypos1087= G->pos, yythunkpos1087= G->thunkpos;
  5138. { int yypos1088= G->pos, yythunkpos1088= G->thunkpos; if (!yy_HtmlBlockH4(G)) { goto l1089; } goto l1088;
  5139. l1089:; G->pos= yypos1088; G->thunkpos= yythunkpos1088;
  5140. { int yypos1090= G->pos, yythunkpos1090= G->thunkpos; if (!yy_HtmlBlockCloseH4(G)) { goto l1090; } goto l1087;
  5141. l1090:; G->pos= yypos1090; G->thunkpos= yythunkpos1090;
  5142. } if (!yymatchDot(G)) goto l1087;
  5143. }
  5144. l1088:; goto l1086;
  5145. l1087:; G->pos= yypos1087; G->thunkpos= yythunkpos1087;
  5146. } if (!yy_HtmlBlockCloseH4(G)) { goto l1085; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1085; yyDo(G, yy_1_HtmlBlockH4, G->begin, G->end);
  5147. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH4", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5148. return 1;
  5149. l1085:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5150. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH4", G->buf+G->pos));
  5151. return 0;
  5152. }
  5153. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G)
  5154. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5155. yyprintf((stderr, "%s\n", "HtmlBlockCloseH4")); if (!yymatchChar(G, '<')) goto l1091; if (!yy_Spnl(G)) { goto l1091; } if (!yymatchChar(G, '/')) goto l1091;
  5156. { int yypos1092= G->pos, yythunkpos1092= G->thunkpos; if (!yymatchString(G, "h4")) goto l1093; goto l1092;
  5157. l1093:; G->pos= yypos1092; G->thunkpos= yythunkpos1092; if (!yymatchString(G, "H4")) goto l1091;
  5158. }
  5159. l1092:; if (!yy_Spnl(G)) { goto l1091; } if (!yymatchChar(G, '>')) goto l1091;
  5160. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5161. return 1;
  5162. l1091:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5163. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5164. return 0;
  5165. }
  5166. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G)
  5167. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5168. yyprintf((stderr, "%s\n", "HtmlBlockOpenH4")); if (!yymatchChar(G, '<')) goto l1094; if (!yy_Spnl(G)) { goto l1094; }
  5169. { int yypos1095= G->pos, yythunkpos1095= G->thunkpos; if (!yymatchString(G, "h4")) goto l1096; goto l1095;
  5170. l1096:; G->pos= yypos1095; G->thunkpos= yythunkpos1095; if (!yymatchString(G, "H4")) goto l1094;
  5171. }
  5172. l1095:; if (!yy_Spnl(G)) { goto l1094; }
  5173. l1097:;
  5174. { int yypos1098= G->pos, yythunkpos1098= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1098; } goto l1097;
  5175. l1098:; G->pos= yypos1098; G->thunkpos= yythunkpos1098;
  5176. } if (!yymatchChar(G, '>')) goto l1094;
  5177. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5178. return 1;
  5179. l1094:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5180. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5181. return 0;
  5182. }
  5183. YY_RULE(int) yy_HtmlBlockH3(GREG *G)
  5184. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5185. yyprintf((stderr, "%s\n", "HtmlBlockH3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1099; if (!yy_LocMarker(G)) { goto l1099; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH3(G)) { goto l1099; }
  5186. l1100:;
  5187. { int yypos1101= G->pos, yythunkpos1101= G->thunkpos;
  5188. { int yypos1102= G->pos, yythunkpos1102= G->thunkpos; if (!yy_HtmlBlockH3(G)) { goto l1103; } goto l1102;
  5189. l1103:; G->pos= yypos1102; G->thunkpos= yythunkpos1102;
  5190. { int yypos1104= G->pos, yythunkpos1104= G->thunkpos; if (!yy_HtmlBlockCloseH3(G)) { goto l1104; } goto l1101;
  5191. l1104:; G->pos= yypos1104; G->thunkpos= yythunkpos1104;
  5192. } if (!yymatchDot(G)) goto l1101;
  5193. }
  5194. l1102:; goto l1100;
  5195. l1101:; G->pos= yypos1101; G->thunkpos= yythunkpos1101;
  5196. } if (!yy_HtmlBlockCloseH3(G)) { goto l1099; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1099; yyDo(G, yy_1_HtmlBlockH3, G->begin, G->end);
  5197. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH3", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5198. return 1;
  5199. l1099:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5200. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH3", G->buf+G->pos));
  5201. return 0;
  5202. }
  5203. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G)
  5204. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5205. yyprintf((stderr, "%s\n", "HtmlBlockCloseH3")); if (!yymatchChar(G, '<')) goto l1105; if (!yy_Spnl(G)) { goto l1105; } if (!yymatchChar(G, '/')) goto l1105;
  5206. { int yypos1106= G->pos, yythunkpos1106= G->thunkpos; if (!yymatchString(G, "h3")) goto l1107; goto l1106;
  5207. l1107:; G->pos= yypos1106; G->thunkpos= yythunkpos1106; if (!yymatchString(G, "H3")) goto l1105;
  5208. }
  5209. l1106:; if (!yy_Spnl(G)) { goto l1105; } if (!yymatchChar(G, '>')) goto l1105;
  5210. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5211. return 1;
  5212. l1105:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5213. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5214. return 0;
  5215. }
  5216. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G)
  5217. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5218. yyprintf((stderr, "%s\n", "HtmlBlockOpenH3")); if (!yymatchChar(G, '<')) goto l1108; if (!yy_Spnl(G)) { goto l1108; }
  5219. { int yypos1109= G->pos, yythunkpos1109= G->thunkpos; if (!yymatchString(G, "h3")) goto l1110; goto l1109;
  5220. l1110:; G->pos= yypos1109; G->thunkpos= yythunkpos1109; if (!yymatchString(G, "H3")) goto l1108;
  5221. }
  5222. l1109:; if (!yy_Spnl(G)) { goto l1108; }
  5223. l1111:;
  5224. { int yypos1112= G->pos, yythunkpos1112= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1112; } goto l1111;
  5225. l1112:; G->pos= yypos1112; G->thunkpos= yythunkpos1112;
  5226. } if (!yymatchChar(G, '>')) goto l1108;
  5227. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5228. return 1;
  5229. l1108:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5230. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5231. return 0;
  5232. }
  5233. YY_RULE(int) yy_HtmlBlockH2(GREG *G)
  5234. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5235. yyprintf((stderr, "%s\n", "HtmlBlockH2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1113; if (!yy_LocMarker(G)) { goto l1113; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH2(G)) { goto l1113; }
  5236. l1114:;
  5237. { int yypos1115= G->pos, yythunkpos1115= G->thunkpos;
  5238. { int yypos1116= G->pos, yythunkpos1116= G->thunkpos; if (!yy_HtmlBlockH2(G)) { goto l1117; } goto l1116;
  5239. l1117:; G->pos= yypos1116; G->thunkpos= yythunkpos1116;
  5240. { int yypos1118= G->pos, yythunkpos1118= G->thunkpos; if (!yy_HtmlBlockCloseH2(G)) { goto l1118; } goto l1115;
  5241. l1118:; G->pos= yypos1118; G->thunkpos= yythunkpos1118;
  5242. } if (!yymatchDot(G)) goto l1115;
  5243. }
  5244. l1116:; goto l1114;
  5245. l1115:; G->pos= yypos1115; G->thunkpos= yythunkpos1115;
  5246. } if (!yy_HtmlBlockCloseH2(G)) { goto l1113; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1113; yyDo(G, yy_1_HtmlBlockH2, G->begin, G->end);
  5247. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5248. return 1;
  5249. l1113:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5250. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH2", G->buf+G->pos));
  5251. return 0;
  5252. }
  5253. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G)
  5254. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5255. yyprintf((stderr, "%s\n", "HtmlBlockCloseH2")); if (!yymatchChar(G, '<')) goto l1119; if (!yy_Spnl(G)) { goto l1119; } if (!yymatchChar(G, '/')) goto l1119;
  5256. { int yypos1120= G->pos, yythunkpos1120= G->thunkpos; if (!yymatchString(G, "h2")) goto l1121; goto l1120;
  5257. l1121:; G->pos= yypos1120; G->thunkpos= yythunkpos1120; if (!yymatchString(G, "H2")) goto l1119;
  5258. }
  5259. l1120:; if (!yy_Spnl(G)) { goto l1119; } if (!yymatchChar(G, '>')) goto l1119;
  5260. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5261. return 1;
  5262. l1119:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5263. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5264. return 0;
  5265. }
  5266. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G)
  5267. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5268. yyprintf((stderr, "%s\n", "HtmlBlockOpenH2")); if (!yymatchChar(G, '<')) goto l1122; if (!yy_Spnl(G)) { goto l1122; }
  5269. { int yypos1123= G->pos, yythunkpos1123= G->thunkpos; if (!yymatchString(G, "h2")) goto l1124; goto l1123;
  5270. l1124:; G->pos= yypos1123; G->thunkpos= yythunkpos1123; if (!yymatchString(G, "H2")) goto l1122;
  5271. }
  5272. l1123:; if (!yy_Spnl(G)) { goto l1122; }
  5273. l1125:;
  5274. { int yypos1126= G->pos, yythunkpos1126= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1126; } goto l1125;
  5275. l1126:; G->pos= yypos1126; G->thunkpos= yythunkpos1126;
  5276. } if (!yymatchChar(G, '>')) goto l1122;
  5277. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5278. return 1;
  5279. l1122:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5280. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5281. return 0;
  5282. }
  5283. YY_RULE(int) yy_HtmlBlockH1(GREG *G)
  5284. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5285. yyprintf((stderr, "%s\n", "HtmlBlockH1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1127; if (!yy_LocMarker(G)) { goto l1127; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH1(G)) { goto l1127; }
  5286. l1128:;
  5287. { int yypos1129= G->pos, yythunkpos1129= G->thunkpos;
  5288. { int yypos1130= G->pos, yythunkpos1130= G->thunkpos; if (!yy_HtmlBlockH1(G)) { goto l1131; } goto l1130;
  5289. l1131:; G->pos= yypos1130; G->thunkpos= yythunkpos1130;
  5290. { int yypos1132= G->pos, yythunkpos1132= G->thunkpos; if (!yy_HtmlBlockCloseH1(G)) { goto l1132; } goto l1129;
  5291. l1132:; G->pos= yypos1132; G->thunkpos= yythunkpos1132;
  5292. } if (!yymatchDot(G)) goto l1129;
  5293. }
  5294. l1130:; goto l1128;
  5295. l1129:; G->pos= yypos1129; G->thunkpos= yythunkpos1129;
  5296. } if (!yy_HtmlBlockCloseH1(G)) { goto l1127; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1127; yyDo(G, yy_1_HtmlBlockH1, G->begin, G->end);
  5297. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5298. return 1;
  5299. l1127:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5300. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH1", G->buf+G->pos));
  5301. return 0;
  5302. }
  5303. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G)
  5304. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5305. yyprintf((stderr, "%s\n", "HtmlBlockCloseH1")); if (!yymatchChar(G, '<')) goto l1133; if (!yy_Spnl(G)) { goto l1133; } if (!yymatchChar(G, '/')) goto l1133;
  5306. { int yypos1134= G->pos, yythunkpos1134= G->thunkpos; if (!yymatchString(G, "h1")) goto l1135; goto l1134;
  5307. l1135:; G->pos= yypos1134; G->thunkpos= yythunkpos1134; if (!yymatchString(G, "H1")) goto l1133;
  5308. }
  5309. l1134:; if (!yy_Spnl(G)) { goto l1133; } if (!yymatchChar(G, '>')) goto l1133;
  5310. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5311. return 1;
  5312. l1133:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5313. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5314. return 0;
  5315. }
  5316. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G)
  5317. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5318. yyprintf((stderr, "%s\n", "HtmlBlockOpenH1")); if (!yymatchChar(G, '<')) goto l1136; if (!yy_Spnl(G)) { goto l1136; }
  5319. { int yypos1137= G->pos, yythunkpos1137= G->thunkpos; if (!yymatchString(G, "h1")) goto l1138; goto l1137;
  5320. l1138:; G->pos= yypos1137; G->thunkpos= yythunkpos1137; if (!yymatchString(G, "H1")) goto l1136;
  5321. }
  5322. l1137:; if (!yy_Spnl(G)) { goto l1136; }
  5323. l1139:;
  5324. { int yypos1140= G->pos, yythunkpos1140= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1140; } goto l1139;
  5325. l1140:; G->pos= yypos1140; G->thunkpos= yythunkpos1140;
  5326. } if (!yymatchChar(G, '>')) goto l1136;
  5327. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5328. return 1;
  5329. l1136:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5330. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5331. return 0;
  5332. }
  5333. YY_RULE(int) yy_HtmlBlockForm(GREG *G)
  5334. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5335. yyprintf((stderr, "%s\n", "HtmlBlockForm")); if (!yy_HtmlBlockOpenForm(G)) { goto l1141; }
  5336. l1142:;
  5337. { int yypos1143= G->pos, yythunkpos1143= G->thunkpos;
  5338. { int yypos1144= G->pos, yythunkpos1144= G->thunkpos; if (!yy_HtmlBlockForm(G)) { goto l1145; } goto l1144;
  5339. l1145:; G->pos= yypos1144; G->thunkpos= yythunkpos1144;
  5340. { int yypos1146= G->pos, yythunkpos1146= G->thunkpos; if (!yy_HtmlBlockCloseForm(G)) { goto l1146; } goto l1143;
  5341. l1146:; G->pos= yypos1146; G->thunkpos= yythunkpos1146;
  5342. } if (!yymatchDot(G)) goto l1143;
  5343. }
  5344. l1144:; goto l1142;
  5345. l1143:; G->pos= yypos1143; G->thunkpos= yythunkpos1143;
  5346. } if (!yy_HtmlBlockCloseForm(G)) { goto l1141; }
  5347. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5348. return 1;
  5349. l1141:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5350. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5351. return 0;
  5352. }
  5353. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G)
  5354. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5355. yyprintf((stderr, "%s\n", "HtmlBlockCloseForm")); if (!yymatchChar(G, '<')) goto l1147; if (!yy_Spnl(G)) { goto l1147; } if (!yymatchChar(G, '/')) goto l1147;
  5356. { int yypos1148= G->pos, yythunkpos1148= G->thunkpos; if (!yymatchString(G, "form")) goto l1149; goto l1148;
  5357. l1149:; G->pos= yypos1148; G->thunkpos= yythunkpos1148; if (!yymatchString(G, "FORM")) goto l1147;
  5358. }
  5359. l1148:; if (!yy_Spnl(G)) { goto l1147; } if (!yymatchChar(G, '>')) goto l1147;
  5360. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5361. return 1;
  5362. l1147:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5363. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5364. return 0;
  5365. }
  5366. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G)
  5367. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5368. yyprintf((stderr, "%s\n", "HtmlBlockOpenForm")); if (!yymatchChar(G, '<')) goto l1150; if (!yy_Spnl(G)) { goto l1150; }
  5369. { int yypos1151= G->pos, yythunkpos1151= G->thunkpos; if (!yymatchString(G, "form")) goto l1152; goto l1151;
  5370. l1152:; G->pos= yypos1151; G->thunkpos= yythunkpos1151; if (!yymatchString(G, "FORM")) goto l1150;
  5371. }
  5372. l1151:; if (!yy_Spnl(G)) { goto l1150; }
  5373. l1153:;
  5374. { int yypos1154= G->pos, yythunkpos1154= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1154; } goto l1153;
  5375. l1154:; G->pos= yypos1154; G->thunkpos= yythunkpos1154;
  5376. } if (!yymatchChar(G, '>')) goto l1150;
  5377. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5378. return 1;
  5379. l1150:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5380. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5381. return 0;
  5382. }
  5383. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G)
  5384. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5385. yyprintf((stderr, "%s\n", "HtmlBlockFieldset")); if (!yy_HtmlBlockOpenFieldset(G)) { goto l1155; }
  5386. l1156:;
  5387. { int yypos1157= G->pos, yythunkpos1157= G->thunkpos;
  5388. { int yypos1158= G->pos, yythunkpos1158= G->thunkpos; if (!yy_HtmlBlockFieldset(G)) { goto l1159; } goto l1158;
  5389. l1159:; G->pos= yypos1158; G->thunkpos= yythunkpos1158;
  5390. { int yypos1160= G->pos, yythunkpos1160= G->thunkpos; if (!yy_HtmlBlockCloseFieldset(G)) { goto l1160; } goto l1157;
  5391. l1160:; G->pos= yypos1160; G->thunkpos= yythunkpos1160;
  5392. } if (!yymatchDot(G)) goto l1157;
  5393. }
  5394. l1158:; goto l1156;
  5395. l1157:; G->pos= yypos1157; G->thunkpos= yythunkpos1157;
  5396. } if (!yy_HtmlBlockCloseFieldset(G)) { goto l1155; }
  5397. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5398. return 1;
  5399. l1155:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5400. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5401. return 0;
  5402. }
  5403. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G)
  5404. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5405. yyprintf((stderr, "%s\n", "HtmlBlockCloseFieldset")); if (!yymatchChar(G, '<')) goto l1161; if (!yy_Spnl(G)) { goto l1161; } if (!yymatchChar(G, '/')) goto l1161;
  5406. { int yypos1162= G->pos, yythunkpos1162= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1163; goto l1162;
  5407. l1163:; G->pos= yypos1162; G->thunkpos= yythunkpos1162; if (!yymatchString(G, "FIELDSET")) goto l1161;
  5408. }
  5409. l1162:; if (!yy_Spnl(G)) { goto l1161; } if (!yymatchChar(G, '>')) goto l1161;
  5410. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5411. return 1;
  5412. l1161:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5413. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5414. return 0;
  5415. }
  5416. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G)
  5417. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5418. yyprintf((stderr, "%s\n", "HtmlBlockOpenFieldset")); if (!yymatchChar(G, '<')) goto l1164; if (!yy_Spnl(G)) { goto l1164; }
  5419. { int yypos1165= G->pos, yythunkpos1165= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1166; goto l1165;
  5420. l1166:; G->pos= yypos1165; G->thunkpos= yythunkpos1165; if (!yymatchString(G, "FIELDSET")) goto l1164;
  5421. }
  5422. l1165:; if (!yy_Spnl(G)) { goto l1164; }
  5423. l1167:;
  5424. { int yypos1168= G->pos, yythunkpos1168= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1168; } goto l1167;
  5425. l1168:; G->pos= yypos1168; G->thunkpos= yythunkpos1168;
  5426. } if (!yymatchChar(G, '>')) goto l1164;
  5427. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5428. return 1;
  5429. l1164:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5430. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5431. return 0;
  5432. }
  5433. YY_RULE(int) yy_HtmlBlockDl(GREG *G)
  5434. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5435. yyprintf((stderr, "%s\n", "HtmlBlockDl")); if (!yy_HtmlBlockOpenDl(G)) { goto l1169; }
  5436. l1170:;
  5437. { int yypos1171= G->pos, yythunkpos1171= G->thunkpos;
  5438. { int yypos1172= G->pos, yythunkpos1172= G->thunkpos; if (!yy_HtmlBlockDl(G)) { goto l1173; } goto l1172;
  5439. l1173:; G->pos= yypos1172; G->thunkpos= yythunkpos1172;
  5440. { int yypos1174= G->pos, yythunkpos1174= G->thunkpos; if (!yy_HtmlBlockCloseDl(G)) { goto l1174; } goto l1171;
  5441. l1174:; G->pos= yypos1174; G->thunkpos= yythunkpos1174;
  5442. } if (!yymatchDot(G)) goto l1171;
  5443. }
  5444. l1172:; goto l1170;
  5445. l1171:; G->pos= yypos1171; G->thunkpos= yythunkpos1171;
  5446. } if (!yy_HtmlBlockCloseDl(G)) { goto l1169; }
  5447. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5448. return 1;
  5449. l1169:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5450. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5451. return 0;
  5452. }
  5453. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G)
  5454. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5455. yyprintf((stderr, "%s\n", "HtmlBlockCloseDl")); if (!yymatchChar(G, '<')) goto l1175; if (!yy_Spnl(G)) { goto l1175; } if (!yymatchChar(G, '/')) goto l1175;
  5456. { int yypos1176= G->pos, yythunkpos1176= G->thunkpos; if (!yymatchString(G, "dl")) goto l1177; goto l1176;
  5457. l1177:; G->pos= yypos1176; G->thunkpos= yythunkpos1176; if (!yymatchString(G, "DL")) goto l1175;
  5458. }
  5459. l1176:; if (!yy_Spnl(G)) { goto l1175; } if (!yymatchChar(G, '>')) goto l1175;
  5460. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5461. return 1;
  5462. l1175:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5463. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5464. return 0;
  5465. }
  5466. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G)
  5467. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5468. yyprintf((stderr, "%s\n", "HtmlBlockOpenDl")); if (!yymatchChar(G, '<')) goto l1178; if (!yy_Spnl(G)) { goto l1178; }
  5469. { int yypos1179= G->pos, yythunkpos1179= G->thunkpos; if (!yymatchString(G, "dl")) goto l1180; goto l1179;
  5470. l1180:; G->pos= yypos1179; G->thunkpos= yythunkpos1179; if (!yymatchString(G, "DL")) goto l1178;
  5471. }
  5472. l1179:; if (!yy_Spnl(G)) { goto l1178; }
  5473. l1181:;
  5474. { int yypos1182= G->pos, yythunkpos1182= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1182; } goto l1181;
  5475. l1182:; G->pos= yypos1182; G->thunkpos= yythunkpos1182;
  5476. } if (!yymatchChar(G, '>')) goto l1178;
  5477. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5478. return 1;
  5479. l1178:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5480. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5481. return 0;
  5482. }
  5483. YY_RULE(int) yy_HtmlBlockDiv(GREG *G)
  5484. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5485. yyprintf((stderr, "%s\n", "HtmlBlockDiv")); if (!yy_HtmlBlockOpenDiv(G)) { goto l1183; }
  5486. l1184:;
  5487. { int yypos1185= G->pos, yythunkpos1185= G->thunkpos;
  5488. { int yypos1186= G->pos, yythunkpos1186= G->thunkpos; if (!yy_HtmlBlockDiv(G)) { goto l1187; } goto l1186;
  5489. l1187:; G->pos= yypos1186; G->thunkpos= yythunkpos1186;
  5490. { int yypos1188= G->pos, yythunkpos1188= G->thunkpos; if (!yy_HtmlBlockCloseDiv(G)) { goto l1188; } goto l1185;
  5491. l1188:; G->pos= yypos1188; G->thunkpos= yythunkpos1188;
  5492. } if (!yymatchDot(G)) goto l1185;
  5493. }
  5494. l1186:; goto l1184;
  5495. l1185:; G->pos= yypos1185; G->thunkpos= yythunkpos1185;
  5496. } if (!yy_HtmlBlockCloseDiv(G)) { goto l1183; }
  5497. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5498. return 1;
  5499. l1183:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5500. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5501. return 0;
  5502. }
  5503. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G)
  5504. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5505. yyprintf((stderr, "%s\n", "HtmlBlockCloseDiv")); if (!yymatchChar(G, '<')) goto l1189; if (!yy_Spnl(G)) { goto l1189; } if (!yymatchChar(G, '/')) goto l1189;
  5506. { int yypos1190= G->pos, yythunkpos1190= G->thunkpos; if (!yymatchString(G, "div")) goto l1191; goto l1190;
  5507. l1191:; G->pos= yypos1190; G->thunkpos= yythunkpos1190; if (!yymatchString(G, "DIV")) goto l1189;
  5508. }
  5509. l1190:; if (!yy_Spnl(G)) { goto l1189; } if (!yymatchChar(G, '>')) goto l1189;
  5510. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5511. return 1;
  5512. l1189:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5513. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5514. return 0;
  5515. }
  5516. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G)
  5517. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5518. yyprintf((stderr, "%s\n", "HtmlBlockOpenDiv")); if (!yymatchChar(G, '<')) goto l1192; if (!yy_Spnl(G)) { goto l1192; }
  5519. { int yypos1193= G->pos, yythunkpos1193= G->thunkpos; if (!yymatchString(G, "div")) goto l1194; goto l1193;
  5520. l1194:; G->pos= yypos1193; G->thunkpos= yythunkpos1193; if (!yymatchString(G, "DIV")) goto l1192;
  5521. }
  5522. l1193:; if (!yy_Spnl(G)) { goto l1192; }
  5523. l1195:;
  5524. { int yypos1196= G->pos, yythunkpos1196= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1196; } goto l1195;
  5525. l1196:; G->pos= yypos1196; G->thunkpos= yythunkpos1196;
  5526. } if (!yymatchChar(G, '>')) goto l1192;
  5527. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5528. return 1;
  5529. l1192:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5530. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5531. return 0;
  5532. }
  5533. YY_RULE(int) yy_HtmlBlockDir(GREG *G)
  5534. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5535. yyprintf((stderr, "%s\n", "HtmlBlockDir")); if (!yy_HtmlBlockOpenDir(G)) { goto l1197; }
  5536. l1198:;
  5537. { int yypos1199= G->pos, yythunkpos1199= G->thunkpos;
  5538. { int yypos1200= G->pos, yythunkpos1200= G->thunkpos; if (!yy_HtmlBlockDir(G)) { goto l1201; } goto l1200;
  5539. l1201:; G->pos= yypos1200; G->thunkpos= yythunkpos1200;
  5540. { int yypos1202= G->pos, yythunkpos1202= G->thunkpos; if (!yy_HtmlBlockCloseDir(G)) { goto l1202; } goto l1199;
  5541. l1202:; G->pos= yypos1202; G->thunkpos= yythunkpos1202;
  5542. } if (!yymatchDot(G)) goto l1199;
  5543. }
  5544. l1200:; goto l1198;
  5545. l1199:; G->pos= yypos1199; G->thunkpos= yythunkpos1199;
  5546. } if (!yy_HtmlBlockCloseDir(G)) { goto l1197; }
  5547. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5548. return 1;
  5549. l1197:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5550. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5551. return 0;
  5552. }
  5553. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G)
  5554. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5555. yyprintf((stderr, "%s\n", "HtmlBlockCloseDir")); if (!yymatchChar(G, '<')) goto l1203; if (!yy_Spnl(G)) { goto l1203; } if (!yymatchChar(G, '/')) goto l1203;
  5556. { int yypos1204= G->pos, yythunkpos1204= G->thunkpos; if (!yymatchString(G, "dir")) goto l1205; goto l1204;
  5557. l1205:; G->pos= yypos1204; G->thunkpos= yythunkpos1204; if (!yymatchString(G, "DIR")) goto l1203;
  5558. }
  5559. l1204:; if (!yy_Spnl(G)) { goto l1203; } if (!yymatchChar(G, '>')) goto l1203;
  5560. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5561. return 1;
  5562. l1203:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5563. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5564. return 0;
  5565. }
  5566. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G)
  5567. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5568. yyprintf((stderr, "%s\n", "HtmlBlockOpenDir")); if (!yymatchChar(G, '<')) goto l1206; if (!yy_Spnl(G)) { goto l1206; }
  5569. { int yypos1207= G->pos, yythunkpos1207= G->thunkpos; if (!yymatchString(G, "dir")) goto l1208; goto l1207;
  5570. l1208:; G->pos= yypos1207; G->thunkpos= yythunkpos1207; if (!yymatchString(G, "DIR")) goto l1206;
  5571. }
  5572. l1207:; if (!yy_Spnl(G)) { goto l1206; }
  5573. l1209:;
  5574. { int yypos1210= G->pos, yythunkpos1210= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1210; } goto l1209;
  5575. l1210:; G->pos= yypos1210; G->thunkpos= yythunkpos1210;
  5576. } if (!yymatchChar(G, '>')) goto l1206;
  5577. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5578. return 1;
  5579. l1206:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5580. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5581. return 0;
  5582. }
  5583. YY_RULE(int) yy_HtmlBlockCenter(GREG *G)
  5584. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5585. yyprintf((stderr, "%s\n", "HtmlBlockCenter")); if (!yy_HtmlBlockOpenCenter(G)) { goto l1211; }
  5586. l1212:;
  5587. { int yypos1213= G->pos, yythunkpos1213= G->thunkpos;
  5588. { int yypos1214= G->pos, yythunkpos1214= G->thunkpos; if (!yy_HtmlBlockCenter(G)) { goto l1215; } goto l1214;
  5589. l1215:; G->pos= yypos1214; G->thunkpos= yythunkpos1214;
  5590. { int yypos1216= G->pos, yythunkpos1216= G->thunkpos; if (!yy_HtmlBlockCloseCenter(G)) { goto l1216; } goto l1213;
  5591. l1216:; G->pos= yypos1216; G->thunkpos= yythunkpos1216;
  5592. } if (!yymatchDot(G)) goto l1213;
  5593. }
  5594. l1214:; goto l1212;
  5595. l1213:; G->pos= yypos1213; G->thunkpos= yythunkpos1213;
  5596. } if (!yy_HtmlBlockCloseCenter(G)) { goto l1211; }
  5597. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5598. return 1;
  5599. l1211:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5600. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5601. return 0;
  5602. }
  5603. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G)
  5604. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5605. yyprintf((stderr, "%s\n", "HtmlBlockCloseCenter")); if (!yymatchChar(G, '<')) goto l1217; if (!yy_Spnl(G)) { goto l1217; } if (!yymatchChar(G, '/')) goto l1217;
  5606. { int yypos1218= G->pos, yythunkpos1218= G->thunkpos; if (!yymatchString(G, "center")) goto l1219; goto l1218;
  5607. l1219:; G->pos= yypos1218; G->thunkpos= yythunkpos1218; if (!yymatchString(G, "CENTER")) goto l1217;
  5608. }
  5609. l1218:; if (!yy_Spnl(G)) { goto l1217; } if (!yymatchChar(G, '>')) goto l1217;
  5610. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5611. return 1;
  5612. l1217:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5613. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5614. return 0;
  5615. }
  5616. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G)
  5617. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5618. yyprintf((stderr, "%s\n", "HtmlBlockOpenCenter")); if (!yymatchChar(G, '<')) goto l1220; if (!yy_Spnl(G)) { goto l1220; }
  5619. { int yypos1221= G->pos, yythunkpos1221= G->thunkpos; if (!yymatchString(G, "center")) goto l1222; goto l1221;
  5620. l1222:; G->pos= yypos1221; G->thunkpos= yythunkpos1221; if (!yymatchString(G, "CENTER")) goto l1220;
  5621. }
  5622. l1221:; if (!yy_Spnl(G)) { goto l1220; }
  5623. l1223:;
  5624. { int yypos1224= G->pos, yythunkpos1224= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1224; } goto l1223;
  5625. l1224:; G->pos= yypos1224; G->thunkpos= yythunkpos1224;
  5626. } if (!yymatchChar(G, '>')) goto l1220;
  5627. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5628. return 1;
  5629. l1220:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5630. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5631. return 0;
  5632. }
  5633. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G)
  5634. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5635. yyprintf((stderr, "%s\n", "HtmlBlockBlockquote")); if (!yy_HtmlBlockOpenBlockquote(G)) { goto l1225; }
  5636. l1226:;
  5637. { int yypos1227= G->pos, yythunkpos1227= G->thunkpos;
  5638. { int yypos1228= G->pos, yythunkpos1228= G->thunkpos; if (!yy_HtmlBlockBlockquote(G)) { goto l1229; } goto l1228;
  5639. l1229:; G->pos= yypos1228; G->thunkpos= yythunkpos1228;
  5640. { int yypos1230= G->pos, yythunkpos1230= G->thunkpos; if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1230; } goto l1227;
  5641. l1230:; G->pos= yypos1230; G->thunkpos= yythunkpos1230;
  5642. } if (!yymatchDot(G)) goto l1227;
  5643. }
  5644. l1228:; goto l1226;
  5645. l1227:; G->pos= yypos1227; G->thunkpos= yythunkpos1227;
  5646. } if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1225; }
  5647. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5648. return 1;
  5649. l1225:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5650. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5651. return 0;
  5652. }
  5653. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G)
  5654. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5655. yyprintf((stderr, "%s\n", "HtmlBlockCloseBlockquote")); if (!yymatchChar(G, '<')) goto l1231; if (!yy_Spnl(G)) { goto l1231; } if (!yymatchChar(G, '/')) goto l1231;
  5656. { int yypos1232= G->pos, yythunkpos1232= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1233; goto l1232;
  5657. l1233:; G->pos= yypos1232; G->thunkpos= yythunkpos1232; if (!yymatchString(G, "BLOCKQUOTE")) goto l1231;
  5658. }
  5659. l1232:; if (!yy_Spnl(G)) { goto l1231; } if (!yymatchChar(G, '>')) goto l1231;
  5660. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5661. return 1;
  5662. l1231:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5663. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5664. return 0;
  5665. }
  5666. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G)
  5667. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5668. yyprintf((stderr, "%s\n", "HtmlBlockOpenBlockquote")); if (!yymatchChar(G, '<')) goto l1234; if (!yy_Spnl(G)) { goto l1234; }
  5669. { int yypos1235= G->pos, yythunkpos1235= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1236; goto l1235;
  5670. l1236:; G->pos= yypos1235; G->thunkpos= yythunkpos1235; if (!yymatchString(G, "BLOCKQUOTE")) goto l1234;
  5671. }
  5672. l1235:; if (!yy_Spnl(G)) { goto l1234; }
  5673. l1237:;
  5674. { int yypos1238= G->pos, yythunkpos1238= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1238; } goto l1237;
  5675. l1238:; G->pos= yypos1238; G->thunkpos= yythunkpos1238;
  5676. } if (!yymatchChar(G, '>')) goto l1234;
  5677. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5678. return 1;
  5679. l1234:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5680. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5681. return 0;
  5682. }
  5683. YY_RULE(int) yy_HtmlBlockAddress(GREG *G)
  5684. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5685. yyprintf((stderr, "%s\n", "HtmlBlockAddress")); if (!yy_HtmlBlockOpenAddress(G)) { goto l1239; }
  5686. l1240:;
  5687. { int yypos1241= G->pos, yythunkpos1241= G->thunkpos;
  5688. { int yypos1242= G->pos, yythunkpos1242= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l1243; } goto l1242;
  5689. l1243:; G->pos= yypos1242; G->thunkpos= yythunkpos1242;
  5690. { int yypos1244= G->pos, yythunkpos1244= G->thunkpos; if (!yy_HtmlBlockCloseAddress(G)) { goto l1244; } goto l1241;
  5691. l1244:; G->pos= yypos1244; G->thunkpos= yythunkpos1244;
  5692. } if (!yymatchDot(G)) goto l1241;
  5693. }
  5694. l1242:; goto l1240;
  5695. l1241:; G->pos= yypos1241; G->thunkpos= yythunkpos1241;
  5696. } if (!yy_HtmlBlockCloseAddress(G)) { goto l1239; }
  5697. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5698. return 1;
  5699. l1239:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5700. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5701. return 0;
  5702. }
  5703. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G)
  5704. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5705. yyprintf((stderr, "%s\n", "HtmlBlockCloseAddress")); if (!yymatchChar(G, '<')) goto l1245; if (!yy_Spnl(G)) { goto l1245; } if (!yymatchChar(G, '/')) goto l1245;
  5706. { int yypos1246= G->pos, yythunkpos1246= G->thunkpos; if (!yymatchString(G, "address")) goto l1247; goto l1246;
  5707. l1247:; G->pos= yypos1246; G->thunkpos= yythunkpos1246; if (!yymatchString(G, "ADDRESS")) goto l1245;
  5708. }
  5709. l1246:; if (!yy_Spnl(G)) { goto l1245; } if (!yymatchChar(G, '>')) goto l1245;
  5710. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5711. return 1;
  5712. l1245:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5713. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5714. return 0;
  5715. }
  5716. YY_RULE(int) yy_HtmlAttribute(GREG *G)
  5717. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5718. yyprintf((stderr, "%s\n", "HtmlAttribute"));
  5719. { int yypos1251= G->pos, yythunkpos1251= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1252; } goto l1251;
  5720. l1252:; G->pos= yypos1251; G->thunkpos= yythunkpos1251; if (!yymatchChar(G, '-')) goto l1248;
  5721. }
  5722. l1251:;
  5723. l1249:;
  5724. { int yypos1250= G->pos, yythunkpos1250= G->thunkpos;
  5725. { int yypos1253= G->pos, yythunkpos1253= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1254; } goto l1253;
  5726. l1254:; G->pos= yypos1253; G->thunkpos= yythunkpos1253; if (!yymatchChar(G, '-')) goto l1250;
  5727. }
  5728. l1253:; goto l1249;
  5729. l1250:; G->pos= yypos1250; G->thunkpos= yythunkpos1250;
  5730. } if (!yy_Spnl(G)) { goto l1248; }
  5731. { int yypos1255= G->pos, yythunkpos1255= G->thunkpos; if (!yymatchChar(G, '=')) goto l1255; if (!yy_Spnl(G)) { goto l1255; }
  5732. { int yypos1257= G->pos, yythunkpos1257= G->thunkpos; if (!yy_Quoted(G)) { goto l1258; } goto l1257;
  5733. l1258:; G->pos= yypos1257; G->thunkpos= yythunkpos1257;
  5734. { int yypos1261= G->pos, yythunkpos1261= G->thunkpos; if (!yymatchChar(G, '>')) goto l1261; goto l1255;
  5735. l1261:; G->pos= yypos1261; G->thunkpos= yythunkpos1261;
  5736. } if (!yy_Nonspacechar(G)) { goto l1255; }
  5737. l1259:;
  5738. { int yypos1260= G->pos, yythunkpos1260= G->thunkpos;
  5739. { int yypos1262= G->pos, yythunkpos1262= G->thunkpos; if (!yymatchChar(G, '>')) goto l1262; goto l1260;
  5740. l1262:; G->pos= yypos1262; G->thunkpos= yythunkpos1262;
  5741. } if (!yy_Nonspacechar(G)) { goto l1260; } goto l1259;
  5742. l1260:; G->pos= yypos1260; G->thunkpos= yythunkpos1260;
  5743. }
  5744. }
  5745. l1257:; goto l1256;
  5746. l1255:; G->pos= yypos1255; G->thunkpos= yythunkpos1255;
  5747. }
  5748. l1256:; if (!yy_Spnl(G)) { goto l1248; }
  5749. yyprintf((stderr, " ok %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5750. return 1;
  5751. l1248:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5752. yyprintf((stderr, " fail %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5753. return 0;
  5754. }
  5755. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G)
  5756. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5757. yyprintf((stderr, "%s\n", "HtmlBlockOpenAddress")); if (!yymatchChar(G, '<')) goto l1263; if (!yy_Spnl(G)) { goto l1263; }
  5758. { int yypos1264= G->pos, yythunkpos1264= G->thunkpos; if (!yymatchString(G, "address")) goto l1265; goto l1264;
  5759. l1265:; G->pos= yypos1264; G->thunkpos= yythunkpos1264; if (!yymatchString(G, "ADDRESS")) goto l1263;
  5760. }
  5761. l1264:; if (!yy_Spnl(G)) { goto l1263; }
  5762. l1266:;
  5763. { int yypos1267= G->pos, yythunkpos1267= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1267; } goto l1266;
  5764. l1267:; G->pos= yypos1267; G->thunkpos= yythunkpos1267;
  5765. } if (!yymatchChar(G, '>')) goto l1263;
  5766. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5767. return 1;
  5768. l1263:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5769. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5770. return 0;
  5771. }
  5772. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G)
  5773. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5774. yyprintf((stderr, "%s\n", "OptionallyIndentedLine"));
  5775. { int yypos1269= G->pos, yythunkpos1269= G->thunkpos; if (!yy_Indent(G)) { goto l1269; } goto l1270;
  5776. l1269:; G->pos= yypos1269; G->thunkpos= yythunkpos1269;
  5777. }
  5778. l1270:; if (!yy_Line(G)) { goto l1268; }
  5779. yyprintf((stderr, " ok %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5780. return 1;
  5781. l1268:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5782. yyprintf((stderr, " fail %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5783. return 0;
  5784. }
  5785. YY_RULE(int) yy_Indent(GREG *G)
  5786. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5787. yyprintf((stderr, "%s\n", "Indent"));
  5788. { int yypos1272= G->pos, yythunkpos1272= G->thunkpos; if (!yymatchChar(G, '\t')) goto l1273; goto l1272;
  5789. l1273:; G->pos= yypos1272; G->thunkpos= yythunkpos1272; if (!yymatchString(G, " ")) goto l1271;
  5790. }
  5791. l1272:;
  5792. yyprintf((stderr, " ok %s @ %s\n", "Indent", G->buf+G->pos));
  5793. return 1;
  5794. l1271:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5795. yyprintf((stderr, " fail %s @ %s\n", "Indent", G->buf+G->pos));
  5796. return 0;
  5797. }
  5798. YY_RULE(int) yy_ListBlockLine(GREG *G)
  5799. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5800. yyprintf((stderr, "%s\n", "ListBlockLine"));
  5801. { int yypos1275= G->pos, yythunkpos1275= G->thunkpos; if (!yy_BlankLine(G)) { goto l1275; } goto l1274;
  5802. l1275:; G->pos= yypos1275; G->thunkpos= yythunkpos1275;
  5803. }
  5804. { int yypos1276= G->pos, yythunkpos1276= G->thunkpos;
  5805. { int yypos1277= G->pos, yythunkpos1277= G->thunkpos; if (!yy_Indent(G)) { goto l1277; } goto l1278;
  5806. l1277:; G->pos= yypos1277; G->thunkpos= yythunkpos1277;
  5807. }
  5808. l1278:;
  5809. { int yypos1279= G->pos, yythunkpos1279= G->thunkpos; if (!yy_Bullet(G)) { goto l1280; } goto l1279;
  5810. l1280:; G->pos= yypos1279; G->thunkpos= yythunkpos1279; if (!yy_Enumerator(G)) { goto l1276; }
  5811. }
  5812. l1279:; goto l1274;
  5813. l1276:; G->pos= yypos1276; G->thunkpos= yythunkpos1276;
  5814. }
  5815. { int yypos1281= G->pos, yythunkpos1281= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1281; } goto l1274;
  5816. l1281:; G->pos= yypos1281; G->thunkpos= yythunkpos1281;
  5817. } if (!yy_OptionallyIndentedLine(G)) { goto l1274; }
  5818. yyprintf((stderr, " ok %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5819. return 1;
  5820. l1274:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5821. yyprintf((stderr, " fail %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5822. return 0;
  5823. }
  5824. YY_RULE(int) yy_ListContinuationBlock(GREG *G)
  5825. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5826. yyprintf((stderr, "%s\n", "ListContinuationBlock")); if (!yy_StartList(G)) { goto l1282; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1282;
  5827. l1283:;
  5828. { int yypos1284= G->pos, yythunkpos1284= G->thunkpos; if (!yy_BlankLine(G)) { goto l1284; } goto l1283;
  5829. l1284:; G->pos= yypos1284; G->thunkpos= yythunkpos1284;
  5830. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1282; yyDo(G, yy_1_ListContinuationBlock, G->begin, G->end); if (!yy_Indent(G)) { goto l1282; } if (!yy_ListBlock(G)) { goto l1282; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end);
  5831. l1285:;
  5832. { int yypos1286= G->pos, yythunkpos1286= G->thunkpos; if (!yy_Indent(G)) { goto l1286; } if (!yy_ListBlock(G)) { goto l1286; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end); goto l1285;
  5833. l1286:; G->pos= yypos1286; G->thunkpos= yythunkpos1286;
  5834. } yyDo(G, yy_3_ListContinuationBlock, G->begin, G->end);
  5835. yyprintf((stderr, " ok %s @ %s\n", "ListContinuationBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5836. return 1;
  5837. l1282:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5838. yyprintf((stderr, " fail %s @ %s\n", "ListContinuationBlock", G->buf+G->pos));
  5839. return 0;
  5840. }
  5841. YY_RULE(int) yy_ListBlock(GREG *G)
  5842. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5843. yyprintf((stderr, "%s\n", "ListBlock")); if (!yy_StartList(G)) { goto l1287; } yyDo(G, yySet, -1, 0);
  5844. { int yypos1288= G->pos, yythunkpos1288= G->thunkpos; if (!yy_BlankLine(G)) { goto l1288; } goto l1287;
  5845. l1288:; G->pos= yypos1288; G->thunkpos= yythunkpos1288;
  5846. } if (!yy_Line(G)) { goto l1287; } yyDo(G, yy_1_ListBlock, G->begin, G->end);
  5847. l1289:;
  5848. { int yypos1290= G->pos, yythunkpos1290= G->thunkpos; if (!yy_ListBlockLine(G)) { goto l1290; } yyDo(G, yy_2_ListBlock, G->begin, G->end); goto l1289;
  5849. l1290:; G->pos= yypos1290; G->thunkpos= yythunkpos1290;
  5850. } yyDo(G, yy_3_ListBlock, G->begin, G->end);
  5851. yyprintf((stderr, " ok %s @ %s\n", "ListBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5852. return 1;
  5853. l1287:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5854. yyprintf((stderr, " fail %s @ %s\n", "ListBlock", G->buf+G->pos));
  5855. return 0;
  5856. }
  5857. YY_RULE(int) yy_ListItem(GREG *G)
  5858. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5859. yyprintf((stderr, "%s\n", "ListItem"));
  5860. { int yypos1292= G->pos, yythunkpos1292= G->thunkpos; if (!yy_Bullet(G)) { goto l1293; } goto l1292;
  5861. l1293:; G->pos= yypos1292; G->thunkpos= yythunkpos1292; if (!yy_Enumerator(G)) { goto l1291; }
  5862. }
  5863. l1292:; if (!yy_StartList(G)) { goto l1291; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1291; } yyDo(G, yy_1_ListItem, G->begin, G->end);
  5864. l1294:;
  5865. { int yypos1295= G->pos, yythunkpos1295= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1295; } yyDo(G, yy_2_ListItem, G->begin, G->end); goto l1294;
  5866. l1295:; G->pos= yypos1295; G->thunkpos= yythunkpos1295;
  5867. } yyDo(G, yy_3_ListItem, G->begin, G->end);
  5868. yyprintf((stderr, " ok %s @ %s\n", "ListItem", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5869. return 1;
  5870. l1291:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5871. yyprintf((stderr, " fail %s @ %s\n", "ListItem", G->buf+G->pos));
  5872. return 0;
  5873. }
  5874. YY_RULE(int) yy_Enumerator(GREG *G)
  5875. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5876. yyprintf((stderr, "%s\n", "Enumerator")); if (!yy_NonindentSpace(G)) { goto l1296; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1296; 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 l1296;
  5877. l1297:;
  5878. { int yypos1298= G->pos, yythunkpos1298= 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 l1298; goto l1297;
  5879. l1298:; G->pos= yypos1298; G->thunkpos= yythunkpos1298;
  5880. } if (!yymatchChar(G, '.')) goto l1296; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1296; if (!yy_Spacechar(G)) { goto l1296; }
  5881. l1299:;
  5882. { int yypos1300= G->pos, yythunkpos1300= G->thunkpos; if (!yy_Spacechar(G)) { goto l1300; } goto l1299;
  5883. l1300:; G->pos= yypos1300; G->thunkpos= yythunkpos1300;
  5884. } yyDo(G, yy_1_Enumerator, G->begin, G->end);
  5885. yyprintf((stderr, " ok %s @ %s\n", "Enumerator", G->buf+G->pos));
  5886. return 1;
  5887. l1296:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5888. yyprintf((stderr, " fail %s @ %s\n", "Enumerator", G->buf+G->pos));
  5889. return 0;
  5890. }
  5891. YY_RULE(int) yy_ListItemTight(GREG *G)
  5892. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5893. yyprintf((stderr, "%s\n", "ListItemTight"));
  5894. { int yypos1302= G->pos, yythunkpos1302= G->thunkpos; if (!yy_Bullet(G)) { goto l1303; } goto l1302;
  5895. l1303:; G->pos= yypos1302; G->thunkpos= yythunkpos1302; if (!yy_Enumerator(G)) { goto l1301; }
  5896. }
  5897. l1302:; if (!yy_StartList(G)) { goto l1301; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1301; } yyDo(G, yy_1_ListItemTight, G->begin, G->end);
  5898. l1304:;
  5899. { int yypos1305= G->pos, yythunkpos1305= G->thunkpos;
  5900. { int yypos1306= G->pos, yythunkpos1306= G->thunkpos; if (!yy_BlankLine(G)) { goto l1306; } goto l1305;
  5901. l1306:; G->pos= yypos1306; G->thunkpos= yythunkpos1306;
  5902. } if (!yy_ListContinuationBlock(G)) { goto l1305; } yyDo(G, yy_2_ListItemTight, G->begin, G->end); goto l1304;
  5903. l1305:; G->pos= yypos1305; G->thunkpos= yythunkpos1305;
  5904. }
  5905. { int yypos1307= G->pos, yythunkpos1307= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1307; } goto l1301;
  5906. l1307:; G->pos= yypos1307; G->thunkpos= yythunkpos1307;
  5907. } yyDo(G, yy_3_ListItemTight, G->begin, G->end);
  5908. yyprintf((stderr, " ok %s @ %s\n", "ListItemTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5909. return 1;
  5910. l1301:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5911. yyprintf((stderr, " fail %s @ %s\n", "ListItemTight", G->buf+G->pos));
  5912. return 0;
  5913. }
  5914. YY_RULE(int) yy_ListLoose(GREG *G)
  5915. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  5916. yyprintf((stderr, "%s\n", "ListLoose")); if (!yy_StartList(G)) { goto l1308; } yyDo(G, yySet, -2, 0); if (!yy_ListItem(G)) { goto l1308; } yyDo(G, yySet, -1, 0);
  5917. l1311:;
  5918. { int yypos1312= G->pos, yythunkpos1312= G->thunkpos; if (!yy_BlankLine(G)) { goto l1312; } goto l1311;
  5919. l1312:; G->pos= yypos1312; G->thunkpos= yythunkpos1312;
  5920. } yyDo(G, yy_1_ListLoose, G->begin, G->end);
  5921. l1309:;
  5922. { int yypos1310= G->pos, yythunkpos1310= G->thunkpos; if (!yy_ListItem(G)) { goto l1310; } yyDo(G, yySet, -1, 0);
  5923. l1313:;
  5924. { int yypos1314= G->pos, yythunkpos1314= G->thunkpos; if (!yy_BlankLine(G)) { goto l1314; } goto l1313;
  5925. l1314:; G->pos= yypos1314; G->thunkpos= yythunkpos1314;
  5926. } yyDo(G, yy_1_ListLoose, G->begin, G->end); goto l1309;
  5927. l1310:; G->pos= yypos1310; G->thunkpos= yythunkpos1310;
  5928. } yyDo(G, yy_2_ListLoose, G->begin, G->end);
  5929. yyprintf((stderr, " ok %s @ %s\n", "ListLoose", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  5930. return 1;
  5931. l1308:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5932. yyprintf((stderr, " fail %s @ %s\n", "ListLoose", G->buf+G->pos));
  5933. return 0;
  5934. }
  5935. YY_RULE(int) yy_ListTight(GREG *G)
  5936. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5937. yyprintf((stderr, "%s\n", "ListTight")); if (!yy_StartList(G)) { goto l1315; } yyDo(G, yySet, -1, 0); if (!yy_ListItemTight(G)) { goto l1315; } yyDo(G, yy_1_ListTight, G->begin, G->end);
  5938. l1316:;
  5939. { int yypos1317= G->pos, yythunkpos1317= G->thunkpos; if (!yy_ListItemTight(G)) { goto l1317; } yyDo(G, yy_1_ListTight, G->begin, G->end); goto l1316;
  5940. l1317:; G->pos= yypos1317; G->thunkpos= yythunkpos1317;
  5941. }
  5942. l1318:;
  5943. { int yypos1319= G->pos, yythunkpos1319= G->thunkpos; if (!yy_BlankLine(G)) { goto l1319; } goto l1318;
  5944. l1319:; G->pos= yypos1319; G->thunkpos= yythunkpos1319;
  5945. }
  5946. { int yypos1320= G->pos, yythunkpos1320= G->thunkpos;
  5947. { int yypos1321= G->pos, yythunkpos1321= G->thunkpos; if (!yy_Bullet(G)) { goto l1322; } goto l1321;
  5948. l1322:; G->pos= yypos1321; G->thunkpos= yythunkpos1321; if (!yy_Enumerator(G)) { goto l1320; }
  5949. }
  5950. l1321:; goto l1315;
  5951. l1320:; G->pos= yypos1320; G->thunkpos= yythunkpos1320;
  5952. } yyDo(G, yy_2_ListTight, G->begin, G->end);
  5953. yyprintf((stderr, " ok %s @ %s\n", "ListTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5954. return 1;
  5955. l1315:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5956. yyprintf((stderr, " fail %s @ %s\n", "ListTight", G->buf+G->pos));
  5957. return 0;
  5958. }
  5959. YY_RULE(int) yy_Bullet(GREG *G)
  5960. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5961. yyprintf((stderr, "%s\n", "Bullet"));
  5962. { int yypos1324= G->pos, yythunkpos1324= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1324; } goto l1323;
  5963. l1324:; G->pos= yypos1324; G->thunkpos= yythunkpos1324;
  5964. } if (!yy_NonindentSpace(G)) { goto l1323; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1323;
  5965. { int yypos1325= G->pos, yythunkpos1325= G->thunkpos; if (!yymatchChar(G, '+')) goto l1326; goto l1325;
  5966. l1326:; G->pos= yypos1325; G->thunkpos= yythunkpos1325; if (!yymatchChar(G, '*')) goto l1327; goto l1325;
  5967. l1327:; G->pos= yypos1325; G->thunkpos= yythunkpos1325; if (!yymatchChar(G, '-')) goto l1323;
  5968. }
  5969. l1325:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1323; if (!yy_Spacechar(G)) { goto l1323; }
  5970. l1328:;
  5971. { int yypos1329= G->pos, yythunkpos1329= G->thunkpos; if (!yy_Spacechar(G)) { goto l1329; } goto l1328;
  5972. l1329:; G->pos= yypos1329; G->thunkpos= yythunkpos1329;
  5973. } yyDo(G, yy_1_Bullet, G->begin, G->end);
  5974. yyprintf((stderr, " ok %s @ %s\n", "Bullet", G->buf+G->pos));
  5975. return 1;
  5976. l1323:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5977. yyprintf((stderr, " fail %s @ %s\n", "Bullet", G->buf+G->pos));
  5978. return 0;
  5979. }
  5980. YY_RULE(int) yy_TableCell(GREG *G)
  5981. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5982. yyprintf((stderr, "%s\n", "TableCell")); if (!yy_Sp(G)) { goto l1330; }
  5983. l1331:;
  5984. { int yypos1332= G->pos, yythunkpos1332= G->thunkpos;
  5985. { int yypos1333= G->pos, yythunkpos1333= G->thunkpos; if (!yymatchChar(G, '|')) goto l1333; goto l1332;
  5986. l1333:; G->pos= yypos1333; G->thunkpos= yythunkpos1333;
  5987. }
  5988. { int yypos1334= G->pos, yythunkpos1334= G->thunkpos; if (!yy_Newline(G)) { goto l1334; } goto l1332;
  5989. l1334:; G->pos= yypos1334; G->thunkpos= yythunkpos1334;
  5990. } if (!yy_Inline(G)) { goto l1332; } goto l1331;
  5991. l1332:; G->pos= yypos1332; G->thunkpos= yythunkpos1332;
  5992. } if (!yy_TableBorder(G)) { goto l1330; }
  5993. yyprintf((stderr, " ok %s @ %s\n", "TableCell", G->buf+G->pos));
  5994. return 1;
  5995. l1330:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5996. yyprintf((stderr, " fail %s @ %s\n", "TableCell", G->buf+G->pos));
  5997. return 0;
  5998. }
  5999. YY_RULE(int) yy_TableBorder(GREG *G)
  6000. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6001. yyprintf((stderr, "%s\n", "TableBorder")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1335; if (!yymatchChar(G, '|')) goto l1335; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1335; yyDo(G, yy_1_TableBorder, G->begin, G->end);
  6002. yyprintf((stderr, " ok %s @ %s\n", "TableBorder", G->buf+G->pos));
  6003. return 1;
  6004. l1335:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6005. yyprintf((stderr, " fail %s @ %s\n", "TableBorder", G->buf+G->pos));
  6006. return 0;
  6007. }
  6008. YY_RULE(int) yy_TableLine(GREG *G)
  6009. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6010. yyprintf((stderr, "%s\n", "TableLine")); if (!yy_TableBorder(G)) { goto l1336; } if (!yy_TableCell(G)) { goto l1336; }
  6011. l1337:;
  6012. { int yypos1338= G->pos, yythunkpos1338= G->thunkpos; if (!yy_TableCell(G)) { goto l1338; } goto l1337;
  6013. l1338:; G->pos= yypos1338; G->thunkpos= yythunkpos1338;
  6014. } if (!yy_Sp(G)) { goto l1336; } if (!yy_Newline(G)) { goto l1336; }
  6015. yyprintf((stderr, " ok %s @ %s\n", "TableLine", G->buf+G->pos));
  6016. return 1;
  6017. l1336:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6018. yyprintf((stderr, " fail %s @ %s\n", "TableLine", G->buf+G->pos));
  6019. return 0;
  6020. }
  6021. YY_RULE(int) yy_TableDelimiter(GREG *G)
  6022. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6023. yyprintf((stderr, "%s\n", "TableDelimiter")); if (!yy_TableBorder(G)) { goto l1339; } if (!yy_Sp(G)) { goto l1339; }
  6024. { int yypos1342= G->pos, yythunkpos1342= G->thunkpos; if (!yymatchChar(G, ':')) goto l1342; goto l1343;
  6025. l1342:; G->pos= yypos1342; G->thunkpos= yythunkpos1342;
  6026. }
  6027. l1343:; if (!yymatchChar(G, '-')) goto l1339;
  6028. l1344:;
  6029. { int yypos1345= G->pos, yythunkpos1345= G->thunkpos; if (!yymatchChar(G, '-')) goto l1345; goto l1344;
  6030. l1345:; G->pos= yypos1345; G->thunkpos= yythunkpos1345;
  6031. }
  6032. { int yypos1346= G->pos, yythunkpos1346= G->thunkpos; if (!yymatchChar(G, ':')) goto l1346; goto l1347;
  6033. l1346:; G->pos= yypos1346; G->thunkpos= yythunkpos1346;
  6034. }
  6035. l1347:; if (!yy_Sp(G)) { goto l1339; } if (!yy_TableBorder(G)) { goto l1339; }
  6036. l1340:;
  6037. { int yypos1341= G->pos, yythunkpos1341= G->thunkpos; if (!yy_Sp(G)) { goto l1341; }
  6038. { int yypos1348= G->pos, yythunkpos1348= G->thunkpos; if (!yymatchChar(G, ':')) goto l1348; goto l1349;
  6039. l1348:; G->pos= yypos1348; G->thunkpos= yythunkpos1348;
  6040. }
  6041. l1349:; if (!yymatchChar(G, '-')) goto l1341;
  6042. l1350:;
  6043. { int yypos1351= G->pos, yythunkpos1351= G->thunkpos; if (!yymatchChar(G, '-')) goto l1351; goto l1350;
  6044. l1351:; G->pos= yypos1351; G->thunkpos= yythunkpos1351;
  6045. }
  6046. { int yypos1352= G->pos, yythunkpos1352= G->thunkpos; if (!yymatchChar(G, ':')) goto l1352; goto l1353;
  6047. l1352:; G->pos= yypos1352; G->thunkpos= yythunkpos1352;
  6048. }
  6049. l1353:; if (!yy_Sp(G)) { goto l1341; } if (!yy_TableBorder(G)) { goto l1341; } goto l1340;
  6050. l1341:; G->pos= yypos1341; G->thunkpos= yythunkpos1341;
  6051. } if (!yy_Sp(G)) { goto l1339; } if (!yy_Newline(G)) { goto l1339; }
  6052. yyprintf((stderr, " ok %s @ %s\n", "TableDelimiter", G->buf+G->pos));
  6053. return 1;
  6054. l1339:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6055. yyprintf((stderr, " fail %s @ %s\n", "TableDelimiter", G->buf+G->pos));
  6056. return 0;
  6057. }
  6058. YY_RULE(int) yy_TableHeader(GREG *G)
  6059. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6060. yyprintf((stderr, "%s\n", "TableHeader")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1354; if (!yy_LocMarker(G)) { goto l1354; } yyDo(G, yySet, -1, 0); if (!yy_TableLine(G)) { goto l1354; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1354; yyDo(G, yy_1_TableHeader, G->begin, G->end);
  6061. yyprintf((stderr, " ok %s @ %s\n", "TableHeader", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6062. return 1;
  6063. l1354:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6064. yyprintf((stderr, " fail %s @ %s\n", "TableHeader", G->buf+G->pos));
  6065. return 0;
  6066. }
  6067. YY_RULE(int) yy_InlineEquationMultiple(GREG *G)
  6068. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6069. yyprintf((stderr, "%s\n", "InlineEquationMultiple"));
  6070. { int yypos1356= G->pos, yythunkpos1356= G->thunkpos; if (!yymatchChar(G, '$')) goto l1356; goto l1355;
  6071. l1356:; G->pos= yypos1356; G->thunkpos= yythunkpos1356;
  6072. } if (!yy_Nonspacechar(G)) { goto l1355; }
  6073. { int yypos1359= G->pos, yythunkpos1359= G->thunkpos; if (!yymatchChar(G, '$')) goto l1359; goto l1355;
  6074. l1359:; G->pos= yypos1359; G->thunkpos= yythunkpos1359;
  6075. }
  6076. { int yypos1360= G->pos, yythunkpos1360= G->thunkpos; if (!yy_Newline(G)) { goto l1360; } goto l1355;
  6077. l1360:; G->pos= yypos1360; G->thunkpos= yythunkpos1360;
  6078. } if (!yymatchDot(G)) goto l1355;
  6079. l1357:;
  6080. { int yypos1358= G->pos, yythunkpos1358= G->thunkpos;
  6081. { int yypos1361= G->pos, yythunkpos1361= G->thunkpos; if (!yymatchChar(G, '$')) goto l1361; goto l1358;
  6082. l1361:; G->pos= yypos1361; G->thunkpos= yythunkpos1361;
  6083. }
  6084. { int yypos1362= G->pos, yythunkpos1362= G->thunkpos; if (!yy_Newline(G)) { goto l1362; } goto l1358;
  6085. l1362:; G->pos= yypos1362; G->thunkpos= yythunkpos1362;
  6086. } if (!yymatchDot(G)) goto l1358; goto l1357;
  6087. l1358:; G->pos= yypos1358; G->thunkpos= yythunkpos1358;
  6088. } if (!yymatchChar(G, '$')) goto l1355; yyText(G, G->begin, G->end); if (!( IEP_POST )) goto l1355;
  6089. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  6090. return 1;
  6091. l1355:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6092. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  6093. return 0;
  6094. }
  6095. YY_RULE(int) yy_InlineEquationSingle(GREG *G)
  6096. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6097. yyprintf((stderr, "%s\n", "InlineEquationSingle"));
  6098. { int yypos1364= G->pos, yythunkpos1364= G->thunkpos; if (!yymatchChar(G, '$')) goto l1364; goto l1363;
  6099. l1364:; G->pos= yypos1364; G->thunkpos= yythunkpos1364;
  6100. }
  6101. { int yypos1365= G->pos, yythunkpos1365= G->thunkpos; if (!yymatchChar(G, '\\')) goto l1365; goto l1363;
  6102. l1365:; G->pos= yypos1365; G->thunkpos= yythunkpos1365;
  6103. } if (!yy_Nonspacechar(G)) { goto l1363; } if (!yymatchChar(G, '$')) goto l1363;
  6104. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  6105. return 1;
  6106. l1363:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6107. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  6108. return 0;
  6109. }
  6110. YY_RULE(int) yy_InlineEquation(GREG *G)
  6111. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6112. yyprintf((stderr, "%s\n", "InlineEquation")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1366; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1366; if (!yymatchChar(G, '$')) goto l1366; yyText(G, G->begin, G->end); if (!( IEP_PRE )) goto l1366;
  6113. { int yypos1367= G->pos, yythunkpos1367= G->thunkpos; if (!yy_InlineEquationSingle(G)) { goto l1368; } goto l1367;
  6114. l1368:; G->pos= yypos1367; G->thunkpos= yythunkpos1367; if (!yy_InlineEquationMultiple(G)) { goto l1366; }
  6115. }
  6116. l1367:;
  6117. { int yypos1369= G->pos, yythunkpos1369= 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 l1369; goto l1366;
  6118. l1369:; G->pos= yypos1369; G->thunkpos= yythunkpos1369;
  6119. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1366; yyDo(G, yy_1_InlineEquation, G->begin, G->end);
  6120. yyprintf((stderr, " ok %s @ %s\n", "InlineEquation", G->buf+G->pos));
  6121. return 1;
  6122. l1366:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6123. yyprintf((stderr, " fail %s @ %s\n", "InlineEquation", G->buf+G->pos));
  6124. return 0;
  6125. }
  6126. YY_RULE(int) yy_Nonspacechar(GREG *G)
  6127. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6128. yyprintf((stderr, "%s\n", "Nonspacechar"));
  6129. { int yypos1371= G->pos, yythunkpos1371= G->thunkpos; if (!yy_Spacechar(G)) { goto l1371; } goto l1370;
  6130. l1371:; G->pos= yypos1371; G->thunkpos= yythunkpos1371;
  6131. }
  6132. { int yypos1372= G->pos, yythunkpos1372= G->thunkpos; if (!yy_Newline(G)) { goto l1372; } goto l1370;
  6133. l1372:; G->pos= yypos1372; G->thunkpos= yythunkpos1372;
  6134. } if (!yymatchDot(G)) goto l1370;
  6135. yyprintf((stderr, " ok %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  6136. return 1;
  6137. l1370:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6138. yyprintf((stderr, " fail %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  6139. return 0;
  6140. }
  6141. YY_RULE(int) yy_DisplayFormulaRawMark(GREG *G)
  6142. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6143. yyprintf((stderr, "%s\n", "DisplayFormulaRawMark"));
  6144. { int yypos1376= G->pos, yythunkpos1376= G->thunkpos; if (!yymatchChar(G, '{')) goto l1376; goto l1373;
  6145. l1376:; G->pos= yypos1376; G->thunkpos= yythunkpos1376;
  6146. }
  6147. { int yypos1377= G->pos, yythunkpos1377= G->thunkpos; if (!yymatchChar(G, '}')) goto l1377; goto l1373;
  6148. l1377:; G->pos= yypos1377; G->thunkpos= yythunkpos1377;
  6149. } if (!yy_Nonspacechar(G)) { goto l1373; }
  6150. l1374:;
  6151. { int yypos1375= G->pos, yythunkpos1375= G->thunkpos;
  6152. { int yypos1378= G->pos, yythunkpos1378= G->thunkpos; if (!yymatchChar(G, '{')) goto l1378; goto l1375;
  6153. l1378:; G->pos= yypos1378; G->thunkpos= yythunkpos1378;
  6154. }
  6155. { int yypos1379= G->pos, yythunkpos1379= G->thunkpos; if (!yymatchChar(G, '}')) goto l1379; goto l1375;
  6156. l1379:; G->pos= yypos1379; G->thunkpos= yythunkpos1379;
  6157. } if (!yy_Nonspacechar(G)) { goto l1375; } goto l1374;
  6158. l1375:; G->pos= yypos1375; G->thunkpos= yythunkpos1375;
  6159. }
  6160. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRawMark", G->buf+G->pos));
  6161. return 1;
  6162. l1373:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6163. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRawMark", G->buf+G->pos));
  6164. return 0;
  6165. }
  6166. YY_RULE(int) yy_DisplayFormulaRawEnd(GREG *G)
  6167. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6168. yyprintf((stderr, "%s\n", "DisplayFormulaRawEnd")); if (!yymatchString(G, "\\end")) goto l1380; if (!yymatchChar(G, '{')) goto l1380; if (!yy_DisplayFormulaRawMark(G)) { goto l1380; } if (!yymatchChar(G, '}')) goto l1380;
  6169. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRawEnd", G->buf+G->pos));
  6170. return 1;
  6171. l1380:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6172. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRawEnd", G->buf+G->pos));
  6173. return 0;
  6174. }
  6175. YY_RULE(int) yy_Spnl(GREG *G)
  6176. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6177. yyprintf((stderr, "%s\n", "Spnl")); if (!yy_Sp(G)) { goto l1381; }
  6178. { int yypos1382= G->pos, yythunkpos1382= G->thunkpos; if (!yy_Newline(G)) { goto l1382; } if (!yy_Sp(G)) { goto l1382; } goto l1383;
  6179. l1382:; G->pos= yypos1382; G->thunkpos= yythunkpos1382;
  6180. }
  6181. l1383:;
  6182. yyprintf((stderr, " ok %s @ %s\n", "Spnl", G->buf+G->pos));
  6183. return 1;
  6184. l1381:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6185. yyprintf((stderr, " fail %s @ %s\n", "Spnl", G->buf+G->pos));
  6186. return 0;
  6187. }
  6188. YY_RULE(int) yy_DisplayFormulaRawStart(GREG *G)
  6189. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6190. yyprintf((stderr, "%s\n", "DisplayFormulaRawStart")); if (!yymatchString(G, "\\begin")) goto l1384; if (!yymatchChar(G, '{')) goto l1384; if (!yy_DisplayFormulaRawMark(G)) { goto l1384; } if (!yymatchChar(G, '}')) goto l1384;
  6191. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRawStart", G->buf+G->pos));
  6192. return 1;
  6193. l1384:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6194. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRawStart", G->buf+G->pos));
  6195. return 0;
  6196. }
  6197. YY_RULE(int) yy_FormulaNumber(GREG *G)
  6198. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6199. yyprintf((stderr, "%s\n", "FormulaNumber")); if (!yymatchChar(G, '(')) goto l1385;
  6200. { int yypos1388= G->pos, yythunkpos1388= G->thunkpos; if (!yymatchChar(G, ')')) goto l1388; goto l1385;
  6201. l1388:; G->pos= yypos1388; G->thunkpos= yythunkpos1388;
  6202. }
  6203. { int yypos1389= G->pos, yythunkpos1389= G->thunkpos; if (!yymatchChar(G, '$')) goto l1389; goto l1385;
  6204. l1389:; G->pos= yypos1389; G->thunkpos= yythunkpos1389;
  6205. }
  6206. { int yypos1390= G->pos, yythunkpos1390= G->thunkpos; if (!yy_Newline(G)) { goto l1390; } goto l1385;
  6207. l1390:; G->pos= yypos1390; G->thunkpos= yythunkpos1390;
  6208. } if (!yymatchDot(G)) goto l1385;
  6209. l1386:;
  6210. { int yypos1387= G->pos, yythunkpos1387= G->thunkpos;
  6211. { int yypos1391= G->pos, yythunkpos1391= G->thunkpos; if (!yymatchChar(G, ')')) goto l1391; goto l1387;
  6212. l1391:; G->pos= yypos1391; G->thunkpos= yythunkpos1391;
  6213. }
  6214. { int yypos1392= G->pos, yythunkpos1392= G->thunkpos; if (!yymatchChar(G, '$')) goto l1392; goto l1387;
  6215. l1392:; G->pos= yypos1392; G->thunkpos= yythunkpos1392;
  6216. }
  6217. { int yypos1393= G->pos, yythunkpos1393= G->thunkpos; if (!yy_Newline(G)) { goto l1393; } goto l1387;
  6218. l1393:; G->pos= yypos1393; G->thunkpos= yythunkpos1393;
  6219. } if (!yymatchDot(G)) goto l1387; goto l1386;
  6220. l1387:; G->pos= yypos1387; G->thunkpos= yythunkpos1387;
  6221. } if (!yymatchChar(G, ')')) goto l1385;
  6222. yyprintf((stderr, " ok %s @ %s\n", "FormulaNumber", G->buf+G->pos));
  6223. return 1;
  6224. l1385:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6225. yyprintf((stderr, " fail %s @ %s\n", "FormulaNumber", G->buf+G->pos));
  6226. return 0;
  6227. }
  6228. YY_RULE(int) yy_DisplayFormulaRaw(GREG *G)
  6229. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6230. yyprintf((stderr, "%s\n", "DisplayFormulaRaw")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH_RAW) )) goto l1394; if (!yy_NonindentSpace(G)) { goto l1394; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1394; if (!yy_DisplayFormulaRawStart(G)) { goto l1394; } yyText(G, G->begin, G->end); if (!( start_dfr() )) goto l1394; if (!yy_Spnl(G)) { goto l1394; }
  6231. l1395:;
  6232. { int yypos1396= G->pos, yythunkpos1396= G->thunkpos;
  6233. { int yypos1397= G->pos, yythunkpos1397= G->thunkpos; if (!yy_DisplayFormulaRawStart(G)) { goto l1398; } yyText(G, G->begin, G->end); if (!( inc_dfr() )) goto l1398; goto l1397;
  6234. l1398:; G->pos= yypos1397; G->thunkpos= yythunkpos1397; yyText(G, G->begin, G->end); if (!( nested_dfr() )) goto l1399; if (!yy_DisplayFormulaRawEnd(G)) { goto l1399; } yyText(G, G->begin, G->end); if (!( dec_dfr() )) goto l1399; goto l1397;
  6235. l1399:; G->pos= yypos1397; G->thunkpos= yythunkpos1397;
  6236. { int yypos1400= G->pos, yythunkpos1400= G->thunkpos; if (!yy_DisplayFormulaRawEnd(G)) { goto l1400; } goto l1396;
  6237. l1400:; G->pos= yypos1400; G->thunkpos= yythunkpos1400;
  6238. }
  6239. { int yypos1401= G->pos, yythunkpos1401= G->thunkpos; if (!yy_DisplayFormulaRawStart(G)) { goto l1401; } goto l1396;
  6240. l1401:; G->pos= yypos1401; G->thunkpos= yythunkpos1401;
  6241. }
  6242. { int yypos1402= G->pos, yythunkpos1402= G->thunkpos; if (!yy_Newline(G)) { goto l1402; } if (!yy_Newline(G)) { goto l1402; }
  6243. l1403:;
  6244. { int yypos1404= G->pos, yythunkpos1404= G->thunkpos; if (!yy_Newline(G)) { goto l1404; } goto l1403;
  6245. l1404:; G->pos= yypos1404; G->thunkpos= yythunkpos1404;
  6246. } goto l1396;
  6247. l1402:; G->pos= yypos1402; G->thunkpos= yythunkpos1402;
  6248. } if (!yymatchDot(G)) goto l1396;
  6249. }
  6250. l1397:; goto l1395;
  6251. l1396:; G->pos= yypos1396; G->thunkpos= yythunkpos1396;
  6252. } yyText(G, G->begin, G->end); if (!( !nested_dfr() )) goto l1394; if (!yy_DisplayFormulaRawEnd(G)) { goto l1394; } yyText(G, G->begin, G->end); if (!( dec_dfr() )) goto l1394; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1394; if (!yy_Sp(G)) { goto l1394; } if (!yy_Newline(G)) { goto l1394; } yyDo(G, yy_1_DisplayFormulaRaw, G->begin, G->end);
  6253. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRaw", G->buf+G->pos));
  6254. return 1;
  6255. l1394:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6256. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRaw", G->buf+G->pos));
  6257. return 0;
  6258. }
  6259. YY_RULE(int) yy_DisplayFormulaDollar(GREG *G)
  6260. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6261. yyprintf((stderr, "%s\n", "DisplayFormulaDollar")); if (!yy_NonindentSpace(G)) { goto l1405; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1405; if (!yymatchString(G, "$$")) goto l1405;
  6262. l1406:;
  6263. { int yypos1407= G->pos, yythunkpos1407= G->thunkpos;
  6264. { int yypos1408= G->pos, yythunkpos1408= G->thunkpos; if (!yymatchString(G, "$$")) goto l1408; goto l1407;
  6265. l1408:; G->pos= yypos1408; G->thunkpos= yythunkpos1408;
  6266. } if (!yymatchDot(G)) goto l1407; goto l1406;
  6267. l1407:; G->pos= yypos1407; G->thunkpos= yythunkpos1407;
  6268. } if (!yymatchString(G, "$$")) goto l1405; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1405; if (!yy_Sp(G)) { goto l1405; }
  6269. { int yypos1409= G->pos, yythunkpos1409= G->thunkpos; if (!yy_FormulaNumber(G)) { goto l1409; } goto l1410;
  6270. l1409:; G->pos= yypos1409; G->thunkpos= yythunkpos1409;
  6271. }
  6272. l1410:; if (!yy_Sp(G)) { goto l1405; } if (!yy_Newline(G)) { goto l1405; } yyDo(G, yy_1_DisplayFormulaDollar, G->begin, G->end);
  6273. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaDollar", G->buf+G->pos));
  6274. return 1;
  6275. l1405:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6276. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaDollar", G->buf+G->pos));
  6277. return 0;
  6278. }
  6279. YY_RULE(int) yy_FencedCodeBlockTidle(GREG *G)
  6280. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6281. yyprintf((stderr, "%s\n", "FencedCodeBlockTidle")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1411; if (!yy_FencedCodeBlockStartTidleLine(G)) { goto l1411; }
  6282. l1412:;
  6283. { int yypos1413= G->pos, yythunkpos1413= G->thunkpos; if (!yy_FencedCodeBlockChunkTidle(G)) { goto l1413; } goto l1412;
  6284. l1413:; G->pos= yypos1413; G->thunkpos= yythunkpos1413;
  6285. } if (!yy_FencedCodeBlockEndTidle(G)) { goto l1411; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1411; yyDo(G, yy_1_FencedCodeBlockTidle, G->begin, G->end);
  6286. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockTidle", G->buf+G->pos));
  6287. return 1;
  6288. l1411:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6289. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockTidle", G->buf+G->pos));
  6290. return 0;
  6291. }
  6292. YY_RULE(int) yy_FencedCodeBlockTick(GREG *G)
  6293. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6294. yyprintf((stderr, "%s\n", "FencedCodeBlockTick")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1414; if (!yy_FencedCodeBlockStartTickLine(G)) { goto l1414; }
  6295. l1415:;
  6296. { int yypos1416= G->pos, yythunkpos1416= G->thunkpos; if (!yy_FencedCodeBlockChunkTick(G)) { goto l1416; } goto l1415;
  6297. l1416:; G->pos= yypos1416; G->thunkpos= yythunkpos1416;
  6298. } if (!yy_FencedCodeBlockEndTick(G)) { goto l1414; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1414; yyDo(G, yy_1_FencedCodeBlockTick, G->begin, G->end);
  6299. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockTick", G->buf+G->pos));
  6300. return 1;
  6301. l1414:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6302. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockTick", G->buf+G->pos));
  6303. return 0;
  6304. }
  6305. YY_RULE(int) yy_FencedCodeBlockEndTidle(GREG *G)
  6306. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6307. yyprintf((stderr, "%s\n", "FencedCodeBlockEndTidle")); if (!yymatchString(G, "~~~")) goto l1417;
  6308. l1418:;
  6309. { int yypos1419= G->pos, yythunkpos1419= G->thunkpos; if (!yy_Spacechar(G)) { goto l1419; } goto l1418;
  6310. l1419:; G->pos= yypos1419; G->thunkpos= yythunkpos1419;
  6311. } if (!yy_Newline(G)) { goto l1417; }
  6312. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockEndTidle", G->buf+G->pos));
  6313. return 1;
  6314. l1417:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6315. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockEndTidle", G->buf+G->pos));
  6316. return 0;
  6317. }
  6318. YY_RULE(int) yy_FencedCodeBlockChunkTidle(GREG *G)
  6319. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6320. yyprintf((stderr, "%s\n", "FencedCodeBlockChunkTidle"));
  6321. { int yypos1421= G->pos, yythunkpos1421= G->thunkpos; if (!yy_FencedCodeBlockEndTidle(G)) { goto l1421; } goto l1420;
  6322. l1421:; G->pos= yypos1421; G->thunkpos= yythunkpos1421;
  6323. }
  6324. l1422:;
  6325. { int yypos1423= G->pos, yythunkpos1423= G->thunkpos;
  6326. { int yypos1424= G->pos, yythunkpos1424= G->thunkpos; if (!yy_Newline(G)) { goto l1424; } goto l1423;
  6327. l1424:; G->pos= yypos1424; G->thunkpos= yythunkpos1424;
  6328. } if (!yymatchDot(G)) goto l1423; goto l1422;
  6329. l1423:; G->pos= yypos1423; G->thunkpos= yythunkpos1423;
  6330. } if (!yy_Newline(G)) { goto l1420; }
  6331. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockChunkTidle", G->buf+G->pos));
  6332. return 1;
  6333. l1420:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6334. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockChunkTidle", G->buf+G->pos));
  6335. return 0;
  6336. }
  6337. YY_RULE(int) yy_FencedCodeBlockStartTidleLine(GREG *G)
  6338. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6339. yyprintf((stderr, "%s\n", "FencedCodeBlockStartTidleLine")); if (!yy_FencedCodeBlockStartTidle(G)) { goto l1425; } if (!yy_Newline(G)) { goto l1425; }
  6340. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStartTidleLine", G->buf+G->pos));
  6341. return 1;
  6342. l1425:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6343. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStartTidleLine", G->buf+G->pos));
  6344. return 0;
  6345. }
  6346. YY_RULE(int) yy_FencedCodeBlockStartTidle(GREG *G)
  6347. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6348. yyprintf((stderr, "%s\n", "FencedCodeBlockStartTidle")); if (!yymatchString(G, "~~~")) goto l1426;
  6349. l1427:;
  6350. { int yypos1428= G->pos, yythunkpos1428= G->thunkpos;
  6351. { int yypos1429= G->pos, yythunkpos1429= G->thunkpos; if (!yy_Newline(G)) { goto l1429; } goto l1428;
  6352. l1429:; G->pos= yypos1429; G->thunkpos= yythunkpos1429;
  6353. }
  6354. { int yypos1430= G->pos, yythunkpos1430= G->thunkpos; if (!yymatchChar(G, '~')) goto l1430; goto l1428;
  6355. l1430:; G->pos= yypos1430; G->thunkpos= yythunkpos1430;
  6356. } if (!yymatchDot(G)) goto l1428; goto l1427;
  6357. l1428:; G->pos= yypos1428; G->thunkpos= yythunkpos1428;
  6358. }
  6359. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStartTidle", G->buf+G->pos));
  6360. return 1;
  6361. l1426:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6362. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStartTidle", G->buf+G->pos));
  6363. return 0;
  6364. }
  6365. YY_RULE(int) yy_Spacechar(GREG *G)
  6366. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6367. yyprintf((stderr, "%s\n", "Spacechar"));
  6368. { int yypos1432= G->pos, yythunkpos1432= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1433; goto l1432;
  6369. l1433:; G->pos= yypos1432; G->thunkpos= yythunkpos1432; if (!yymatchChar(G, '\t')) goto l1431;
  6370. }
  6371. l1432:;
  6372. yyprintf((stderr, " ok %s @ %s\n", "Spacechar", G->buf+G->pos));
  6373. return 1;
  6374. l1431:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6375. yyprintf((stderr, " fail %s @ %s\n", "Spacechar", G->buf+G->pos));
  6376. return 0;
  6377. }
  6378. YY_RULE(int) yy_FencedCodeBlockEndTick(GREG *G)
  6379. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6380. yyprintf((stderr, "%s\n", "FencedCodeBlockEndTick")); if (!yymatchString(G, "```")) goto l1434;
  6381. l1435:;
  6382. { int yypos1436= G->pos, yythunkpos1436= G->thunkpos; if (!yy_Spacechar(G)) { goto l1436; } goto l1435;
  6383. l1436:; G->pos= yypos1436; G->thunkpos= yythunkpos1436;
  6384. } if (!yy_Newline(G)) { goto l1434; }
  6385. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockEndTick", G->buf+G->pos));
  6386. return 1;
  6387. l1434:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6388. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockEndTick", G->buf+G->pos));
  6389. return 0;
  6390. }
  6391. YY_RULE(int) yy_FencedCodeBlockChunkTick(GREG *G)
  6392. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6393. yyprintf((stderr, "%s\n", "FencedCodeBlockChunkTick"));
  6394. { int yypos1438= G->pos, yythunkpos1438= G->thunkpos; if (!yy_FencedCodeBlockEndTick(G)) { goto l1438; } goto l1437;
  6395. l1438:; G->pos= yypos1438; G->thunkpos= yythunkpos1438;
  6396. }
  6397. l1439:;
  6398. { int yypos1440= G->pos, yythunkpos1440= G->thunkpos;
  6399. { int yypos1441= G->pos, yythunkpos1441= G->thunkpos; if (!yy_Newline(G)) { goto l1441; } goto l1440;
  6400. l1441:; G->pos= yypos1441; G->thunkpos= yythunkpos1441;
  6401. } if (!yymatchDot(G)) goto l1440; goto l1439;
  6402. l1440:; G->pos= yypos1440; G->thunkpos= yythunkpos1440;
  6403. } if (!yy_Newline(G)) { goto l1437; }
  6404. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockChunkTick", G->buf+G->pos));
  6405. return 1;
  6406. l1437:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6407. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockChunkTick", G->buf+G->pos));
  6408. return 0;
  6409. }
  6410. YY_RULE(int) yy_FencedCodeBlockStartTickLine(GREG *G)
  6411. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6412. yyprintf((stderr, "%s\n", "FencedCodeBlockStartTickLine")); if (!yy_FencedCodeBlockStartTick(G)) { goto l1442; } if (!yy_Newline(G)) { goto l1442; }
  6413. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStartTickLine", G->buf+G->pos));
  6414. return 1;
  6415. l1442:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6416. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStartTickLine", G->buf+G->pos));
  6417. return 0;
  6418. }
  6419. YY_RULE(int) yy_FencedCodeBlockStartTick(GREG *G)
  6420. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6421. yyprintf((stderr, "%s\n", "FencedCodeBlockStartTick")); if (!yymatchString(G, "```")) goto l1443;
  6422. l1444:;
  6423. { int yypos1445= G->pos, yythunkpos1445= G->thunkpos;
  6424. { int yypos1446= G->pos, yythunkpos1446= G->thunkpos; if (!yy_Newline(G)) { goto l1446; } goto l1445;
  6425. l1446:; G->pos= yypos1446; G->thunkpos= yythunkpos1446;
  6426. }
  6427. { int yypos1447= G->pos, yythunkpos1447= G->thunkpos; if (!yymatchChar(G, '`')) goto l1447; goto l1445;
  6428. l1447:; G->pos= yypos1447; G->thunkpos= yythunkpos1447;
  6429. } if (!yymatchDot(G)) goto l1445; goto l1444;
  6430. l1445:; G->pos= yypos1445; G->thunkpos= yythunkpos1445;
  6431. }
  6432. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStartTick", G->buf+G->pos));
  6433. return 1;
  6434. l1443:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6435. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStartTick", G->buf+G->pos));
  6436. return 0;
  6437. }
  6438. YY_RULE(int) yy_VerbatimChunk(GREG *G)
  6439. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6440. yyprintf((stderr, "%s\n", "VerbatimChunk"));
  6441. l1449:;
  6442. { int yypos1450= G->pos, yythunkpos1450= G->thunkpos; if (!yy_BlankLine(G)) { goto l1450; } goto l1449;
  6443. l1450:; G->pos= yypos1450; G->thunkpos= yythunkpos1450;
  6444. } if (!yy_NonblankIndentedLine(G)) { goto l1448; }
  6445. l1451:;
  6446. { int yypos1452= G->pos, yythunkpos1452= G->thunkpos; if (!yy_NonblankIndentedLine(G)) { goto l1452; } goto l1451;
  6447. l1452:; G->pos= yypos1452; G->thunkpos= yythunkpos1452;
  6448. }
  6449. yyprintf((stderr, " ok %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6450. return 1;
  6451. l1448:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6452. yyprintf((stderr, " fail %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6453. return 0;
  6454. }
  6455. YY_RULE(int) yy_IndentedLine(GREG *G)
  6456. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6457. yyprintf((stderr, "%s\n", "IndentedLine")); if (!yy_Indent(G)) { goto l1453; } if (!yy_Line(G)) { goto l1453; }
  6458. yyprintf((stderr, " ok %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6459. return 1;
  6460. l1453:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6461. yyprintf((stderr, " fail %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6462. return 0;
  6463. }
  6464. YY_RULE(int) yy_NonblankIndentedLine(GREG *G)
  6465. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6466. yyprintf((stderr, "%s\n", "NonblankIndentedLine"));
  6467. { int yypos1455= G->pos, yythunkpos1455= G->thunkpos; if (!yy_BlankLine(G)) { goto l1455; } goto l1454;
  6468. l1455:; G->pos= yypos1455; G->thunkpos= yythunkpos1455;
  6469. } if (!yy_IndentedLine(G)) { goto l1454; }
  6470. yyprintf((stderr, " ok %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6471. return 1;
  6472. l1454:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6473. yyprintf((stderr, " fail %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6474. return 0;
  6475. }
  6476. YY_RULE(int) yy_Line(GREG *G)
  6477. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6478. yyprintf((stderr, "%s\n", "Line")); if (!yy_RawLine(G)) { goto l1456; } yyDo(G, yy_1_Line, G->begin, G->end);
  6479. yyprintf((stderr, " ok %s @ %s\n", "Line", G->buf+G->pos));
  6480. return 1;
  6481. l1456:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6482. yyprintf((stderr, " fail %s @ %s\n", "Line", G->buf+G->pos));
  6483. return 0;
  6484. }
  6485. YY_RULE(int) yy_StartList(GREG *G)
  6486. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6487. yyprintf((stderr, "%s\n", "StartList"));
  6488. { int yypos1458= G->pos, yythunkpos1458= G->thunkpos; if (!yymatchDot(G)) goto l1457; G->pos= yypos1458; G->thunkpos= yythunkpos1458;
  6489. } yyDo(G, yy_1_StartList, G->begin, G->end);
  6490. yyprintf((stderr, " ok %s @ %s\n", "StartList", G->buf+G->pos));
  6491. return 1;
  6492. l1457:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6493. yyprintf((stderr, " fail %s @ %s\n", "StartList", G->buf+G->pos));
  6494. return 0;
  6495. }
  6496. YY_RULE(int) yy_BlockQuoteRaw(GREG *G)
  6497. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6498. yyprintf((stderr, "%s\n", "BlockQuoteRaw")); if (!yy_StartList(G)) { goto l1459; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1459; if (!yymatchChar(G, '>')) goto l1459;
  6499. { int yypos1462= G->pos, yythunkpos1462= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1462; goto l1463;
  6500. l1462:; G->pos= yypos1462; G->thunkpos= yythunkpos1462;
  6501. }
  6502. l1463:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1459; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1459; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6503. l1464:;
  6504. { int yypos1465= G->pos, yythunkpos1465= G->thunkpos;
  6505. { int yypos1466= G->pos, yythunkpos1466= G->thunkpos; if (!yymatchChar(G, '>')) goto l1466; goto l1465;
  6506. l1466:; G->pos= yypos1466; G->thunkpos= yythunkpos1466;
  6507. }
  6508. { int yypos1467= G->pos, yythunkpos1467= G->thunkpos; if (!yy_BlankLine(G)) { goto l1467; } goto l1465;
  6509. l1467:; G->pos= yypos1467; G->thunkpos= yythunkpos1467;
  6510. } if (!yy_Line(G)) { goto l1465; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1464;
  6511. l1465:; G->pos= yypos1465; G->thunkpos= yythunkpos1465;
  6512. }
  6513. l1468:;
  6514. { int yypos1469= G->pos, yythunkpos1469= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1469; if (!yy_BlankLine(G)) { goto l1469; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1469; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1468;
  6515. l1469:; G->pos= yypos1469; G->thunkpos= yythunkpos1469;
  6516. }
  6517. l1460:;
  6518. { int yypos1461= G->pos, yythunkpos1461= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1461; if (!yymatchChar(G, '>')) goto l1461;
  6519. { int yypos1470= G->pos, yythunkpos1470= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1470; goto l1471;
  6520. l1470:; G->pos= yypos1470; G->thunkpos= yythunkpos1470;
  6521. }
  6522. l1471:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1461; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1461; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6523. l1472:;
  6524. { int yypos1473= G->pos, yythunkpos1473= G->thunkpos;
  6525. { int yypos1474= G->pos, yythunkpos1474= G->thunkpos; if (!yymatchChar(G, '>')) goto l1474; goto l1473;
  6526. l1474:; G->pos= yypos1474; G->thunkpos= yythunkpos1474;
  6527. }
  6528. { int yypos1475= G->pos, yythunkpos1475= G->thunkpos; if (!yy_BlankLine(G)) { goto l1475; } goto l1473;
  6529. l1475:; G->pos= yypos1475; G->thunkpos= yythunkpos1475;
  6530. } if (!yy_Line(G)) { goto l1473; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1472;
  6531. l1473:; G->pos= yypos1473; G->thunkpos= yythunkpos1473;
  6532. }
  6533. l1476:;
  6534. { int yypos1477= G->pos, yythunkpos1477= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1477; if (!yy_BlankLine(G)) { goto l1477; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1477; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1476;
  6535. l1477:; G->pos= yypos1477; G->thunkpos= yythunkpos1477;
  6536. } goto l1460;
  6537. l1461:; G->pos= yypos1461; G->thunkpos= yythunkpos1461;
  6538. } yyDo(G, yy_5_BlockQuoteRaw, G->begin, G->end);
  6539. yyprintf((stderr, " ok %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6540. return 1;
  6541. l1459:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6542. yyprintf((stderr, " fail %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos));
  6543. return 0;
  6544. }
  6545. YY_RULE(int) yy_Endline(GREG *G)
  6546. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6547. yyprintf((stderr, "%s\n", "Endline"));
  6548. { int yypos1479= G->pos, yythunkpos1479= G->thunkpos; if (!yy_LineBreak(G)) { goto l1480; } goto l1479;
  6549. l1480:; G->pos= yypos1479; G->thunkpos= yythunkpos1479; if (!yy_TerminalEndline(G)) { goto l1481; } goto l1479;
  6550. l1481:; G->pos= yypos1479; G->thunkpos= yythunkpos1479; if (!yy_NormalEndline(G)) { goto l1478; }
  6551. }
  6552. l1479:;
  6553. yyprintf((stderr, " ok %s @ %s\n", "Endline", G->buf+G->pos));
  6554. return 1;
  6555. l1478:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6556. yyprintf((stderr, " fail %s @ %s\n", "Endline", G->buf+G->pos));
  6557. return 0;
  6558. }
  6559. YY_RULE(int) yy_RawLine(GREG *G)
  6560. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6561. yyprintf((stderr, "%s\n", "RawLine"));
  6562. { int yypos1483= G->pos, yythunkpos1483= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1484;
  6563. l1485:;
  6564. { int yypos1486= G->pos, yythunkpos1486= G->thunkpos;
  6565. { int yypos1487= G->pos, yythunkpos1487= G->thunkpos; if (!yymatchChar(G, '\r')) goto l1487; goto l1486;
  6566. l1487:; G->pos= yypos1487; G->thunkpos= yythunkpos1487;
  6567. }
  6568. { int yypos1488= G->pos, yythunkpos1488= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1488; goto l1486;
  6569. l1488:; G->pos= yypos1488; G->thunkpos= yythunkpos1488;
  6570. } if (!yymatchDot(G)) goto l1486; goto l1485;
  6571. l1486:; G->pos= yypos1486; G->thunkpos= yythunkpos1486;
  6572. } if (!yy_Newline(G)) { goto l1484; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1484; goto l1483;
  6573. l1484:; G->pos= yypos1483; G->thunkpos= yythunkpos1483; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1482; if (!yymatchDot(G)) goto l1482;
  6574. l1489:;
  6575. { int yypos1490= G->pos, yythunkpos1490= G->thunkpos; if (!yymatchDot(G)) goto l1490; goto l1489;
  6576. l1490:; G->pos= yypos1490; G->thunkpos= yythunkpos1490;
  6577. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1482; if (!yy_Eof(G)) { goto l1482; }
  6578. }
  6579. l1483:; yyDo(G, yy_1_RawLine, G->begin, G->end);
  6580. yyprintf((stderr, " ok %s @ %s\n", "RawLine", G->buf+G->pos));
  6581. return 1;
  6582. l1482:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6583. yyprintf((stderr, " fail %s @ %s\n", "RawLine", G->buf+G->pos));
  6584. return 0;
  6585. }
  6586. YY_RULE(int) yy_SetextBottom2(GREG *G)
  6587. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6588. yyprintf((stderr, "%s\n", "SetextBottom2")); if (!yymatchChar(G, '-')) goto l1491;
  6589. l1492:;
  6590. { int yypos1493= G->pos, yythunkpos1493= G->thunkpos; if (!yymatchChar(G, '-')) goto l1493; goto l1492;
  6591. l1493:; G->pos= yypos1493; G->thunkpos= yythunkpos1493;
  6592. } if (!yy_Newline(G)) { goto l1491; }
  6593. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6594. return 1;
  6595. l1491:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6596. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6597. return 0;
  6598. }
  6599. YY_RULE(int) yy_SetextBottom1(GREG *G)
  6600. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6601. yyprintf((stderr, "%s\n", "SetextBottom1")); if (!yymatchChar(G, '=')) goto l1494;
  6602. l1495:;
  6603. { int yypos1496= G->pos, yythunkpos1496= G->thunkpos; if (!yymatchChar(G, '=')) goto l1496; goto l1495;
  6604. l1496:; G->pos= yypos1496; G->thunkpos= yythunkpos1496;
  6605. } if (!yy_Newline(G)) { goto l1494; }
  6606. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6607. return 1;
  6608. l1494:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6609. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6610. return 0;
  6611. }
  6612. YY_RULE(int) yy_SetextHeading2(GREG *G)
  6613. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6614. yyprintf((stderr, "%s\n", "SetextHeading2"));
  6615. { int yypos1498= G->pos, yythunkpos1498= G->thunkpos; if (!yy_RawLine(G)) { goto l1497; } if (!yy_SetextBottom2(G)) { goto l1497; } G->pos= yypos1498; G->thunkpos= yythunkpos1498;
  6616. } if (!yy_LocMarker(G)) { goto l1497; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1497;
  6617. { int yypos1501= G->pos, yythunkpos1501= G->thunkpos; if (!yy_Endline(G)) { goto l1501; } goto l1497;
  6618. l1501:; G->pos= yypos1501; G->thunkpos= yythunkpos1501;
  6619. } if (!yy_Inline(G)) { goto l1497; }
  6620. l1499:;
  6621. { int yypos1500= G->pos, yythunkpos1500= G->thunkpos;
  6622. { int yypos1502= G->pos, yythunkpos1502= G->thunkpos; if (!yy_Endline(G)) { goto l1502; } goto l1500;
  6623. l1502:; G->pos= yypos1502; G->thunkpos= yythunkpos1502;
  6624. } if (!yy_Inline(G)) { goto l1500; } goto l1499;
  6625. l1500:; G->pos= yypos1500; G->thunkpos= yythunkpos1500;
  6626. } if (!yy_Sp(G)) { goto l1497; } if (!yy_Newline(G)) { goto l1497; } if (!yy_SetextBottom2(G)) { goto l1497; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1497; yyDo(G, yy_1_SetextHeading2, G->begin, G->end);
  6627. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6628. return 1;
  6629. l1497:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6630. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading2", G->buf+G->pos));
  6631. return 0;
  6632. }
  6633. YY_RULE(int) yy_SetextHeading1(GREG *G)
  6634. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6635. yyprintf((stderr, "%s\n", "SetextHeading1"));
  6636. { int yypos1504= G->pos, yythunkpos1504= G->thunkpos; if (!yy_RawLine(G)) { goto l1503; } if (!yy_SetextBottom1(G)) { goto l1503; } G->pos= yypos1504; G->thunkpos= yythunkpos1504;
  6637. } if (!yy_LocMarker(G)) { goto l1503; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1503;
  6638. { int yypos1507= G->pos, yythunkpos1507= G->thunkpos; if (!yy_Endline(G)) { goto l1507; } goto l1503;
  6639. l1507:; G->pos= yypos1507; G->thunkpos= yythunkpos1507;
  6640. } if (!yy_Inline(G)) { goto l1503; }
  6641. l1505:;
  6642. { int yypos1506= G->pos, yythunkpos1506= G->thunkpos;
  6643. { int yypos1508= G->pos, yythunkpos1508= G->thunkpos; if (!yy_Endline(G)) { goto l1508; } goto l1506;
  6644. l1508:; G->pos= yypos1508; G->thunkpos= yythunkpos1508;
  6645. } if (!yy_Inline(G)) { goto l1506; } goto l1505;
  6646. l1506:; G->pos= yypos1506; G->thunkpos= yythunkpos1506;
  6647. } if (!yy_Sp(G)) { goto l1503; } if (!yy_Newline(G)) { goto l1503; } if (!yy_SetextBottom1(G)) { goto l1503; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1503; yyDo(G, yy_1_SetextHeading1, G->begin, G->end);
  6648. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6649. return 1;
  6650. l1503:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6651. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading1", G->buf+G->pos));
  6652. return 0;
  6653. }
  6654. YY_RULE(int) yy_SetextHeading(GREG *G)
  6655. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6656. yyprintf((stderr, "%s\n", "SetextHeading"));
  6657. { int yypos1510= G->pos, yythunkpos1510= G->thunkpos; if (!yy_SetextHeading1(G)) { goto l1511; } goto l1510;
  6658. l1511:; G->pos= yypos1510; G->thunkpos= yythunkpos1510; if (!yy_SetextHeading2(G)) { goto l1509; }
  6659. }
  6660. l1510:;
  6661. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6662. return 1;
  6663. l1509:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6664. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6665. return 0;
  6666. }
  6667. YY_RULE(int) yy_Space(GREG *G)
  6668. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6669. yyprintf((stderr, "%s\n", "Space")); if (!yy_Spacechar(G)) { goto l1512; }
  6670. l1513:;
  6671. { int yypos1514= G->pos, yythunkpos1514= G->thunkpos; if (!yy_Spacechar(G)) { goto l1514; } goto l1513;
  6672. l1514:; G->pos= yypos1514; G->thunkpos= yythunkpos1514;
  6673. }
  6674. yyprintf((stderr, " ok %s @ %s\n", "Space", G->buf+G->pos));
  6675. return 1;
  6676. l1512:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6677. yyprintf((stderr, " fail %s @ %s\n", "Space", G->buf+G->pos));
  6678. return 0;
  6679. }
  6680. YY_RULE(int) yy_AtxHeading(GREG *G)
  6681. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6682. yyprintf((stderr, "%s\n", "AtxHeading")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1515; if (!yy_AtxStart(G)) { goto l1515; } yyDo(G, yySet, -1, 0); if (!yy_Space(G)) { goto l1515; } if (!yy_AtxInline(G)) { goto l1515; }
  6683. l1516:;
  6684. { int yypos1517= G->pos, yythunkpos1517= G->thunkpos; if (!yy_AtxInline(G)) { goto l1517; } goto l1516;
  6685. l1517:; G->pos= yypos1517; G->thunkpos= yythunkpos1517;
  6686. }
  6687. { int yypos1518= G->pos, yythunkpos1518= G->thunkpos; if (!yy_Sp(G)) { goto l1518; }
  6688. l1520:;
  6689. { int yypos1521= G->pos, yythunkpos1521= G->thunkpos; if (!yymatchChar(G, '#')) goto l1521; goto l1520;
  6690. l1521:; G->pos= yypos1521; G->thunkpos= yythunkpos1521;
  6691. } if (!yy_Sp(G)) { goto l1518; } goto l1519;
  6692. l1518:; G->pos= yypos1518; G->thunkpos= yythunkpos1518;
  6693. }
  6694. l1519:; if (!yy_Newline(G)) { goto l1515; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1515; yyDo(G, yy_1_AtxHeading, G->begin, G->end);
  6695. yyprintf((stderr, " ok %s @ %s\n", "AtxHeading", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6696. return 1;
  6697. l1515:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6698. yyprintf((stderr, " fail %s @ %s\n", "AtxHeading", G->buf+G->pos));
  6699. return 0;
  6700. }
  6701. YY_RULE(int) yy_AtxStart(GREG *G)
  6702. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6703. yyprintf((stderr, "%s\n", "AtxStart")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1522;
  6704. { int yypos1523= G->pos, yythunkpos1523= G->thunkpos; if (!yymatchString(G, "######")) goto l1524; goto l1523;
  6705. l1524:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yymatchString(G, "#####")) goto l1525; goto l1523;
  6706. l1525:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yymatchString(G, "####")) goto l1526; goto l1523;
  6707. l1526:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yymatchString(G, "###")) goto l1527; goto l1523;
  6708. l1527:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yymatchString(G, "##")) goto l1528; goto l1523;
  6709. l1528:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yymatchChar(G, '#')) goto l1522;
  6710. }
  6711. l1523:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1522; yyDo(G, yy_1_AtxStart, G->begin, G->end);
  6712. yyprintf((stderr, " ok %s @ %s\n", "AtxStart", G->buf+G->pos));
  6713. return 1;
  6714. l1522:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6715. yyprintf((stderr, " fail %s @ %s\n", "AtxStart", G->buf+G->pos));
  6716. return 0;
  6717. }
  6718. YY_RULE(int) yy_Inline(GREG *G)
  6719. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6720. yyprintf((stderr, "%s\n", "Inline"));
  6721. { int yypos1530= G->pos, yythunkpos1530= G->thunkpos; if (!yy_Str(G)) { goto l1531; } goto l1530;
  6722. l1531:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Endline(G)) { goto l1532; } goto l1530;
  6723. l1532:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_UlOrStarLine(G)) { goto l1533; } goto l1530;
  6724. l1533:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Space(G)) { goto l1534; } goto l1530;
  6725. l1534:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Strong(G)) { goto l1535; } goto l1530;
  6726. l1535:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Emph(G)) { goto l1536; } goto l1530;
  6727. l1536:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Strike(G)) { goto l1537; } goto l1530;
  6728. l1537:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Image(G)) { goto l1538; } goto l1530;
  6729. l1538:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Link(G)) { goto l1539; } goto l1530;
  6730. l1539:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_NoteReference(G)) { goto l1540; } goto l1530;
  6731. l1540:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_InlineNote(G)) { goto l1541; } goto l1530;
  6732. l1541:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Code(G)) { goto l1542; } goto l1530;
  6733. l1542:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_InlineEquation(G)) { goto l1543; } goto l1530;
  6734. l1543:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Mark(G)) { goto l1544; } goto l1530;
  6735. l1544:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_RawHtml(G)) { goto l1545; } goto l1530;
  6736. l1545:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Entity(G)) { goto l1546; } goto l1530;
  6737. l1546:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_EscapedChar(G)) { goto l1547; } goto l1530;
  6738. l1547:; G->pos= yypos1530; G->thunkpos= yythunkpos1530; if (!yy_Symbol(G)) { goto l1529; }
  6739. }
  6740. l1530:;
  6741. yyprintf((stderr, " ok %s @ %s\n", "Inline", G->buf+G->pos));
  6742. return 1;
  6743. l1529:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6744. yyprintf((stderr, " fail %s @ %s\n", "Inline", G->buf+G->pos));
  6745. return 0;
  6746. }
  6747. YY_RULE(int) yy_Sp(GREG *G)
  6748. {
  6749. yyprintf((stderr, "%s\n", "Sp"));
  6750. l1549:;
  6751. { int yypos1550= G->pos, yythunkpos1550= G->thunkpos; if (!yy_Spacechar(G)) { goto l1550; } goto l1549;
  6752. l1550:; G->pos= yypos1550; G->thunkpos= yythunkpos1550;
  6753. }
  6754. yyprintf((stderr, " ok %s @ %s\n", "Sp", G->buf+G->pos));
  6755. return 1;
  6756. }
  6757. YY_RULE(int) yy_AtxInline(GREG *G)
  6758. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6759. yyprintf((stderr, "%s\n", "AtxInline"));
  6760. { int yypos1552= G->pos, yythunkpos1552= G->thunkpos; if (!yy_Newline(G)) { goto l1552; } goto l1551;
  6761. l1552:; G->pos= yypos1552; G->thunkpos= yythunkpos1552;
  6762. }
  6763. { int yypos1553= G->pos, yythunkpos1553= G->thunkpos; if (!yy_Sp(G)) { goto l1553; }
  6764. l1554:;
  6765. { int yypos1555= G->pos, yythunkpos1555= G->thunkpos; if (!yymatchChar(G, '#')) goto l1555; goto l1554;
  6766. l1555:; G->pos= yypos1555; G->thunkpos= yythunkpos1555;
  6767. } if (!yy_Sp(G)) { goto l1553; } if (!yy_Newline(G)) { goto l1553; } goto l1551;
  6768. l1553:; G->pos= yypos1553; G->thunkpos= yythunkpos1553;
  6769. } if (!yy_Inline(G)) { goto l1551; }
  6770. yyprintf((stderr, " ok %s @ %s\n", "AtxInline", G->buf+G->pos));
  6771. return 1;
  6772. l1551:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6773. yyprintf((stderr, " fail %s @ %s\n", "AtxInline", G->buf+G->pos));
  6774. return 0;
  6775. }
  6776. YY_RULE(int) yy_Inlines(GREG *G)
  6777. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6778. yyprintf((stderr, "%s\n", "Inlines"));
  6779. { int yypos1559= G->pos, yythunkpos1559= G->thunkpos;
  6780. { int yypos1561= G->pos, yythunkpos1561= G->thunkpos; if (!yy_Endline(G)) { goto l1561; } goto l1560;
  6781. l1561:; G->pos= yypos1561; G->thunkpos= yythunkpos1561;
  6782. } if (!yy_Inline(G)) { goto l1560; } goto l1559;
  6783. l1560:; G->pos= yypos1559; G->thunkpos= yythunkpos1559; if (!yy_Endline(G)) { goto l1556; }
  6784. { int yypos1562= G->pos, yythunkpos1562= G->thunkpos; if (!yy_Inline(G)) { goto l1556; } G->pos= yypos1562; G->thunkpos= yythunkpos1562;
  6785. }
  6786. }
  6787. l1559:;
  6788. l1557:;
  6789. { int yypos1558= G->pos, yythunkpos1558= G->thunkpos;
  6790. { int yypos1563= G->pos, yythunkpos1563= G->thunkpos;
  6791. { int yypos1565= G->pos, yythunkpos1565= G->thunkpos; if (!yy_Endline(G)) { goto l1565; } goto l1564;
  6792. l1565:; G->pos= yypos1565; G->thunkpos= yythunkpos1565;
  6793. } if (!yy_Inline(G)) { goto l1564; } goto l1563;
  6794. l1564:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yy_Endline(G)) { goto l1558; }
  6795. { int yypos1566= G->pos, yythunkpos1566= G->thunkpos; if (!yy_Inline(G)) { goto l1558; } G->pos= yypos1566; G->thunkpos= yythunkpos1566;
  6796. }
  6797. }
  6798. l1563:; goto l1557;
  6799. l1558:; G->pos= yypos1558; G->thunkpos= yythunkpos1558;
  6800. }
  6801. { int yypos1567= G->pos, yythunkpos1567= G->thunkpos; if (!yy_Endline(G)) { goto l1567; } goto l1568;
  6802. l1567:; G->pos= yypos1567; G->thunkpos= yythunkpos1567;
  6803. }
  6804. l1568:;
  6805. yyprintf((stderr, " ok %s @ %s\n", "Inlines", G->buf+G->pos));
  6806. return 1;
  6807. l1556:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6808. yyprintf((stderr, " fail %s @ %s\n", "Inlines", G->buf+G->pos));
  6809. return 0;
  6810. }
  6811. YY_RULE(int) yy_NonindentSpace(GREG *G)
  6812. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6813. yyprintf((stderr, "%s\n", "NonindentSpace"));
  6814. { int yypos1570= G->pos, yythunkpos1570= G->thunkpos; if (!yymatchString(G, " ")) goto l1571; goto l1570;
  6815. l1571:; G->pos= yypos1570; G->thunkpos= yythunkpos1570; if (!yymatchString(G, " ")) goto l1572; goto l1570;
  6816. l1572:; G->pos= yypos1570; G->thunkpos= yythunkpos1570; if (!yymatchChar(G, ' ')) goto l1573; goto l1570;
  6817. l1573:; G->pos= yypos1570; G->thunkpos= yythunkpos1570; if (!yymatchString(G, "")) goto l1569;
  6818. }
  6819. l1570:;
  6820. yyprintf((stderr, " ok %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6821. return 1;
  6822. l1569:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6823. yyprintf((stderr, " fail %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6824. return 0;
  6825. }
  6826. YY_RULE(int) yy_Plain(GREG *G)
  6827. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6828. yyprintf((stderr, "%s\n", "Plain")); if (!yy_Inlines(G)) { goto l1574; }
  6829. yyprintf((stderr, " ok %s @ %s\n", "Plain", G->buf+G->pos));
  6830. return 1;
  6831. l1574:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6832. yyprintf((stderr, " fail %s @ %s\n", "Plain", G->buf+G->pos));
  6833. return 0;
  6834. }
  6835. YY_RULE(int) yy_Para(GREG *G)
  6836. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6837. yyprintf((stderr, "%s\n", "Para")); if (!yy_NonindentSpace(G)) { goto l1575; } if (!yy_Inlines(G)) { goto l1575; } if (!yy_BlankLine(G)) { goto l1575; }
  6838. l1576:;
  6839. { int yypos1577= G->pos, yythunkpos1577= G->thunkpos; if (!yy_BlankLine(G)) { goto l1577; } goto l1576;
  6840. l1577:; G->pos= yypos1577; G->thunkpos= yythunkpos1577;
  6841. }
  6842. yyprintf((stderr, " ok %s @ %s\n", "Para", G->buf+G->pos));
  6843. return 1;
  6844. l1575:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6845. yyprintf((stderr, " fail %s @ %s\n", "Para", G->buf+G->pos));
  6846. return 0;
  6847. }
  6848. YY_RULE(int) yy_StyleBlock(GREG *G)
  6849. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6850. yyprintf((stderr, "%s\n", "StyleBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1578; if (!yy_LocMarker(G)) { goto l1578; } yyDo(G, yySet, -1, 0); if (!yy_InStyleTags(G)) { goto l1578; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1578;
  6851. l1579:;
  6852. { int yypos1580= G->pos, yythunkpos1580= G->thunkpos; if (!yy_BlankLine(G)) { goto l1580; } goto l1579;
  6853. l1580:; G->pos= yypos1580; G->thunkpos= yythunkpos1580;
  6854. } yyDo(G, yy_1_StyleBlock, G->begin, G->end);
  6855. yyprintf((stderr, " ok %s @ %s\n", "StyleBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6856. return 1;
  6857. l1578:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6858. yyprintf((stderr, " fail %s @ %s\n", "StyleBlock", G->buf+G->pos));
  6859. return 0;
  6860. }
  6861. YY_RULE(int) yy_HtmlBlock(GREG *G)
  6862. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6863. yyprintf((stderr, "%s\n", "HtmlBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1581; if (!yy_LocMarker(G)) { goto l1581; } yyDo(G, yySet, -1, 0);
  6864. { int yypos1582= G->pos, yythunkpos1582= G->thunkpos; if (!yy_HtmlBlockInTags(G)) { goto l1583; } goto l1582;
  6865. l1583:; G->pos= yypos1582; G->thunkpos= yythunkpos1582; if (!yy_HtmlComment(G)) { goto l1584; } goto l1582;
  6866. l1584:; G->pos= yypos1582; G->thunkpos= yythunkpos1582; if (!yy_HtmlBlockSelfClosing(G)) { goto l1581; }
  6867. }
  6868. l1582:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1581; if (!yy_BlankLine(G)) { goto l1581; }
  6869. l1585:;
  6870. { int yypos1586= G->pos, yythunkpos1586= G->thunkpos; if (!yy_BlankLine(G)) { goto l1586; } goto l1585;
  6871. l1586:; G->pos= yypos1586; G->thunkpos= yythunkpos1586;
  6872. } yyDo(G, yy_1_HtmlBlock, G->begin, G->end);
  6873. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6874. return 1;
  6875. l1581:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6876. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlock", G->buf+G->pos));
  6877. return 0;
  6878. }
  6879. YY_RULE(int) yy_Table(GREG *G)
  6880. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6881. yyprintf((stderr, "%s\n", "Table")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_TABLE) )) goto l1587; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1587; if (!yy_LocMarker(G)) { goto l1587; } yyDo(G, yySet, -1, 0); if (!yy_TableHeader(G)) { goto l1587; } if (!yy_TableDelimiter(G)) { goto l1587; }
  6882. l1588:;
  6883. { int yypos1589= G->pos, yythunkpos1589= G->thunkpos; if (!yy_TableLine(G)) { goto l1589; } goto l1588;
  6884. l1589:; G->pos= yypos1589; G->thunkpos= yythunkpos1589;
  6885. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1587; yyDo(G, yy_1_Table, G->begin, G->end);
  6886. yyprintf((stderr, " ok %s @ %s\n", "Table", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6887. return 1;
  6888. l1587:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6889. yyprintf((stderr, " fail %s @ %s\n", "Table", G->buf+G->pos));
  6890. return 0;
  6891. }
  6892. YY_RULE(int) yy_BulletList(GREG *G)
  6893. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6894. yyprintf((stderr, "%s\n", "BulletList"));
  6895. { int yypos1591= G->pos, yythunkpos1591= G->thunkpos; if (!yy_Bullet(G)) { goto l1590; } G->pos= yypos1591; G->thunkpos= yythunkpos1591;
  6896. }
  6897. { int yypos1592= G->pos, yythunkpos1592= G->thunkpos; if (!yy_ListTight(G)) { goto l1593; } goto l1592;
  6898. l1593:; G->pos= yypos1592; G->thunkpos= yythunkpos1592; if (!yy_ListLoose(G)) { goto l1590; }
  6899. }
  6900. l1592:;
  6901. yyprintf((stderr, " ok %s @ %s\n", "BulletList", G->buf+G->pos));
  6902. return 1;
  6903. l1590:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6904. yyprintf((stderr, " fail %s @ %s\n", "BulletList", G->buf+G->pos));
  6905. return 0;
  6906. }
  6907. YY_RULE(int) yy_OrderedList(GREG *G)
  6908. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6909. yyprintf((stderr, "%s\n", "OrderedList"));
  6910. { int yypos1595= G->pos, yythunkpos1595= G->thunkpos; if (!yy_Enumerator(G)) { goto l1594; } G->pos= yypos1595; G->thunkpos= yythunkpos1595;
  6911. }
  6912. { int yypos1596= G->pos, yythunkpos1596= G->thunkpos; if (!yy_ListTight(G)) { goto l1597; } goto l1596;
  6913. l1597:; G->pos= yypos1596; G->thunkpos= yythunkpos1596; if (!yy_ListLoose(G)) { goto l1594; }
  6914. }
  6915. l1596:;
  6916. yyprintf((stderr, " ok %s @ %s\n", "OrderedList", G->buf+G->pos));
  6917. return 1;
  6918. l1594:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6919. yyprintf((stderr, " fail %s @ %s\n", "OrderedList", G->buf+G->pos));
  6920. return 0;
  6921. }
  6922. YY_RULE(int) yy_Heading(GREG *G)
  6923. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6924. yyprintf((stderr, "%s\n", "Heading"));
  6925. { int yypos1599= G->pos, yythunkpos1599= G->thunkpos; if (!yy_SetextHeading(G)) { goto l1600; } goto l1599;
  6926. l1600:; G->pos= yypos1599; G->thunkpos= yythunkpos1599; if (!yy_AtxHeading(G)) { goto l1598; }
  6927. }
  6928. l1599:;
  6929. yyprintf((stderr, " ok %s @ %s\n", "Heading", G->buf+G->pos));
  6930. return 1;
  6931. l1598:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6932. yyprintf((stderr, " fail %s @ %s\n", "Heading", G->buf+G->pos));
  6933. return 0;
  6934. }
  6935. YY_RULE(int) yy_HorizontalRule(GREG *G)
  6936. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6937. yyprintf((stderr, "%s\n", "HorizontalRule")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1601; if (!yy_NonindentSpace(G)) { goto l1601; }
  6938. { int yypos1602= G->pos, yythunkpos1602= G->thunkpos; if (!yymatchChar(G, '*')) goto l1603; if (!yy_Sp(G)) { goto l1603; } if (!yymatchChar(G, '*')) goto l1603; if (!yy_Sp(G)) { goto l1603; } if (!yymatchChar(G, '*')) goto l1603;
  6939. l1604:;
  6940. { int yypos1605= G->pos, yythunkpos1605= G->thunkpos; if (!yy_Sp(G)) { goto l1605; } if (!yymatchChar(G, '*')) goto l1605; goto l1604;
  6941. l1605:; G->pos= yypos1605; G->thunkpos= yythunkpos1605;
  6942. } goto l1602;
  6943. l1603:; G->pos= yypos1602; G->thunkpos= yythunkpos1602; if (!yymatchChar(G, '-')) goto l1606; if (!yy_Sp(G)) { goto l1606; } if (!yymatchChar(G, '-')) goto l1606; if (!yy_Sp(G)) { goto l1606; } if (!yymatchChar(G, '-')) goto l1606;
  6944. l1607:;
  6945. { int yypos1608= G->pos, yythunkpos1608= G->thunkpos; if (!yy_Sp(G)) { goto l1608; } if (!yymatchChar(G, '-')) goto l1608; goto l1607;
  6946. l1608:; G->pos= yypos1608; G->thunkpos= yythunkpos1608;
  6947. } goto l1602;
  6948. l1606:; G->pos= yypos1602; G->thunkpos= yythunkpos1602; if (!yymatchChar(G, '_')) goto l1601; if (!yy_Sp(G)) { goto l1601; } if (!yymatchChar(G, '_')) goto l1601; if (!yy_Sp(G)) { goto l1601; } if (!yymatchChar(G, '_')) goto l1601;
  6949. l1609:;
  6950. { int yypos1610= G->pos, yythunkpos1610= G->thunkpos; if (!yy_Sp(G)) { goto l1610; } if (!yymatchChar(G, '_')) goto l1610; goto l1609;
  6951. l1610:; G->pos= yypos1610; G->thunkpos= yythunkpos1610;
  6952. }
  6953. }
  6954. l1602:; if (!yy_Sp(G)) { goto l1601; } if (!yy_Newline(G)) { goto l1601; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1601; yyDo(G, yy_1_HorizontalRule, G->begin, G->end);
  6955. yyprintf((stderr, " ok %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6956. return 1;
  6957. l1601:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6958. yyprintf((stderr, " fail %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6959. return 0;
  6960. }
  6961. YY_RULE(int) yy_Reference(GREG *G)
  6962. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 3, 0);
  6963. yyprintf((stderr, "%s\n", "Reference")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1611; if (!yy_LocMarker(G)) { goto l1611; } yyDo(G, yySet, -3, 0); if (!yy_NonindentSpace(G)) { goto l1611; }
  6964. { int yypos1612= G->pos, yythunkpos1612= G->thunkpos; if (!yymatchString(G, "[]")) goto l1612; goto l1611;
  6965. l1612:; G->pos= yypos1612; G->thunkpos= yythunkpos1612;
  6966. } if (!yy_Label(G)) { goto l1611; } yyDo(G, yySet, -2, 0); if (!yymatchChar(G, ':')) goto l1611; if (!yy_Spnl(G)) { goto l1611; } if (!yy_RefSrc(G)) { goto l1611; } yyDo(G, yySet, -1, 0); if (!yy_RefTitle(G)) { goto l1611; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1611; if (!yy_BlankLine(G)) { goto l1611; }
  6967. l1613:;
  6968. { int yypos1614= G->pos, yythunkpos1614= G->thunkpos; if (!yy_BlankLine(G)) { goto l1614; } goto l1613;
  6969. l1614:; G->pos= yypos1614; G->thunkpos= yythunkpos1614;
  6970. } yyDo(G, yy_1_Reference, G->begin, G->end);
  6971. yyprintf((stderr, " ok %s @ %s\n", "Reference", G->buf+G->pos)); yyDo(G, yyPop, 3, 0);
  6972. return 1;
  6973. l1611:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6974. yyprintf((stderr, " fail %s @ %s\n", "Reference", G->buf+G->pos));
  6975. return 0;
  6976. }
  6977. YY_RULE(int) yy_Note(GREG *G)
  6978. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6979. yyprintf((stderr, "%s\n", "Note")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l1615; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1615; if (!yy_LocMarker(G)) { goto l1615; } yyDo(G, yySet, -1, 0); if (!yy_NonindentSpace(G)) { goto l1615; } if (!yy_RawNoteReference(G)) { goto l1615; } if (!yymatchChar(G, ':')) goto l1615; if (!yy_Sp(G)) { goto l1615; } if (!yy_RawNoteBlock(G)) { goto l1615; }
  6980. l1616:;
  6981. { int yypos1617= G->pos, yythunkpos1617= G->thunkpos;
  6982. { int yypos1618= G->pos, yythunkpos1618= G->thunkpos; if (!yy_Indent(G)) { goto l1617; } G->pos= yypos1618; G->thunkpos= yythunkpos1618;
  6983. } if (!yy_RawNoteBlock(G)) { goto l1617; } goto l1616;
  6984. l1617:; G->pos= yypos1617; G->thunkpos= yythunkpos1617;
  6985. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1615; yyDo(G, yy_1_Note, G->begin, G->end);
  6986. yyprintf((stderr, " ok %s @ %s\n", "Note", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6987. return 1;
  6988. l1615:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6989. yyprintf((stderr, " fail %s @ %s\n", "Note", G->buf+G->pos));
  6990. return 0;
  6991. }
  6992. YY_RULE(int) yy_DisplayFormula(GREG *G)
  6993. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6994. yyprintf((stderr, "%s\n", "DisplayFormula")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1619;
  6995. { int yypos1620= G->pos, yythunkpos1620= G->thunkpos; if (!yy_DisplayFormulaDollar(G)) { goto l1621; } goto l1620;
  6996. l1621:; G->pos= yypos1620; G->thunkpos= yythunkpos1620; if (!yy_DisplayFormulaRaw(G)) { goto l1619; }
  6997. }
  6998. l1620:;
  6999. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  7000. return 1;
  7001. l1619:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7002. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  7003. return 0;
  7004. }
  7005. YY_RULE(int) yy_FencedCodeBlock(GREG *G)
  7006. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7007. yyprintf((stderr, "%s\n", "FencedCodeBlock"));
  7008. { int yypos1623= G->pos, yythunkpos1623= G->thunkpos; if (!yy_FencedCodeBlockTick(G)) { goto l1624; } goto l1623;
  7009. l1624:; G->pos= yypos1623; G->thunkpos= yythunkpos1623; if (!yy_FencedCodeBlockTidle(G)) { goto l1622; }
  7010. }
  7011. l1623:;
  7012. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlock", G->buf+G->pos));
  7013. return 1;
  7014. l1622:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7015. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlock", G->buf+G->pos));
  7016. return 0;
  7017. }
  7018. YY_RULE(int) yy_Verbatim(GREG *G)
  7019. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  7020. yyprintf((stderr, "%s\n", "Verbatim")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1625; if (!yy_LocMarker(G)) { goto l1625; } yyDo(G, yySet, -1, 0); if (!yy_VerbatimChunk(G)) { goto l1625; }
  7021. l1626:;
  7022. { int yypos1627= G->pos, yythunkpos1627= G->thunkpos; if (!yy_VerbatimChunk(G)) { goto l1627; } goto l1626;
  7023. l1627:; G->pos= yypos1627; G->thunkpos= yythunkpos1627;
  7024. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1625; yyDo(G, yy_1_Verbatim, G->begin, G->end);
  7025. yyprintf((stderr, " ok %s @ %s\n", "Verbatim", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  7026. return 1;
  7027. l1625:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7028. yyprintf((stderr, " fail %s @ %s\n", "Verbatim", G->buf+G->pos));
  7029. return 0;
  7030. }
  7031. YY_RULE(int) yy_BlockQuote(GREG *G)
  7032. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  7033. yyprintf((stderr, "%s\n", "BlockQuote")); if (!yy_BlockQuoteRaw(G)) { goto l1628; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_BlockQuote, G->begin, G->end);
  7034. yyprintf((stderr, " ok %s @ %s\n", "BlockQuote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  7035. return 1;
  7036. l1628:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7037. yyprintf((stderr, " fail %s @ %s\n", "BlockQuote", G->buf+G->pos));
  7038. return 0;
  7039. }
  7040. YY_RULE(int) yy_BlankLine(GREG *G)
  7041. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7042. yyprintf((stderr, "%s\n", "BlankLine")); if (!yy_Sp(G)) { goto l1629; } if (!yy_Newline(G)) { goto l1629; }
  7043. yyprintf((stderr, " ok %s @ %s\n", "BlankLine", G->buf+G->pos));
  7044. return 1;
  7045. l1629:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7046. yyprintf((stderr, " fail %s @ %s\n", "BlankLine", G->buf+G->pos));
  7047. return 0;
  7048. }
  7049. YY_RULE(int) yy_FrontMatterEndMark(GREG *G)
  7050. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7051. yyprintf((stderr, "%s\n", "FrontMatterEndMark"));
  7052. { int yypos1631= G->pos, yythunkpos1631= G->thunkpos; if (!yymatchString(G, "---")) goto l1632; goto l1631;
  7053. l1632:; G->pos= yypos1631; G->thunkpos= yythunkpos1631; if (!yymatchString(G, "...")) goto l1630;
  7054. }
  7055. l1631:;
  7056. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  7057. return 1;
  7058. l1630:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7059. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  7060. return 0;
  7061. }
  7062. YY_RULE(int) yy_FrontMatterBlock(GREG *G)
  7063. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7064. yyprintf((stderr, "%s\n", "FrontMatterBlock"));
  7065. { int yypos1634= G->pos, yythunkpos1634= G->thunkpos; if (!yy_FrontMatterEndMark(G)) { goto l1634; } goto l1633;
  7066. l1634:; G->pos= yypos1634; G->thunkpos= yythunkpos1634;
  7067. }
  7068. l1635:;
  7069. { int yypos1636= G->pos, yythunkpos1636= G->thunkpos;
  7070. { int yypos1637= G->pos, yythunkpos1637= G->thunkpos; if (!yy_Newline(G)) { goto l1637; } goto l1636;
  7071. l1637:; G->pos= yypos1637; G->thunkpos= yythunkpos1637;
  7072. } if (!yymatchDot(G)) goto l1636; goto l1635;
  7073. l1636:; G->pos= yypos1636; G->thunkpos= yythunkpos1636;
  7074. } if (!yy_Newline(G)) { goto l1633; }
  7075. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  7076. return 1;
  7077. l1633:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7078. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  7079. return 0;
  7080. }
  7081. YY_RULE(int) yy_Newline(GREG *G)
  7082. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7083. yyprintf((stderr, "%s\n", "Newline"));
  7084. { int yypos1639= G->pos, yythunkpos1639= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1640; goto l1639;
  7085. l1640:; G->pos= yypos1639; G->thunkpos= yythunkpos1639; if (!yymatchChar(G, '\r')) goto l1638;
  7086. { int yypos1641= G->pos, yythunkpos1641= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1641; goto l1642;
  7087. l1641:; G->pos= yypos1641; G->thunkpos= yythunkpos1641;
  7088. }
  7089. l1642:;
  7090. }
  7091. l1639:;
  7092. yyprintf((stderr, " ok %s @ %s\n", "Newline", G->buf+G->pos));
  7093. return 1;
  7094. l1638:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7095. yyprintf((stderr, " fail %s @ %s\n", "Newline", G->buf+G->pos));
  7096. return 0;
  7097. }
  7098. YY_RULE(int) yy_LocMarker(GREG *G)
  7099. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7100. yyprintf((stderr, "%s\n", "LocMarker"));
  7101. { int yypos1644= G->pos, yythunkpos1644= G->thunkpos; if (!yymatchDot(G)) goto l1643; G->pos= yypos1644; G->thunkpos= yythunkpos1644;
  7102. } yyDo(G, yy_1_LocMarker, G->begin, G->end);
  7103. yyprintf((stderr, " ok %s @ %s\n", "LocMarker", G->buf+G->pos));
  7104. return 1;
  7105. l1643:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7106. yyprintf((stderr, " fail %s @ %s\n", "LocMarker", G->buf+G->pos));
  7107. return 0;
  7108. }
  7109. YY_RULE(int) yy_Block(GREG *G)
  7110. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7111. yyprintf((stderr, "%s\n", "Block"));
  7112. l1646:;
  7113. { int yypos1647= G->pos, yythunkpos1647= G->thunkpos; if (!yy_BlankLine(G)) { goto l1647; } goto l1646;
  7114. l1647:; G->pos= yypos1647; G->thunkpos= yythunkpos1647;
  7115. }
  7116. { int yypos1648= G->pos, yythunkpos1648= G->thunkpos; if (!yy_BlockQuote(G)) { goto l1649; } goto l1648;
  7117. l1649:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Verbatim(G)) { goto l1650; } goto l1648;
  7118. l1650:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_FencedCodeBlock(G)) { goto l1651; } goto l1648;
  7119. l1651:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_DisplayFormula(G)) { goto l1652; } goto l1648;
  7120. l1652:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Note(G)) { goto l1653; } goto l1648;
  7121. l1653:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Reference(G)) { goto l1654; } goto l1648;
  7122. l1654:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_HorizontalRule(G)) { goto l1655; } goto l1648;
  7123. l1655:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Heading(G)) { goto l1656; } goto l1648;
  7124. l1656:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_OrderedList(G)) { goto l1657; } goto l1648;
  7125. l1657:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_BulletList(G)) { goto l1658; } goto l1648;
  7126. l1658:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Table(G)) { goto l1659; } goto l1648;
  7127. l1659:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_HtmlBlock(G)) { goto l1660; } goto l1648;
  7128. l1660:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_StyleBlock(G)) { goto l1661; } goto l1648;
  7129. l1661:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Para(G)) { goto l1662; } goto l1648;
  7130. l1662:; G->pos= yypos1648; G->thunkpos= yythunkpos1648; if (!yy_Plain(G)) { goto l1645; }
  7131. }
  7132. l1648:;
  7133. yyprintf((stderr, " ok %s @ %s\n", "Block", G->buf+G->pos));
  7134. return 1;
  7135. l1645:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7136. yyprintf((stderr, " fail %s @ %s\n", "Block", G->buf+G->pos));
  7137. return 0;
  7138. }
  7139. YY_RULE(int) yy_FrontMatter(GREG *G)
  7140. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  7141. yyprintf((stderr, "%s\n", "FrontMatter")); if (!yy_LocMarker(G)) { goto l1663; } yyDo(G, yySet, -1, 0);
  7142. { int yypos1664= G->pos, yythunkpos1664= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_FRONTMATTER) )) goto l1664; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1664; if (!yymatchString(G, "---")) goto l1664; if (!yy_Newline(G)) { goto l1664; }
  7143. l1666:;
  7144. { int yypos1667= G->pos, yythunkpos1667= G->thunkpos; if (!yy_FrontMatterBlock(G)) { goto l1667; } goto l1666;
  7145. l1667:; G->pos= yypos1667; G->thunkpos= yythunkpos1667;
  7146. } if (!yy_FrontMatterEndMark(G)) { goto l1664; } if (!yy_Newline(G)) { goto l1664; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1664; yyDo(G, yy_1_FrontMatter, G->begin, G->end); goto l1665;
  7147. l1664:; G->pos= yypos1664; G->thunkpos= yythunkpos1664;
  7148. }
  7149. l1665:;
  7150. yyprintf((stderr, " ok %s @ %s\n", "FrontMatter", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  7151. return 1;
  7152. l1663:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7153. yyprintf((stderr, " fail %s @ %s\n", "FrontMatter", G->buf+G->pos));
  7154. return 0;
  7155. }
  7156. YY_RULE(int) yy_Doc(GREG *G)
  7157. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7158. yyprintf((stderr, "%s\n", "Doc")); if (!yy_FrontMatter(G)) { goto l1668; }
  7159. l1669:;
  7160. { int yypos1670= G->pos, yythunkpos1670= G->thunkpos; if (!yy_Block(G)) { goto l1670; } goto l1669;
  7161. l1670:; G->pos= yypos1670; G->thunkpos= yythunkpos1670;
  7162. }
  7163. yyprintf((stderr, " ok %s @ %s\n", "Doc", G->buf+G->pos));
  7164. return 1;
  7165. l1668:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7166. yyprintf((stderr, " fail %s @ %s\n", "Doc", G->buf+G->pos));
  7167. return 0;
  7168. }
  7169. #ifndef YY_PART
  7170. typedef int (*yyrule)(GREG *G);
  7171. YY_PARSE(int) YY_NAME(parse_from)(GREG *G, yyrule yystart)
  7172. {
  7173. int yyok;
  7174. if (!G->buflen)
  7175. {
  7176. G->buflen= YY_BUFFER_START_SIZE;
  7177. G->buf= (char *)YY_ALLOC(G->buflen, G->data);
  7178. G->textlen= YY_BUFFER_START_SIZE;
  7179. G->text= (char *)YY_ALLOC(G->textlen, G->data);
  7180. G->thunkslen= YY_STACK_SIZE;
  7181. G->thunks= (yythunk *)YY_ALLOC(sizeof(yythunk) * G->thunkslen, G->data);
  7182. G->valslen= YY_STACK_SIZE;
  7183. G->vals= (YYSTYPE*)YY_ALLOC(sizeof(YYSTYPE) * G->valslen, G->data);
  7184. G->begin= G->end= G->pos= G->limit= G->thunkpos= 0;
  7185. }
  7186. G->pos = 0;
  7187. G->begin= G->end= G->pos;
  7188. G->thunkpos= 0;
  7189. G->val= G->vals;
  7190. yyok= yystart(G);
  7191. if (yyok) yyDone(G);
  7192. yyCommit(G);
  7193. return yyok;
  7194. (void)yyrefill(NULL);
  7195. (void)yymatchDot(NULL);
  7196. (void)yymatchChar(NULL, 0);
  7197. (void)yymatchString(NULL, NULL);
  7198. (void)yymatchClass(NULL, NULL);
  7199. (void)yyDo(NULL, NULL, 0, 0);
  7200. (void)yyText(NULL, 0, 0);
  7201. (void)yyDone(NULL);
  7202. (void)yyCommit(NULL);
  7203. (void)yyAccept(NULL, 0);
  7204. (void)yyPush(NULL, NULL, 0, NULL, NULL);
  7205. (void)yyPop(NULL, NULL, 0, NULL, NULL);
  7206. (void)yySet(NULL, NULL, 0, NULL, NULL);
  7207. }
  7208. YY_PARSE(int) YY_NAME(parse)(GREG *G)
  7209. {
  7210. return YY_NAME(parse_from)(G, yy_Doc);
  7211. }
  7212. YY_PARSE(GREG *) YY_NAME(parse_new)(YY_XTYPE data)
  7213. {
  7214. GREG *G = (GREG *)YY_CALLOC(1, sizeof(GREG), G->data);
  7215. G->data = data;
  7216. return G;
  7217. }
  7218. YY_PARSE(void) YY_NAME(parse_free)(GREG *G)
  7219. {
  7220. YY_FREE(G->buf);
  7221. YY_FREE(G->text);
  7222. YY_FREE(G->thunks);
  7223. YY_FREE(G->vals);
  7224. YY_FREE(G);
  7225. }
  7226. #endif
  7227. /* PEG Markdown Highlight
  7228. * Copyright 2011-2016 Ali Rantakari -- http://hasseg.org
  7229. * Licensed under the GPL2+ and MIT licenses (see LICENSE for more info).
  7230. *
  7231. * pmh_parser_foot.c
  7232. *
  7233. * Code to be appended to the end of the parser code generated from the
  7234. * PEG grammar.
  7235. */
  7236. static void _parse(parser_data *p_data, yyrule start_rule)
  7237. {
  7238. GREG *g = YY_NAME(parse_new)(p_data);
  7239. if (start_rule == NULL)
  7240. YY_NAME(parse)(g);
  7241. else
  7242. YY_NAME(parse_from)(g, start_rule);
  7243. YY_NAME(parse_free)(g);
  7244. pmh_PRINTF("\n\n");
  7245. }
  7246. static void parse_markdown(parser_data *p_data)
  7247. {
  7248. pmh_PRINTF("\nPARSING DOCUMENT: ");
  7249. _parse(p_data, NULL);
  7250. }
  7251. static void parse_references(parser_data *p_data)
  7252. {
  7253. pmh_PRINTF("\nPARSING REFERENCES: ");
  7254. p_data->parsing_only_references = true;
  7255. _parse(p_data, yy_References);
  7256. p_data->parsing_only_references = false;
  7257. p_data->references = p_data->head_elems[pmh_REFERENCE];
  7258. p_data->head_elems[pmh_REFERENCE] = NULL;
  7259. }