pmh_parser.c 367 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462
  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 266
  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); /* 266 */
  1122. YY_RULE(int) yy_RawNoteReference(GREG *G); /* 265 */
  1123. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G); /* 264 */
  1124. YY_RULE(int) yy_AlphanumericAscii(GREG *G); /* 263 */
  1125. YY_RULE(int) yy_Quoted(GREG *G); /* 262 */
  1126. YY_RULE(int) yy_HtmlTag(GREG *G); /* 261 */
  1127. YY_RULE(int) yy_MarkTagClose(GREG *G); /* 260 */
  1128. YY_RULE(int) yy_MarkTagText(GREG *G); /* 259 */
  1129. YY_RULE(int) yy_MarkTagOpen(GREG *G); /* 258 */
  1130. YY_RULE(int) yy_Ticks5(GREG *G); /* 257 */
  1131. YY_RULE(int) yy_Ticks4(GREG *G); /* 256 */
  1132. YY_RULE(int) yy_Ticks3(GREG *G); /* 255 */
  1133. YY_RULE(int) yy_Ticks2(GREG *G); /* 254 */
  1134. YY_RULE(int) yy_Ticks1(GREG *G); /* 253 */
  1135. YY_RULE(int) yy_SkipBlock(GREG *G); /* 252 */
  1136. YY_RULE(int) yy_References(GREG *G); /* 251 */
  1137. YY_RULE(int) yy_EmptyTitle(GREG *G); /* 250 */
  1138. YY_RULE(int) yy_RefTitleParens(GREG *G); /* 249 */
  1139. YY_RULE(int) yy_RefTitleDouble(GREG *G); /* 248 */
  1140. YY_RULE(int) yy_RefTitleSingle(GREG *G); /* 247 */
  1141. YY_RULE(int) yy_LabelInline(GREG *G); /* 246 */
  1142. YY_RULE(int) yy_RefTitle(GREG *G); /* 245 */
  1143. YY_RULE(int) yy_RefSrc(GREG *G); /* 244 */
  1144. YY_RULE(int) yy_AutoLinkEmail(GREG *G); /* 243 */
  1145. YY_RULE(int) yy_AutoLinkUrl(GREG *G); /* 242 */
  1146. YY_RULE(int) yy_ImageSizeHeight(GREG *G); /* 241 */
  1147. YY_RULE(int) yy_ImageSizeWidth(GREG *G); /* 240 */
  1148. YY_RULE(int) yy_ImageSizeComplete(GREG *G); /* 239 */
  1149. YY_RULE(int) yy_TitleDoubleExt(GREG *G); /* 238 */
  1150. YY_RULE(int) yy_TitleSingleExt(GREG *G); /* 237 */
  1151. YY_RULE(int) yy_TitleDouble(GREG *G); /* 236 */
  1152. YY_RULE(int) yy_TitleSingle(GREG *G); /* 235 */
  1153. YY_RULE(int) yy_SourceContents(GREG *G); /* 234 */
  1154. YY_RULE(int) yy_ImageSize(GREG *G); /* 233 */
  1155. YY_RULE(int) yy_TitleExt(GREG *G); /* 232 */
  1156. YY_RULE(int) yy_Title(GREG *G); /* 231 */
  1157. YY_RULE(int) yy_Source(GREG *G); /* 230 */
  1158. YY_RULE(int) yy_Label(GREG *G); /* 229 */
  1159. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G); /* 228 */
  1160. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G); /* 227 */
  1161. YY_RULE(int) yy_AutoLink(GREG *G); /* 226 */
  1162. YY_RULE(int) yy_ReferenceLink(GREG *G); /* 225 */
  1163. YY_RULE(int) yy_ExplicitLinkSize(GREG *G); /* 224 */
  1164. YY_RULE(int) yy_ExplicitLink(GREG *G); /* 223 */
  1165. YY_RULE(int) yy_StrongUl(GREG *G); /* 222 */
  1166. YY_RULE(int) yy_StrongStar(GREG *G); /* 221 */
  1167. YY_RULE(int) yy_Whitespace(GREG *G); /* 220 */
  1168. YY_RULE(int) yy_EmphUl(GREG *G); /* 219 */
  1169. YY_RULE(int) yy_EmphStar(GREG *G); /* 218 */
  1170. YY_RULE(int) yy_StarLine(GREG *G); /* 217 */
  1171. YY_RULE(int) yy_UlLine(GREG *G); /* 216 */
  1172. YY_RULE(int) yy_SpecialChar(GREG *G); /* 215 */
  1173. YY_RULE(int) yy_Eof(GREG *G); /* 214 */
  1174. YY_RULE(int) yy_NormalEndline(GREG *G); /* 213 */
  1175. YY_RULE(int) yy_TerminalEndline(GREG *G); /* 212 */
  1176. YY_RULE(int) yy_LineBreak(GREG *G); /* 211 */
  1177. YY_RULE(int) yy_CharEntity(GREG *G); /* 210 */
  1178. YY_RULE(int) yy_DecEntity(GREG *G); /* 209 */
  1179. YY_RULE(int) yy_HexEntity(GREG *G); /* 208 */
  1180. YY_RULE(int) yy_Alphanumeric(GREG *G); /* 207 */
  1181. YY_RULE(int) yy_NormalChar(GREG *G); /* 206 */
  1182. YY_RULE(int) yy_Symbol(GREG *G); /* 205 */
  1183. YY_RULE(int) yy_EscapedChar(GREG *G); /* 204 */
  1184. YY_RULE(int) yy_Entity(GREG *G); /* 203 */
  1185. YY_RULE(int) yy_RawHtml(GREG *G); /* 202 */
  1186. YY_RULE(int) yy_Mark(GREG *G); /* 201 */
  1187. YY_RULE(int) yy_Code(GREG *G); /* 200 */
  1188. YY_RULE(int) yy_InlineNote(GREG *G); /* 199 */
  1189. YY_RULE(int) yy_NoteReference(GREG *G); /* 198 */
  1190. YY_RULE(int) yy_Link(GREG *G); /* 197 */
  1191. YY_RULE(int) yy_Image(GREG *G); /* 196 */
  1192. YY_RULE(int) yy_Strike(GREG *G); /* 195 */
  1193. YY_RULE(int) yy_Emph(GREG *G); /* 194 */
  1194. YY_RULE(int) yy_Strong(GREG *G); /* 193 */
  1195. YY_RULE(int) yy_UlOrStarLine(GREG *G); /* 192 */
  1196. YY_RULE(int) yy_Str(GREG *G); /* 191 */
  1197. YY_RULE(int) yy_InStyleTags(GREG *G); /* 190 */
  1198. YY_RULE(int) yy_StyleClose(GREG *G); /* 189 */
  1199. YY_RULE(int) yy_StyleOpen(GREG *G); /* 188 */
  1200. YY_RULE(int) yy_HtmlBlockType(GREG *G); /* 187 */
  1201. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G); /* 186 */
  1202. YY_RULE(int) yy_HtmlComment(GREG *G); /* 185 */
  1203. YY_RULE(int) yy_HtmlBlockInTags(GREG *G); /* 184 */
  1204. YY_RULE(int) yy_HtmlBlockHead(GREG *G); /* 183 */
  1205. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G); /* 182 */
  1206. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G); /* 181 */
  1207. YY_RULE(int) yy_HtmlBlockScript(GREG *G); /* 180 */
  1208. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G); /* 179 */
  1209. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G); /* 178 */
  1210. YY_RULE(int) yy_HtmlBlockTr(GREG *G); /* 177 */
  1211. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G); /* 176 */
  1212. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G); /* 175 */
  1213. YY_RULE(int) yy_HtmlBlockThead(GREG *G); /* 174 */
  1214. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G); /* 173 */
  1215. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G); /* 172 */
  1216. YY_RULE(int) yy_HtmlBlockTh(GREG *G); /* 171 */
  1217. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G); /* 170 */
  1218. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G); /* 169 */
  1219. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G); /* 168 */
  1220. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G); /* 167 */
  1221. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G); /* 166 */
  1222. YY_RULE(int) yy_HtmlBlockTd(GREG *G); /* 165 */
  1223. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G); /* 164 */
  1224. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G); /* 163 */
  1225. YY_RULE(int) yy_HtmlBlockTbody(GREG *G); /* 162 */
  1226. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G); /* 161 */
  1227. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G); /* 160 */
  1228. YY_RULE(int) yy_HtmlBlockLi(GREG *G); /* 159 */
  1229. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G); /* 158 */
  1230. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G); /* 157 */
  1231. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G); /* 156 */
  1232. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G); /* 155 */
  1233. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G); /* 154 */
  1234. YY_RULE(int) yy_HtmlBlockDt(GREG *G); /* 153 */
  1235. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G); /* 152 */
  1236. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G); /* 151 */
  1237. YY_RULE(int) yy_HtmlBlockDd(GREG *G); /* 150 */
  1238. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G); /* 149 */
  1239. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G); /* 148 */
  1240. YY_RULE(int) yy_HtmlBlockUl(GREG *G); /* 147 */
  1241. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G); /* 146 */
  1242. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G); /* 145 */
  1243. YY_RULE(int) yy_HtmlBlockTable(GREG *G); /* 144 */
  1244. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G); /* 143 */
  1245. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G); /* 142 */
  1246. YY_RULE(int) yy_HtmlBlockPre(GREG *G); /* 141 */
  1247. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G); /* 140 */
  1248. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G); /* 139 */
  1249. YY_RULE(int) yy_HtmlBlockP(GREG *G); /* 138 */
  1250. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G); /* 137 */
  1251. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G); /* 136 */
  1252. YY_RULE(int) yy_HtmlBlockOl(GREG *G); /* 135 */
  1253. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G); /* 134 */
  1254. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G); /* 133 */
  1255. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G); /* 132 */
  1256. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G); /* 131 */
  1257. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G); /* 130 */
  1258. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G); /* 129 */
  1259. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G); /* 128 */
  1260. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G); /* 127 */
  1261. YY_RULE(int) yy_HtmlBlockMenu(GREG *G); /* 126 */
  1262. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G); /* 125 */
  1263. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G); /* 124 */
  1264. YY_RULE(int) yy_HtmlBlockH6(GREG *G); /* 123 */
  1265. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G); /* 122 */
  1266. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G); /* 121 */
  1267. YY_RULE(int) yy_HtmlBlockH5(GREG *G); /* 120 */
  1268. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G); /* 119 */
  1269. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G); /* 118 */
  1270. YY_RULE(int) yy_HtmlBlockH4(GREG *G); /* 117 */
  1271. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G); /* 116 */
  1272. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G); /* 115 */
  1273. YY_RULE(int) yy_HtmlBlockH3(GREG *G); /* 114 */
  1274. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G); /* 113 */
  1275. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G); /* 112 */
  1276. YY_RULE(int) yy_HtmlBlockH2(GREG *G); /* 111 */
  1277. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G); /* 110 */
  1278. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G); /* 109 */
  1279. YY_RULE(int) yy_HtmlBlockH1(GREG *G); /* 108 */
  1280. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G); /* 107 */
  1281. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G); /* 106 */
  1282. YY_RULE(int) yy_HtmlBlockForm(GREG *G); /* 105 */
  1283. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G); /* 104 */
  1284. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G); /* 103 */
  1285. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G); /* 102 */
  1286. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G); /* 101 */
  1287. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G); /* 100 */
  1288. YY_RULE(int) yy_HtmlBlockDl(GREG *G); /* 99 */
  1289. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G); /* 98 */
  1290. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G); /* 97 */
  1291. YY_RULE(int) yy_HtmlBlockDiv(GREG *G); /* 96 */
  1292. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G); /* 95 */
  1293. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G); /* 94 */
  1294. YY_RULE(int) yy_HtmlBlockDir(GREG *G); /* 93 */
  1295. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G); /* 92 */
  1296. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G); /* 91 */
  1297. YY_RULE(int) yy_HtmlBlockCenter(GREG *G); /* 90 */
  1298. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G); /* 89 */
  1299. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G); /* 88 */
  1300. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G); /* 87 */
  1301. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G); /* 86 */
  1302. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G); /* 85 */
  1303. YY_RULE(int) yy_HtmlBlockAddress(GREG *G); /* 84 */
  1304. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G); /* 83 */
  1305. YY_RULE(int) yy_HtmlAttribute(GREG *G); /* 82 */
  1306. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G); /* 81 */
  1307. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G); /* 80 */
  1308. YY_RULE(int) yy_Indent(GREG *G); /* 79 */
  1309. YY_RULE(int) yy_ListBlockLine(GREG *G); /* 78 */
  1310. YY_RULE(int) yy_ListContinuationBlock(GREG *G); /* 77 */
  1311. YY_RULE(int) yy_ListBlock(GREG *G); /* 76 */
  1312. YY_RULE(int) yy_ListItem(GREG *G); /* 75 */
  1313. YY_RULE(int) yy_Enumerator(GREG *G); /* 74 */
  1314. YY_RULE(int) yy_ListItemTight(GREG *G); /* 73 */
  1315. YY_RULE(int) yy_ListLoose(GREG *G); /* 72 */
  1316. YY_RULE(int) yy_ListTight(GREG *G); /* 71 */
  1317. YY_RULE(int) yy_Bullet(GREG *G); /* 70 */
  1318. YY_RULE(int) yy_TableCell(GREG *G); /* 69 */
  1319. YY_RULE(int) yy_TableBorder(GREG *G); /* 68 */
  1320. YY_RULE(int) yy_TableLine(GREG *G); /* 67 */
  1321. YY_RULE(int) yy_TableDelimiter(GREG *G); /* 66 */
  1322. YY_RULE(int) yy_TableHeader(GREG *G); /* 65 */
  1323. YY_RULE(int) yy_InlineEquationMultiple(GREG *G); /* 64 */
  1324. YY_RULE(int) yy_InlineEquationSingle(GREG *G); /* 63 */
  1325. YY_RULE(int) yy_InlineEquation(GREG *G); /* 62 */
  1326. YY_RULE(int) yy_Nonspacechar(GREG *G); /* 61 */
  1327. YY_RULE(int) yy_DisplayFormulaRawMark(GREG *G); /* 60 */
  1328. YY_RULE(int) yy_DisplayFormulaRawEnd(GREG *G); /* 59 */
  1329. YY_RULE(int) yy_Spnl(GREG *G); /* 58 */
  1330. YY_RULE(int) yy_DisplayFormulaRawStart(GREG *G); /* 57 */
  1331. YY_RULE(int) yy_FormulaNumber(GREG *G); /* 56 */
  1332. YY_RULE(int) yy_DisplayFormulaRaw(GREG *G); /* 55 */
  1333. YY_RULE(int) yy_DisplayFormulaDollar(GREG *G); /* 54 */
  1334. YY_RULE(int) yy_FencedCodeBlockTidle(GREG *G); /* 53 */
  1335. YY_RULE(int) yy_FencedCodeBlockTick(GREG *G); /* 52 */
  1336. YY_RULE(int) yy_FencedCodeBlockEndTidle(GREG *G); /* 51 */
  1337. YY_RULE(int) yy_FencedCodeBlockChunkTidle(GREG *G); /* 50 */
  1338. YY_RULE(int) yy_FencedCodeBlockStartTidle(GREG *G); /* 49 */
  1339. YY_RULE(int) yy_Spacechar(GREG *G); /* 48 */
  1340. YY_RULE(int) yy_FencedCodeBlockEndTick(GREG *G); /* 47 */
  1341. YY_RULE(int) yy_FencedCodeBlockChunkTick(GREG *G); /* 46 */
  1342. YY_RULE(int) yy_FencedCodeBlockStartTick(GREG *G); /* 45 */
  1343. YY_RULE(int) yy_VerbatimChunk(GREG *G); /* 44 */
  1344. YY_RULE(int) yy_IndentedLine(GREG *G); /* 43 */
  1345. YY_RULE(int) yy_NonblankIndentedLine(GREG *G); /* 42 */
  1346. YY_RULE(int) yy_Line(GREG *G); /* 41 */
  1347. YY_RULE(int) yy_StartList(GREG *G); /* 40 */
  1348. YY_RULE(int) yy_BlockQuoteRaw(GREG *G); /* 39 */
  1349. YY_RULE(int) yy_Endline(GREG *G); /* 38 */
  1350. YY_RULE(int) yy_RawLine(GREG *G); /* 37 */
  1351. YY_RULE(int) yy_SetextBottom2(GREG *G); /* 36 */
  1352. YY_RULE(int) yy_SetextBottom1(GREG *G); /* 35 */
  1353. YY_RULE(int) yy_SetextHeading2(GREG *G); /* 34 */
  1354. YY_RULE(int) yy_SetextHeading1(GREG *G); /* 33 */
  1355. YY_RULE(int) yy_SetextHeading(GREG *G); /* 32 */
  1356. YY_RULE(int) yy_Space(GREG *G); /* 31 */
  1357. YY_RULE(int) yy_AtxHeading(GREG *G); /* 30 */
  1358. YY_RULE(int) yy_AtxStart(GREG *G); /* 29 */
  1359. YY_RULE(int) yy_Inline(GREG *G); /* 28 */
  1360. YY_RULE(int) yy_Sp(GREG *G); /* 27 */
  1361. YY_RULE(int) yy_AtxInline(GREG *G); /* 26 */
  1362. YY_RULE(int) yy_Inlines(GREG *G); /* 25 */
  1363. YY_RULE(int) yy_NonindentSpace(GREG *G); /* 24 */
  1364. YY_RULE(int) yy_Plain(GREG *G); /* 23 */
  1365. YY_RULE(int) yy_Para(GREG *G); /* 22 */
  1366. YY_RULE(int) yy_StyleBlock(GREG *G); /* 21 */
  1367. YY_RULE(int) yy_HtmlBlock(GREG *G); /* 20 */
  1368. YY_RULE(int) yy_Table(GREG *G); /* 19 */
  1369. YY_RULE(int) yy_BulletList(GREG *G); /* 18 */
  1370. YY_RULE(int) yy_OrderedList(GREG *G); /* 17 */
  1371. YY_RULE(int) yy_Heading(GREG *G); /* 16 */
  1372. YY_RULE(int) yy_HorizontalRule(GREG *G); /* 15 */
  1373. YY_RULE(int) yy_Reference(GREG *G); /* 14 */
  1374. YY_RULE(int) yy_Note(GREG *G); /* 13 */
  1375. YY_RULE(int) yy_DisplayFormula(GREG *G); /* 12 */
  1376. YY_RULE(int) yy_FencedCodeBlock(GREG *G); /* 11 */
  1377. YY_RULE(int) yy_Verbatim(GREG *G); /* 10 */
  1378. YY_RULE(int) yy_BlockQuote(GREG *G); /* 9 */
  1379. YY_RULE(int) yy_BlankLine(GREG *G); /* 8 */
  1380. YY_RULE(int) yy_FrontMatterEndMark(GREG *G); /* 7 */
  1381. YY_RULE(int) yy_FrontMatterBlock(GREG *G); /* 6 */
  1382. YY_RULE(int) yy_Newline(GREG *G); /* 5 */
  1383. YY_RULE(int) yy_LocMarker(GREG *G); /* 4 */
  1384. YY_RULE(int) yy_Block(GREG *G); /* 3 */
  1385. YY_RULE(int) yy_FrontMatter(GREG *G); /* 2 */
  1386. YY_RULE(int) yy_Doc(GREG *G); /* 1 */
  1387. YY_ACTION(void) yy_1_InlineNote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1388. {
  1389. #define s G->val[-1]
  1390. yyprintf((stderr, "do yy_1_InlineNote\n"));
  1391. ADD(elem_s(pmh_NOTE)); ;
  1392. #undef s
  1393. }
  1394. YY_ACTION(void) yy_1_Note(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1395. {
  1396. #define s G->val[-1]
  1397. yyprintf((stderr, "do yy_1_Note\n"));
  1398. ADD(elem_s(pmh_NOTE)); ;
  1399. #undef s
  1400. }
  1401. YY_ACTION(void) yy_1_NoteReference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1402. {
  1403. yyprintf((stderr, "do yy_1_NoteReference\n"));
  1404. ADD(elem(pmh_NOTE)); ;
  1405. }
  1406. YY_ACTION(void) yy_1_RawLine(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1407. {
  1408. yyprintf((stderr, "do yy_1_RawLine\n"));
  1409. yy = elem(pmh_RAW); ;
  1410. }
  1411. YY_ACTION(void) yy_1_Line(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1412. {
  1413. yyprintf((stderr, "do yy_1_Line\n"));
  1414. yy = mk_element((parser_data *)G->data, pmh_RAW, yy->pos, yy->end); ;
  1415. }
  1416. YY_ACTION(void) yy_1_StartList(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1417. {
  1418. yyprintf((stderr, "do yy_1_StartList\n"));
  1419. yy = NULL; ;
  1420. }
  1421. YY_ACTION(void) yy_1_HtmlComment(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1422. {
  1423. #define s G->val[-1]
  1424. yyprintf((stderr, "do yy_1_HtmlComment\n"));
  1425. ADD(elem_s(pmh_COMMENT)); ;
  1426. #undef s
  1427. }
  1428. YY_ACTION(void) yy_1_RawHtml(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1429. {
  1430. #define s G->val[-1]
  1431. yyprintf((stderr, "do yy_1_RawHtml\n"));
  1432. ADD(elem_s(pmh_HTML)); ;
  1433. #undef s
  1434. }
  1435. YY_ACTION(void) yy_1_MarkTagClose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1436. {
  1437. #define s G->val[-1]
  1438. yyprintf((stderr, "do yy_1_MarkTagClose\n"));
  1439. yy = elem_s(pmh_HTML); ;
  1440. #undef s
  1441. }
  1442. YY_ACTION(void) yy_1_MarkTagOpen(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1443. {
  1444. #define s G->val[-1]
  1445. yyprintf((stderr, "do yy_1_MarkTagOpen\n"));
  1446. yy = elem_s(pmh_HTML); ;
  1447. #undef s
  1448. }
  1449. YY_ACTION(void) yy_1_Mark(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1450. {
  1451. #define c G->val[-1]
  1452. #define o G->val[-2]
  1453. yyprintf((stderr, "do yy_1_Mark\n"));
  1454. ADD(o);
  1455. ADD(mk_element((parser_data *)G->data, pmh_MARK, o->end, c->pos));
  1456. ADD(c);
  1457. ;
  1458. #undef c
  1459. #undef o
  1460. }
  1461. YY_ACTION(void) yy_1_Code(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1462. {
  1463. #define s G->val[-1]
  1464. yyprintf((stderr, "do yy_1_Code\n"));
  1465. ADD(elem_s(pmh_CODE)); ;
  1466. #undef s
  1467. }
  1468. YY_ACTION(void) yy_1_Ticks5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1469. {
  1470. yyprintf((stderr, "do yy_1_Ticks5\n"));
  1471. yy = elem(pmh_NO_TYPE); ;
  1472. }
  1473. YY_ACTION(void) yy_1_Ticks4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1474. {
  1475. yyprintf((stderr, "do yy_1_Ticks4\n"));
  1476. yy = elem(pmh_NO_TYPE); ;
  1477. }
  1478. YY_ACTION(void) yy_1_Ticks3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1479. {
  1480. yyprintf((stderr, "do yy_1_Ticks3\n"));
  1481. yy = elem(pmh_NO_TYPE); ;
  1482. }
  1483. YY_ACTION(void) yy_1_Ticks2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1484. {
  1485. yyprintf((stderr, "do yy_1_Ticks2\n"));
  1486. yy = elem(pmh_NO_TYPE); ;
  1487. }
  1488. YY_ACTION(void) yy_1_Ticks1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1489. {
  1490. yyprintf((stderr, "do yy_1_Ticks1\n"));
  1491. yy = elem(pmh_NO_TYPE); ;
  1492. }
  1493. YY_ACTION(void) yy_1_RefSrc(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1494. {
  1495. yyprintf((stderr, "do yy_1_RefSrc\n"));
  1496. yy = mk_notype; yy->address = COPY_YYTEXT_ORIG(); ;
  1497. }
  1498. YY_ACTION(void) yy_2_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1499. {
  1500. #define s G->val[-1]
  1501. yyprintf((stderr, "do yy_2_Label\n"));
  1502. s->pos = s->pos;
  1503. s->end = thunk->end;
  1504. yy = s;
  1505. ;
  1506. #undef s
  1507. }
  1508. YY_ACTION(void) yy_1_Label(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1509. {
  1510. #define s G->val[-1]
  1511. yyprintf((stderr, "do yy_1_Label\n"));
  1512. s->label = COPY_YYTEXT_ORIG(); ;
  1513. #undef s
  1514. }
  1515. YY_ACTION(void) yy_1_Reference(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1516. {
  1517. #define r G->val[-1]
  1518. #define l G->val[-2]
  1519. #define s G->val[-3]
  1520. yyprintf((stderr, "do yy_1_Reference\n"));
  1521. pmh_realelement *el = elem_s(pmh_REFERENCE);
  1522. el->label = strdup_or_null(l->label);
  1523. el->address = strdup_or_null(r->address);
  1524. ADD(el);
  1525. FREE_LABEL(l);
  1526. FREE_ADDRESS(r);
  1527. ;
  1528. #undef r
  1529. #undef l
  1530. #undef s
  1531. }
  1532. YY_ACTION(void) yy_3_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1533. {
  1534. #define s G->val[-1]
  1535. yyprintf((stderr, "do yy_3_AutoLinkEmail\n"));
  1536. s->end = thunk->end;
  1537. ADD(s);
  1538. ;
  1539. #undef s
  1540. }
  1541. YY_ACTION(void) yy_2_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1542. {
  1543. #define s G->val[-1]
  1544. yyprintf((stderr, "do yy_2_AutoLinkEmail\n"));
  1545. s->address = COPY_YYTEXT_ORIG(); ;
  1546. #undef s
  1547. }
  1548. YY_ACTION(void) yy_1_AutoLinkEmail(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1549. {
  1550. #define s G->val[-1]
  1551. yyprintf((stderr, "do yy_1_AutoLinkEmail\n"));
  1552. s->type = pmh_AUTO_LINK_EMAIL; ;
  1553. #undef s
  1554. }
  1555. YY_ACTION(void) yy_3_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1556. {
  1557. #define s G->val[-1]
  1558. yyprintf((stderr, "do yy_3_AutoLinkUrl\n"));
  1559. s->end = thunk->end;
  1560. ADD(s);
  1561. ;
  1562. #undef s
  1563. }
  1564. YY_ACTION(void) yy_2_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1565. {
  1566. #define s G->val[-1]
  1567. yyprintf((stderr, "do yy_2_AutoLinkUrl\n"));
  1568. s->address = COPY_YYTEXT_ORIG(); ;
  1569. #undef s
  1570. }
  1571. YY_ACTION(void) yy_1_AutoLinkUrl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1572. {
  1573. #define s G->val[-1]
  1574. yyprintf((stderr, "do yy_1_AutoLinkUrl\n"));
  1575. s->type = pmh_AUTO_LINK_URL; ;
  1576. #undef s
  1577. }
  1578. YY_ACTION(void) yy_3_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1579. {
  1580. yyprintf((stderr, "do yy_3_Source\n"));
  1581. yy->address = COPY_YYTEXT_ORIG(); ;
  1582. }
  1583. YY_ACTION(void) yy_2_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1584. {
  1585. yyprintf((stderr, "do yy_2_Source\n"));
  1586. yy->address = COPY_YYTEXT_ORIG(); ;
  1587. }
  1588. YY_ACTION(void) yy_1_Source(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1589. {
  1590. yyprintf((stderr, "do yy_1_Source\n"));
  1591. yy = mk_notype; ;
  1592. }
  1593. YY_ACTION(void) yy_1_ExplicitLinkSize(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1594. {
  1595. #define l G->val[-1]
  1596. #define s G->val[-2]
  1597. yyprintf((stderr, "do yy_1_ExplicitLinkSize\n"));
  1598. yy = elem_s(pmh_LINK);
  1599. if (l->address != NULL)
  1600. yy->address = strdup_or_null(l->address);
  1601. FREE_LABEL(s);
  1602. FREE_ADDRESS(l);
  1603. ;
  1604. #undef l
  1605. #undef s
  1606. }
  1607. YY_ACTION(void) yy_1_ExplicitLink(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1608. {
  1609. #define l G->val[-1]
  1610. #define s G->val[-2]
  1611. yyprintf((stderr, "do yy_1_ExplicitLink\n"));
  1612. yy = elem_s(pmh_LINK);
  1613. if (l->address != NULL)
  1614. yy->address = strdup_or_null(l->address);
  1615. FREE_LABEL(s);
  1616. FREE_ADDRESS(l);
  1617. ;
  1618. #undef l
  1619. #undef s
  1620. }
  1621. YY_ACTION(void) yy_1_ReferenceLinkSingle(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1622. {
  1623. #define s G->val[-1]
  1624. yyprintf((stderr, "do yy_1_ReferenceLinkSingle\n"));
  1625. pmh_realelement *reference = GET_REF(s->label);
  1626. if (reference) {
  1627. yy = elem_s(pmh_LINK);
  1628. yy->label = strdup_or_null(s->label);
  1629. yy->address = strdup_or_null(reference->address);
  1630. } else
  1631. yy = NULL;
  1632. FREE_LABEL(s);
  1633. ;
  1634. #undef s
  1635. }
  1636. YY_ACTION(void) yy_1_ReferenceLinkDouble(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1637. {
  1638. #define l G->val[-1]
  1639. #define s G->val[-2]
  1640. yyprintf((stderr, "do yy_1_ReferenceLinkDouble\n"));
  1641. pmh_realelement *reference = GET_REF(l->label);
  1642. if (reference) {
  1643. yy = elem_s(pmh_LINK);
  1644. yy->label = strdup_or_null(l->label);
  1645. yy->address = strdup_or_null(reference->address);
  1646. } else
  1647. yy = NULL;
  1648. FREE_LABEL(s);
  1649. FREE_LABEL(l);
  1650. ;
  1651. #undef l
  1652. #undef s
  1653. }
  1654. YY_ACTION(void) yy_1_Link(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1655. {
  1656. yyprintf((stderr, "do yy_1_Link\n"));
  1657. if (yy) ADD(yy); ;
  1658. }
  1659. YY_ACTION(void) yy_1_Image(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1660. {
  1661. yyprintf((stderr, "do yy_1_Image\n"));
  1662. if (yy != NULL) {
  1663. yy->type = pmh_IMAGE;
  1664. yy->pos -= 1;
  1665. ADD(yy);
  1666. }
  1667. ;
  1668. }
  1669. YY_ACTION(void) yy_1_Strike(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1670. {
  1671. #define s G->val[-1]
  1672. yyprintf((stderr, "do yy_1_Strike\n"));
  1673. ADD(elem_s(pmh_STRIKE)); ;
  1674. #undef s
  1675. }
  1676. YY_ACTION(void) yy_1_StrongUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1677. {
  1678. #define s G->val[-1]
  1679. yyprintf((stderr, "do yy_1_StrongUl\n"));
  1680. ADD(elem_s(pmh_STRONG)); ;
  1681. #undef s
  1682. }
  1683. YY_ACTION(void) yy_1_StrongStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1684. {
  1685. #define s G->val[-1]
  1686. yyprintf((stderr, "do yy_1_StrongStar\n"));
  1687. ADD(elem_s(pmh_STRONG)); ;
  1688. #undef s
  1689. }
  1690. YY_ACTION(void) yy_1_EmphUl(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1691. {
  1692. #define s G->val[-1]
  1693. yyprintf((stderr, "do yy_1_EmphUl\n"));
  1694. ADD(elem_s(pmh_EMPH)); ;
  1695. #undef s
  1696. }
  1697. YY_ACTION(void) yy_1_EmphStar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1698. {
  1699. #define s G->val[-1]
  1700. yyprintf((stderr, "do yy_1_EmphStar\n"));
  1701. ADD(elem_s(pmh_EMPH)); ;
  1702. #undef s
  1703. }
  1704. YY_ACTION(void) yy_1_Entity(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1705. {
  1706. #define s G->val[-1]
  1707. yyprintf((stderr, "do yy_1_Entity\n"));
  1708. ADD(elem_s(pmh_HTML_ENTITY)); ;
  1709. #undef s
  1710. }
  1711. YY_ACTION(void) yy_1_StyleBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1712. {
  1713. #define s G->val[-1]
  1714. yyprintf((stderr, "do yy_1_StyleBlock\n"));
  1715. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1716. #undef s
  1717. }
  1718. YY_ACTION(void) yy_1_HtmlBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1719. {
  1720. #define s G->val[-1]
  1721. yyprintf((stderr, "do yy_1_HtmlBlock\n"));
  1722. ADD(elem_s(pmh_HTMLBLOCK)); ;
  1723. #undef s
  1724. }
  1725. YY_ACTION(void) yy_1_HtmlBlockH6(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1726. {
  1727. #define s G->val[-1]
  1728. yyprintf((stderr, "do yy_1_HtmlBlockH6\n"));
  1729. ADD(elem_s(pmh_H6)); ;
  1730. #undef s
  1731. }
  1732. YY_ACTION(void) yy_1_HtmlBlockH5(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1733. {
  1734. #define s G->val[-1]
  1735. yyprintf((stderr, "do yy_1_HtmlBlockH5\n"));
  1736. ADD(elem_s(pmh_H5)); ;
  1737. #undef s
  1738. }
  1739. YY_ACTION(void) yy_1_HtmlBlockH4(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1740. {
  1741. #define s G->val[-1]
  1742. yyprintf((stderr, "do yy_1_HtmlBlockH4\n"));
  1743. ADD(elem_s(pmh_H4)); ;
  1744. #undef s
  1745. }
  1746. YY_ACTION(void) yy_1_HtmlBlockH3(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1747. {
  1748. #define s G->val[-1]
  1749. yyprintf((stderr, "do yy_1_HtmlBlockH3\n"));
  1750. ADD(elem_s(pmh_H3)); ;
  1751. #undef s
  1752. }
  1753. YY_ACTION(void) yy_1_HtmlBlockH2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1754. {
  1755. #define s G->val[-1]
  1756. yyprintf((stderr, "do yy_1_HtmlBlockH2\n"));
  1757. ADD(elem_s(pmh_H2)); ;
  1758. #undef s
  1759. }
  1760. YY_ACTION(void) yy_1_HtmlBlockH1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1761. {
  1762. #define s G->val[-1]
  1763. yyprintf((stderr, "do yy_1_HtmlBlockH1\n"));
  1764. ADD(elem_s(pmh_H1)); ;
  1765. #undef s
  1766. }
  1767. YY_ACTION(void) yy_1_Enumerator(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1768. {
  1769. yyprintf((stderr, "do yy_1_Enumerator\n"));
  1770. ADD(elem(pmh_LIST_ENUMERATOR)); ;
  1771. }
  1772. YY_ACTION(void) yy_3_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1773. {
  1774. #define a G->val[-1]
  1775. yyprintf((stderr, "do yy_3_ListContinuationBlock\n"));
  1776. yy = a; ;
  1777. #undef a
  1778. }
  1779. YY_ACTION(void) yy_2_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1780. {
  1781. #define a G->val[-1]
  1782. yyprintf((stderr, "do yy_2_ListContinuationBlock\n"));
  1783. a = cons(yy, a); ;
  1784. #undef a
  1785. }
  1786. YY_ACTION(void) yy_1_ListContinuationBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1787. {
  1788. #define a G->val[-1]
  1789. yyprintf((stderr, "do yy_1_ListContinuationBlock\n"));
  1790. if (*yytext == '\0') /* if strlen(yytext) == 0 */
  1791. a = cons(elem(pmh_SEPARATOR), a);
  1792. else
  1793. a = cons(elem(pmh_RAW), a);
  1794. ;
  1795. #undef a
  1796. }
  1797. YY_ACTION(void) yy_3_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1798. {
  1799. #define a G->val[-1]
  1800. yyprintf((stderr, "do yy_3_ListBlock\n"));
  1801. yy = a; ;
  1802. #undef a
  1803. }
  1804. YY_ACTION(void) yy_2_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1805. {
  1806. #define a G->val[-1]
  1807. yyprintf((stderr, "do yy_2_ListBlock\n"));
  1808. a = cons(elem(pmh_RAW), a); ;
  1809. #undef a
  1810. }
  1811. YY_ACTION(void) yy_1_ListBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1812. {
  1813. #define a G->val[-1]
  1814. yyprintf((stderr, "do yy_1_ListBlock\n"));
  1815. a = cons(yy, a); ;
  1816. #undef a
  1817. }
  1818. YY_ACTION(void) yy_3_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1819. {
  1820. #define a G->val[-1]
  1821. yyprintf((stderr, "do yy_3_ListItemTight\n"));
  1822. yy = a; ;
  1823. #undef a
  1824. }
  1825. YY_ACTION(void) yy_2_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1826. {
  1827. #define a G->val[-1]
  1828. yyprintf((stderr, "do yy_2_ListItemTight\n"));
  1829. a = cons(yy, a); ;
  1830. #undef a
  1831. }
  1832. YY_ACTION(void) yy_1_ListItemTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1833. {
  1834. #define a G->val[-1]
  1835. yyprintf((stderr, "do yy_1_ListItemTight\n"));
  1836. a = cons(yy, a); ;
  1837. #undef a
  1838. }
  1839. YY_ACTION(void) yy_3_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1840. {
  1841. #define a G->val[-1]
  1842. yyprintf((stderr, "do yy_3_ListItem\n"));
  1843. yy = a; ;
  1844. #undef a
  1845. }
  1846. YY_ACTION(void) yy_2_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1847. {
  1848. #define a G->val[-1]
  1849. yyprintf((stderr, "do yy_2_ListItem\n"));
  1850. a = cons(yy, a); ;
  1851. #undef a
  1852. }
  1853. YY_ACTION(void) yy_1_ListItem(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1854. {
  1855. #define a G->val[-1]
  1856. yyprintf((stderr, "do yy_1_ListItem\n"));
  1857. a = cons(yy, a); ;
  1858. #undef a
  1859. }
  1860. YY_ACTION(void) yy_2_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1861. {
  1862. #define b G->val[-1]
  1863. #define a G->val[-2]
  1864. yyprintf((stderr, "do yy_2_ListLoose\n"));
  1865. pmh_realelement *cur = a;
  1866. while (cur != NULL) {
  1867. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1868. rawlist->children = reverse(cur->children);
  1869. ADD(rawlist);
  1870. cur = cur->next;
  1871. }
  1872. ;
  1873. #undef b
  1874. #undef a
  1875. }
  1876. YY_ACTION(void) yy_1_ListLoose(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1877. {
  1878. #define b G->val[-1]
  1879. #define a G->val[-2]
  1880. yyprintf((stderr, "do yy_1_ListLoose\n"));
  1881. b = cons(etext("\n\n"), b); /* In loose list, \n\n added to end of each element */
  1882. pmh_realelement *el = mk_notype;
  1883. el->children = b;
  1884. a = cons(el, a);
  1885. ;
  1886. #undef b
  1887. #undef a
  1888. }
  1889. YY_ACTION(void) yy_2_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1890. {
  1891. #define a G->val[-1]
  1892. yyprintf((stderr, "do yy_2_ListTight\n"));
  1893. pmh_realelement *cur = a;
  1894. while (cur != NULL) {
  1895. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  1896. rawlist->children = reverse(cur->children);
  1897. ADD(rawlist);
  1898. cur = cur->next;
  1899. }
  1900. ;
  1901. #undef a
  1902. }
  1903. YY_ACTION(void) yy_1_ListTight(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1904. {
  1905. #define a G->val[-1]
  1906. yyprintf((stderr, "do yy_1_ListTight\n"));
  1907. pmh_realelement *el = mk_notype;
  1908. el->children = yy;
  1909. a = cons(el, a);
  1910. ;
  1911. #undef a
  1912. }
  1913. YY_ACTION(void) yy_1_Bullet(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1914. {
  1915. yyprintf((stderr, "do yy_1_Bullet\n"));
  1916. ADD(elem(pmh_LIST_BULLET)); ;
  1917. }
  1918. YY_ACTION(void) yy_1_HorizontalRule(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1919. {
  1920. yyprintf((stderr, "do yy_1_HorizontalRule\n"));
  1921. ADD(elem(pmh_HRULE)); ;
  1922. }
  1923. YY_ACTION(void) yy_1_TableBorder(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1924. {
  1925. yyprintf((stderr, "do yy_1_TableBorder\n"));
  1926. ADD(elem(pmh_TABLEBORDER)); ;
  1927. }
  1928. YY_ACTION(void) yy_1_TableHeader(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1929. {
  1930. #define s G->val[-1]
  1931. yyprintf((stderr, "do yy_1_TableHeader\n"));
  1932. ADD(elem_s(pmh_TABLEHEADER)); ;
  1933. #undef s
  1934. }
  1935. YY_ACTION(void) yy_1_Table(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1936. {
  1937. #define s G->val[-1]
  1938. yyprintf((stderr, "do yy_1_Table\n"));
  1939. ADD(elem_s(pmh_TABLE)); ;
  1940. #undef s
  1941. }
  1942. YY_ACTION(void) yy_1_InlineEquation(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1943. {
  1944. yyprintf((stderr, "do yy_1_InlineEquation\n"));
  1945. ADD(elem(pmh_INLINEEQUATION)); ;
  1946. }
  1947. YY_ACTION(void) yy_1_DisplayFormulaRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1948. {
  1949. yyprintf((stderr, "do yy_1_DisplayFormulaRaw\n"));
  1950. ADD(elem(pmh_DISPLAYFORMULA)); ;
  1951. }
  1952. YY_ACTION(void) yy_1_DisplayFormulaDollar(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1953. {
  1954. yyprintf((stderr, "do yy_1_DisplayFormulaDollar\n"));
  1955. ADD(elem(pmh_DISPLAYFORMULA)); ;
  1956. }
  1957. YY_ACTION(void) yy_1_FencedCodeBlock(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1958. {
  1959. #define s G->val[-1]
  1960. yyprintf((stderr, "do yy_1_FencedCodeBlock\n"));
  1961. ADD(elem(pmh_FENCEDCODEBLOCK)); ;
  1962. #undef s
  1963. }
  1964. YY_ACTION(void) yy_1_Verbatim(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1965. {
  1966. #define s G->val[-1]
  1967. yyprintf((stderr, "do yy_1_Verbatim\n"));
  1968. ADD(elem_s(pmh_VERBATIM)); ;
  1969. #undef s
  1970. }
  1971. YY_ACTION(void) yy_5_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1972. {
  1973. #define a G->val[-1]
  1974. yyprintf((stderr, "do yy_5_BlockQuoteRaw\n"));
  1975. yy = a; ;
  1976. #undef a
  1977. }
  1978. YY_ACTION(void) yy_4_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1979. {
  1980. #define a G->val[-1]
  1981. yyprintf((stderr, "do yy_4_BlockQuoteRaw\n"));
  1982. a = cons(etext("\n"), a); ;
  1983. #undef a
  1984. }
  1985. YY_ACTION(void) yy_3_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1986. {
  1987. #define a G->val[-1]
  1988. yyprintf((stderr, "do yy_3_BlockQuoteRaw\n"));
  1989. a = cons(yy, a); ;
  1990. #undef a
  1991. }
  1992. YY_ACTION(void) yy_2_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  1993. {
  1994. #define a G->val[-1]
  1995. yyprintf((stderr, "do yy_2_BlockQuoteRaw\n"));
  1996. a = cons(yy, a); ;
  1997. #undef a
  1998. }
  1999. YY_ACTION(void) yy_1_BlockQuoteRaw(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2000. {
  2001. #define a G->val[-1]
  2002. yyprintf((stderr, "do yy_1_BlockQuoteRaw\n"));
  2003. ADD(elem(pmh_BLOCKQUOTE)); ;
  2004. #undef a
  2005. }
  2006. YY_ACTION(void) yy_1_BlockQuote(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2007. {
  2008. #define a G->val[-1]
  2009. yyprintf((stderr, "do yy_1_BlockQuote\n"));
  2010. pmh_realelement *rawlist = mk_element((parser_data *)G->data, pmh_RAW_LIST, 0,0);
  2011. rawlist->children = reverse(a);
  2012. ADD(rawlist);
  2013. ;
  2014. #undef a
  2015. }
  2016. YY_ACTION(void) yy_1_SetextHeading2(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2017. {
  2018. #define s G->val[-1]
  2019. yyprintf((stderr, "do yy_1_SetextHeading2\n"));
  2020. ADD(elem_s(pmh_H2)); ;
  2021. #undef s
  2022. }
  2023. YY_ACTION(void) yy_1_SetextHeading1(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2024. {
  2025. #define s G->val[-1]
  2026. yyprintf((stderr, "do yy_1_SetextHeading1\n"));
  2027. ADD(elem_s(pmh_H1)); ;
  2028. #undef s
  2029. }
  2030. YY_ACTION(void) yy_1_AtxHeading(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2031. {
  2032. #define s G->val[-1]
  2033. yyprintf((stderr, "do yy_1_AtxHeading\n"));
  2034. ADD(elem_s(s->type)); ;
  2035. #undef s
  2036. }
  2037. YY_ACTION(void) yy_1_AtxStart(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2038. {
  2039. yyprintf((stderr, "do yy_1_AtxStart\n"));
  2040. yy = elem((pmh_element_type)(pmh_H1 + (strlen(yytext) - 1))); ;
  2041. }
  2042. YY_ACTION(void) yy_1_FrontMatter(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2043. {
  2044. #define s G->val[-1]
  2045. yyprintf((stderr, "do yy_1_FrontMatter\n"));
  2046. ADD(elem(pmh_FRONTMATTER));
  2047. ;
  2048. #undef s
  2049. }
  2050. YY_ACTION(void) yy_1_LocMarker(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR)
  2051. {
  2052. yyprintf((stderr, "do yy_1_LocMarker\n"));
  2053. yy = elem(pmh_NO_TYPE); ;
  2054. }
  2055. YY_RULE(int) yy_RawNoteBlock(GREG *G)
  2056. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2057. yyprintf((stderr, "%s\n", "RawNoteBlock"));
  2058. { int yypos4= G->pos, yythunkpos4= G->thunkpos; if (!yy_BlankLine(G)) { goto l4; } goto l1;
  2059. l4:; G->pos= yypos4; G->thunkpos= yythunkpos4;
  2060. } if (!yy_OptionallyIndentedLine(G)) { goto l1; }
  2061. l2:;
  2062. { int yypos3= G->pos, yythunkpos3= G->thunkpos;
  2063. { int yypos5= G->pos, yythunkpos5= G->thunkpos; if (!yy_BlankLine(G)) { goto l5; } goto l3;
  2064. l5:; G->pos= yypos5; G->thunkpos= yythunkpos5;
  2065. } if (!yy_OptionallyIndentedLine(G)) { goto l3; } goto l2;
  2066. l3:; G->pos= yypos3; G->thunkpos= yythunkpos3;
  2067. }
  2068. l6:;
  2069. { int yypos7= G->pos, yythunkpos7= G->thunkpos; if (!yy_BlankLine(G)) { goto l7; } goto l6;
  2070. l7:; G->pos= yypos7; G->thunkpos= yythunkpos7;
  2071. }
  2072. yyprintf((stderr, " ok %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2073. return 1;
  2074. l1:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2075. yyprintf((stderr, " fail %s @ %s\n", "RawNoteBlock", G->buf+G->pos));
  2076. return 0;
  2077. }
  2078. YY_RULE(int) yy_RawNoteReference(GREG *G)
  2079. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2080. yyprintf((stderr, "%s\n", "RawNoteReference")); if (!yymatchString(G, "[^")) goto l8;
  2081. { int yypos11= G->pos, yythunkpos11= G->thunkpos; if (!yy_Newline(G)) { goto l11; } goto l8;
  2082. l11:; G->pos= yypos11; G->thunkpos= yythunkpos11;
  2083. }
  2084. { int yypos12= G->pos, yythunkpos12= G->thunkpos; if (!yymatchChar(G, ']')) goto l12; goto l8;
  2085. l12:; G->pos= yypos12; G->thunkpos= yythunkpos12;
  2086. } if (!yymatchDot(G)) goto l8;
  2087. l9:;
  2088. { int yypos10= G->pos, yythunkpos10= G->thunkpos;
  2089. { int yypos13= G->pos, yythunkpos13= G->thunkpos; if (!yy_Newline(G)) { goto l13; } goto l10;
  2090. l13:; G->pos= yypos13; G->thunkpos= yythunkpos13;
  2091. }
  2092. { int yypos14= G->pos, yythunkpos14= G->thunkpos; if (!yymatchChar(G, ']')) goto l14; goto l10;
  2093. l14:; G->pos= yypos14; G->thunkpos= yythunkpos14;
  2094. } if (!yymatchDot(G)) goto l10; goto l9;
  2095. l10:; G->pos= yypos10; G->thunkpos= yythunkpos10;
  2096. } if (!yymatchChar(G, ']')) goto l8;
  2097. yyprintf((stderr, " ok %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2098. return 1;
  2099. l8:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2100. yyprintf((stderr, " fail %s @ %s\n", "RawNoteReference", G->buf+G->pos));
  2101. return 0;
  2102. }
  2103. YY_RULE(int) yy_ExtendedSpecialChar(GREG *G)
  2104. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2105. yyprintf((stderr, "%s\n", "ExtendedSpecialChar"));
  2106. { int yypos16= G->pos, yythunkpos16= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l17; if (!yymatchChar(G, '^')) goto l17; goto l16;
  2107. l17:; G->pos= yypos16; G->thunkpos= yythunkpos16; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l18; if (!yymatchChar(G, '$')) goto l18; goto l16;
  2108. l18:; G->pos= yypos16; G->thunkpos= yythunkpos16; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_TABLE) )) goto l15; if (!yymatchChar(G, '|')) goto l15;
  2109. }
  2110. l16:;
  2111. yyprintf((stderr, " ok %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  2112. return 1;
  2113. l15:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2114. yyprintf((stderr, " fail %s @ %s\n", "ExtendedSpecialChar", G->buf+G->pos));
  2115. return 0;
  2116. }
  2117. YY_RULE(int) yy_AlphanumericAscii(GREG *G)
  2118. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2119. 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 l19;
  2120. yyprintf((stderr, " ok %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2121. return 1;
  2122. l19:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2123. yyprintf((stderr, " fail %s @ %s\n", "AlphanumericAscii", G->buf+G->pos));
  2124. return 0;
  2125. }
  2126. YY_RULE(int) yy_Quoted(GREG *G)
  2127. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2128. yyprintf((stderr, "%s\n", "Quoted"));
  2129. { int yypos21= G->pos, yythunkpos21= G->thunkpos; if (!yymatchChar(G, '"')) goto l22;
  2130. l23:;
  2131. { int yypos24= G->pos, yythunkpos24= G->thunkpos;
  2132. { int yypos25= G->pos, yythunkpos25= G->thunkpos; if (!yymatchChar(G, '"')) goto l25; goto l24;
  2133. l25:; G->pos= yypos25; G->thunkpos= yythunkpos25;
  2134. } if (!yymatchDot(G)) goto l24; goto l23;
  2135. l24:; G->pos= yypos24; G->thunkpos= yythunkpos24;
  2136. } if (!yymatchChar(G, '"')) goto l22; goto l21;
  2137. l22:; G->pos= yypos21; G->thunkpos= yythunkpos21; if (!yymatchChar(G, '\'')) goto l20;
  2138. l26:;
  2139. { int yypos27= G->pos, yythunkpos27= G->thunkpos;
  2140. { int yypos28= G->pos, yythunkpos28= G->thunkpos; if (!yymatchChar(G, '\'')) goto l28; goto l27;
  2141. l28:; G->pos= yypos28; G->thunkpos= yythunkpos28;
  2142. } if (!yymatchDot(G)) goto l27; goto l26;
  2143. l27:; G->pos= yypos27; G->thunkpos= yythunkpos27;
  2144. } if (!yymatchChar(G, '\'')) goto l20;
  2145. }
  2146. l21:;
  2147. yyprintf((stderr, " ok %s @ %s\n", "Quoted", G->buf+G->pos));
  2148. return 1;
  2149. l20:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2150. yyprintf((stderr, " fail %s @ %s\n", "Quoted", G->buf+G->pos));
  2151. return 0;
  2152. }
  2153. YY_RULE(int) yy_HtmlTag(GREG *G)
  2154. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2155. yyprintf((stderr, "%s\n", "HtmlTag")); if (!yymatchChar(G, '<')) goto l29; if (!yy_Spnl(G)) { goto l29; }
  2156. { int yypos30= G->pos, yythunkpos30= G->thunkpos; if (!yymatchChar(G, '/')) goto l30; goto l31;
  2157. l30:; G->pos= yypos30; G->thunkpos= yythunkpos30;
  2158. }
  2159. l31:; if (!yy_AlphanumericAscii(G)) { goto l29; }
  2160. l32:;
  2161. { int yypos33= G->pos, yythunkpos33= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l33; } goto l32;
  2162. l33:; G->pos= yypos33; G->thunkpos= yythunkpos33;
  2163. } if (!yy_Spnl(G)) { goto l29; }
  2164. l34:;
  2165. { int yypos35= G->pos, yythunkpos35= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l35; } goto l34;
  2166. l35:; G->pos= yypos35; G->thunkpos= yythunkpos35;
  2167. }
  2168. { int yypos36= G->pos, yythunkpos36= G->thunkpos; if (!yymatchChar(G, '/')) goto l36; goto l37;
  2169. l36:; G->pos= yypos36; G->thunkpos= yythunkpos36;
  2170. }
  2171. l37:; if (!yy_Spnl(G)) { goto l29; } if (!yymatchChar(G, '>')) goto l29;
  2172. yyprintf((stderr, " ok %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2173. return 1;
  2174. l29:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2175. yyprintf((stderr, " fail %s @ %s\n", "HtmlTag", G->buf+G->pos));
  2176. return 0;
  2177. }
  2178. YY_RULE(int) yy_MarkTagClose(GREG *G)
  2179. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2180. yyprintf((stderr, "%s\n", "MarkTagClose")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l38; if (!yy_LocMarker(G)) { goto l38; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '<')) goto l38; if (!yy_Spnl(G)) { goto l38; } if (!yymatchChar(G, '/')) goto l38;
  2181. { int yypos39= G->pos, yythunkpos39= G->thunkpos; if (!yymatchString(G, "mark")) goto l40; goto l39;
  2182. l40:; G->pos= yypos39; G->thunkpos= yythunkpos39; if (!yymatchString(G, "MARK")) goto l38;
  2183. }
  2184. l39:; if (!yy_Spnl(G)) { goto l38; } if (!yymatchChar(G, '>')) goto l38; yyText(G, G->begin, G->end); if (!(YY_END)) goto l38; yyDo(G, yy_1_MarkTagClose, G->begin, G->end);
  2185. yyprintf((stderr, " ok %s @ %s\n", "MarkTagClose", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2186. return 1;
  2187. l38:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2188. yyprintf((stderr, " fail %s @ %s\n", "MarkTagClose", G->buf+G->pos));
  2189. return 0;
  2190. }
  2191. YY_RULE(int) yy_MarkTagText(GREG *G)
  2192. {
  2193. yyprintf((stderr, "%s\n", "MarkTagText"));
  2194. l42:;
  2195. { int yypos43= G->pos, yythunkpos43= G->thunkpos;
  2196. { int yypos44= G->pos, yythunkpos44= G->thunkpos; if (!yy_MarkTagClose(G)) { goto l44; } goto l43;
  2197. l44:; G->pos= yypos44; G->thunkpos= yythunkpos44;
  2198. }
  2199. { int yypos45= G->pos, yythunkpos45= G->thunkpos; if (!yy_RawHtml(G)) { goto l46; } goto l45;
  2200. l46:; G->pos= yypos45; G->thunkpos= yythunkpos45; if (!yymatchDot(G)) goto l43;
  2201. }
  2202. l45:; goto l42;
  2203. l43:; G->pos= yypos43; G->thunkpos= yythunkpos43;
  2204. }
  2205. yyprintf((stderr, " ok %s @ %s\n", "MarkTagText", G->buf+G->pos));
  2206. return 1;
  2207. }
  2208. YY_RULE(int) yy_MarkTagOpen(GREG *G)
  2209. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2210. yyprintf((stderr, "%s\n", "MarkTagOpen")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l47; if (!yy_LocMarker(G)) { goto l47; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '<')) goto l47; if (!yy_Spnl(G)) { goto l47; }
  2211. { int yypos48= G->pos, yythunkpos48= G->thunkpos; if (!yymatchString(G, "mark")) goto l49; goto l48;
  2212. l49:; G->pos= yypos48; G->thunkpos= yythunkpos48; if (!yymatchString(G, "MARK")) goto l47;
  2213. }
  2214. l48:; if (!yy_Spnl(G)) { goto l47; }
  2215. l50:;
  2216. { int yypos51= G->pos, yythunkpos51= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l51; } goto l50;
  2217. l51:; G->pos= yypos51; G->thunkpos= yythunkpos51;
  2218. } if (!yymatchChar(G, '>')) goto l47; yyText(G, G->begin, G->end); if (!(YY_END)) goto l47; yyDo(G, yy_1_MarkTagOpen, G->begin, G->end);
  2219. yyprintf((stderr, " ok %s @ %s\n", "MarkTagOpen", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2220. return 1;
  2221. l47:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2222. yyprintf((stderr, " fail %s @ %s\n", "MarkTagOpen", G->buf+G->pos));
  2223. return 0;
  2224. }
  2225. YY_RULE(int) yy_Ticks5(GREG *G)
  2226. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2227. yyprintf((stderr, "%s\n", "Ticks5")); 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;
  2228. { int yypos53= G->pos, yythunkpos53= G->thunkpos; if (!yymatchChar(G, '`')) goto l53; goto l52;
  2229. l53:; G->pos= yypos53; G->thunkpos= yythunkpos53;
  2230. } yyDo(G, yy_1_Ticks5, G->begin, G->end);
  2231. yyprintf((stderr, " ok %s @ %s\n", "Ticks5", G->buf+G->pos));
  2232. return 1;
  2233. l52:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2234. yyprintf((stderr, " fail %s @ %s\n", "Ticks5", G->buf+G->pos));
  2235. return 0;
  2236. }
  2237. YY_RULE(int) yy_Ticks4(GREG *G)
  2238. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2239. yyprintf((stderr, "%s\n", "Ticks4")); 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;
  2240. { int yypos55= G->pos, yythunkpos55= G->thunkpos; if (!yymatchChar(G, '`')) goto l55; goto l54;
  2241. l55:; G->pos= yypos55; G->thunkpos= yythunkpos55;
  2242. } yyDo(G, yy_1_Ticks4, G->begin, G->end);
  2243. yyprintf((stderr, " ok %s @ %s\n", "Ticks4", G->buf+G->pos));
  2244. return 1;
  2245. l54:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2246. yyprintf((stderr, " fail %s @ %s\n", "Ticks4", G->buf+G->pos));
  2247. return 0;
  2248. }
  2249. YY_RULE(int) yy_Ticks3(GREG *G)
  2250. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2251. yyprintf((stderr, "%s\n", "Ticks3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l56; if (!yymatchString(G, "```")) goto l56; yyText(G, G->begin, G->end); if (!(YY_END)) goto l56;
  2252. { int yypos57= G->pos, yythunkpos57= G->thunkpos; if (!yymatchChar(G, '`')) goto l57; goto l56;
  2253. l57:; G->pos= yypos57; G->thunkpos= yythunkpos57;
  2254. } yyDo(G, yy_1_Ticks3, G->begin, G->end);
  2255. yyprintf((stderr, " ok %s @ %s\n", "Ticks3", G->buf+G->pos));
  2256. return 1;
  2257. l56:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2258. yyprintf((stderr, " fail %s @ %s\n", "Ticks3", G->buf+G->pos));
  2259. return 0;
  2260. }
  2261. YY_RULE(int) yy_Ticks2(GREG *G)
  2262. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2263. yyprintf((stderr, "%s\n", "Ticks2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l58; if (!yymatchString(G, "``")) goto l58; yyText(G, G->begin, G->end); if (!(YY_END)) goto l58;
  2264. { int yypos59= G->pos, yythunkpos59= G->thunkpos; if (!yymatchChar(G, '`')) goto l59; goto l58;
  2265. l59:; G->pos= yypos59; G->thunkpos= yythunkpos59;
  2266. } yyDo(G, yy_1_Ticks2, G->begin, G->end);
  2267. yyprintf((stderr, " ok %s @ %s\n", "Ticks2", G->buf+G->pos));
  2268. return 1;
  2269. l58:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2270. yyprintf((stderr, " fail %s @ %s\n", "Ticks2", G->buf+G->pos));
  2271. return 0;
  2272. }
  2273. YY_RULE(int) yy_Ticks1(GREG *G)
  2274. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2275. yyprintf((stderr, "%s\n", "Ticks1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l60; if (!yymatchChar(G, '`')) goto l60; yyText(G, G->begin, G->end); if (!(YY_END)) goto l60;
  2276. { int yypos61= G->pos, yythunkpos61= G->thunkpos; if (!yymatchChar(G, '`')) goto l61; goto l60;
  2277. l61:; G->pos= yypos61; G->thunkpos= yythunkpos61;
  2278. } yyDo(G, yy_1_Ticks1, G->begin, G->end);
  2279. yyprintf((stderr, " ok %s @ %s\n", "Ticks1", G->buf+G->pos));
  2280. return 1;
  2281. l60:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2282. yyprintf((stderr, " fail %s @ %s\n", "Ticks1", G->buf+G->pos));
  2283. return 0;
  2284. }
  2285. YY_RULE(int) yy_SkipBlock(GREG *G)
  2286. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2287. yyprintf((stderr, "%s\n", "SkipBlock"));
  2288. { int yypos63= G->pos, yythunkpos63= G->thunkpos;
  2289. { int yypos67= G->pos, yythunkpos67= G->thunkpos; if (!yy_BlankLine(G)) { goto l67; } goto l64;
  2290. l67:; G->pos= yypos67; G->thunkpos= yythunkpos67;
  2291. } if (!yy_RawLine(G)) { goto l64; }
  2292. l65:;
  2293. { int yypos66= G->pos, yythunkpos66= G->thunkpos;
  2294. { int yypos68= G->pos, yythunkpos68= G->thunkpos; if (!yy_BlankLine(G)) { goto l68; } goto l66;
  2295. l68:; G->pos= yypos68; G->thunkpos= yythunkpos68;
  2296. } if (!yy_RawLine(G)) { goto l66; } goto l65;
  2297. l66:; G->pos= yypos66; G->thunkpos= yythunkpos66;
  2298. }
  2299. l69:;
  2300. { int yypos70= G->pos, yythunkpos70= G->thunkpos; if (!yy_BlankLine(G)) { goto l70; } goto l69;
  2301. l70:; G->pos= yypos70; G->thunkpos= yythunkpos70;
  2302. } goto l63;
  2303. l64:; G->pos= yypos63; G->thunkpos= yythunkpos63; if (!yy_BlankLine(G)) { goto l62; }
  2304. l71:;
  2305. { int yypos72= G->pos, yythunkpos72= G->thunkpos; if (!yy_BlankLine(G)) { goto l72; } goto l71;
  2306. l72:; G->pos= yypos72; G->thunkpos= yythunkpos72;
  2307. }
  2308. }
  2309. l63:;
  2310. yyprintf((stderr, " ok %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2311. return 1;
  2312. l62:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2313. yyprintf((stderr, " fail %s @ %s\n", "SkipBlock", G->buf+G->pos));
  2314. return 0;
  2315. }
  2316. YY_RULE(int) yy_References(GREG *G)
  2317. {
  2318. yyprintf((stderr, "%s\n", "References"));
  2319. l74:;
  2320. { int yypos75= G->pos, yythunkpos75= G->thunkpos;
  2321. { int yypos76= G->pos, yythunkpos76= G->thunkpos; if (!yy_Reference(G)) { goto l77; } goto l76;
  2322. l77:; G->pos= yypos76; G->thunkpos= yythunkpos76; if (!yy_SkipBlock(G)) { goto l75; }
  2323. }
  2324. l76:; goto l74;
  2325. l75:; G->pos= yypos75; G->thunkpos= yythunkpos75;
  2326. }
  2327. yyprintf((stderr, " ok %s @ %s\n", "References", G->buf+G->pos));
  2328. return 1;
  2329. }
  2330. YY_RULE(int) yy_EmptyTitle(GREG *G)
  2331. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2332. yyprintf((stderr, "%s\n", "EmptyTitle")); if (!yymatchString(G, "")) goto l78;
  2333. yyprintf((stderr, " ok %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2334. return 1;
  2335. l78:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2336. yyprintf((stderr, " fail %s @ %s\n", "EmptyTitle", G->buf+G->pos));
  2337. return 0;
  2338. }
  2339. YY_RULE(int) yy_RefTitleParens(GREG *G)
  2340. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2341. yyprintf((stderr, "%s\n", "RefTitleParens")); if (!yy_Spnl(G)) { goto l79; } if (!yymatchChar(G, '(')) goto l79;
  2342. l80:;
  2343. { int yypos81= G->pos, yythunkpos81= G->thunkpos;
  2344. { int yypos82= G->pos, yythunkpos82= G->thunkpos;
  2345. { int yypos83= G->pos, yythunkpos83= G->thunkpos; if (!yymatchChar(G, ')')) goto l84; if (!yy_Sp(G)) { goto l84; } if (!yy_Newline(G)) { goto l84; } goto l83;
  2346. l84:; G->pos= yypos83; G->thunkpos= yythunkpos83; if (!yy_Newline(G)) { goto l82; }
  2347. }
  2348. l83:; goto l81;
  2349. l82:; G->pos= yypos82; G->thunkpos= yythunkpos82;
  2350. } if (!yymatchDot(G)) goto l81; goto l80;
  2351. l81:; G->pos= yypos81; G->thunkpos= yythunkpos81;
  2352. } if (!yymatchChar(G, ')')) goto l79;
  2353. yyprintf((stderr, " ok %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2354. return 1;
  2355. l79:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2356. yyprintf((stderr, " fail %s @ %s\n", "RefTitleParens", G->buf+G->pos));
  2357. return 0;
  2358. }
  2359. YY_RULE(int) yy_RefTitleDouble(GREG *G)
  2360. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2361. yyprintf((stderr, "%s\n", "RefTitleDouble")); if (!yy_Spnl(G)) { goto l85; } if (!yymatchChar(G, '"')) goto l85;
  2362. l86:;
  2363. { int yypos87= G->pos, yythunkpos87= G->thunkpos;
  2364. { int yypos88= G->pos, yythunkpos88= G->thunkpos;
  2365. { int yypos89= G->pos, yythunkpos89= G->thunkpos; if (!yymatchChar(G, '"')) goto l90; if (!yy_Sp(G)) { goto l90; } if (!yy_Newline(G)) { goto l90; } goto l89;
  2366. l90:; G->pos= yypos89; G->thunkpos= yythunkpos89; if (!yy_Newline(G)) { goto l88; }
  2367. }
  2368. l89:; goto l87;
  2369. l88:; G->pos= yypos88; G->thunkpos= yythunkpos88;
  2370. } if (!yymatchDot(G)) goto l87; goto l86;
  2371. l87:; G->pos= yypos87; G->thunkpos= yythunkpos87;
  2372. } if (!yymatchChar(G, '"')) goto l85;
  2373. yyprintf((stderr, " ok %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2374. return 1;
  2375. l85:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2376. yyprintf((stderr, " fail %s @ %s\n", "RefTitleDouble", G->buf+G->pos));
  2377. return 0;
  2378. }
  2379. YY_RULE(int) yy_RefTitleSingle(GREG *G)
  2380. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2381. yyprintf((stderr, "%s\n", "RefTitleSingle")); if (!yy_Spnl(G)) { goto l91; } if (!yymatchChar(G, '\'')) goto l91;
  2382. l92:;
  2383. { int yypos93= G->pos, yythunkpos93= G->thunkpos;
  2384. { int yypos94= G->pos, yythunkpos94= G->thunkpos;
  2385. { int yypos95= G->pos, yythunkpos95= G->thunkpos; if (!yymatchChar(G, '\'')) goto l96; if (!yy_Sp(G)) { goto l96; } if (!yy_Newline(G)) { goto l96; } goto l95;
  2386. l96:; G->pos= yypos95; G->thunkpos= yythunkpos95; if (!yy_Newline(G)) { goto l94; }
  2387. }
  2388. l95:; goto l93;
  2389. l94:; G->pos= yypos94; G->thunkpos= yythunkpos94;
  2390. } if (!yymatchDot(G)) goto l93; goto l92;
  2391. l93:; G->pos= yypos93; G->thunkpos= yythunkpos93;
  2392. } if (!yymatchChar(G, '\'')) goto l91;
  2393. yyprintf((stderr, " ok %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2394. return 1;
  2395. l91:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2396. yyprintf((stderr, " fail %s @ %s\n", "RefTitleSingle", G->buf+G->pos));
  2397. return 0;
  2398. }
  2399. YY_RULE(int) yy_LabelInline(GREG *G)
  2400. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2401. yyprintf((stderr, "%s\n", "LabelInline"));
  2402. { int yypos98= G->pos, yythunkpos98= G->thunkpos; if (!yy_Str(G)) { goto l99; } goto l98;
  2403. l99:; G->pos= yypos98; G->thunkpos= yythunkpos98; if (!yy_Endline(G)) { goto l100; } goto l98;
  2404. l100:; G->pos= yypos98; G->thunkpos= yythunkpos98; if (!yy_Space(G)) { goto l101; } goto l98;
  2405. l101:; G->pos= yypos98; G->thunkpos= yythunkpos98; if (!yy_RawHtml(G)) { goto l102; } goto l98;
  2406. l102:; G->pos= yypos98; G->thunkpos= yythunkpos98; if (!yy_Entity(G)) { goto l103; } goto l98;
  2407. l103:; G->pos= yypos98; G->thunkpos= yythunkpos98; if (!yy_EscapedChar(G)) { goto l104; } goto l98;
  2408. l104:; G->pos= yypos98; G->thunkpos= yythunkpos98; if (!yy_Symbol(G)) { goto l97; }
  2409. }
  2410. l98:;
  2411. yyprintf((stderr, " ok %s @ %s\n", "LabelInline", G->buf+G->pos));
  2412. return 1;
  2413. l97:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2414. yyprintf((stderr, " fail %s @ %s\n", "LabelInline", G->buf+G->pos));
  2415. return 0;
  2416. }
  2417. YY_RULE(int) yy_RefTitle(GREG *G)
  2418. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2419. yyprintf((stderr, "%s\n", "RefTitle"));
  2420. { int yypos106= G->pos, yythunkpos106= G->thunkpos; if (!yy_RefTitleSingle(G)) { goto l107; } goto l106;
  2421. l107:; G->pos= yypos106; G->thunkpos= yythunkpos106; if (!yy_RefTitleDouble(G)) { goto l108; } goto l106;
  2422. l108:; G->pos= yypos106; G->thunkpos= yythunkpos106; if (!yy_RefTitleParens(G)) { goto l109; } goto l106;
  2423. l109:; G->pos= yypos106; G->thunkpos= yythunkpos106; if (!yy_EmptyTitle(G)) { goto l105; }
  2424. }
  2425. l106:;
  2426. yyprintf((stderr, " ok %s @ %s\n", "RefTitle", G->buf+G->pos));
  2427. return 1;
  2428. l105:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2429. yyprintf((stderr, " fail %s @ %s\n", "RefTitle", G->buf+G->pos));
  2430. return 0;
  2431. }
  2432. YY_RULE(int) yy_RefSrc(GREG *G)
  2433. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2434. yyprintf((stderr, "%s\n", "RefSrc")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l110; if (!yy_Nonspacechar(G)) { goto l110; }
  2435. l111:;
  2436. { int yypos112= G->pos, yythunkpos112= G->thunkpos; if (!yy_Nonspacechar(G)) { goto l112; } goto l111;
  2437. l112:; G->pos= yypos112; G->thunkpos= yythunkpos112;
  2438. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l110; yyDo(G, yy_1_RefSrc, G->begin, G->end);
  2439. yyprintf((stderr, " ok %s @ %s\n", "RefSrc", G->buf+G->pos));
  2440. return 1;
  2441. l110:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2442. yyprintf((stderr, " fail %s @ %s\n", "RefSrc", G->buf+G->pos));
  2443. return 0;
  2444. }
  2445. YY_RULE(int) yy_AutoLinkEmail(GREG *G)
  2446. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2447. yyprintf((stderr, "%s\n", "AutoLinkEmail")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l113; if (!yy_LocMarker(G)) { goto l113; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '<')) goto l113;
  2448. { int yypos114= G->pos, yythunkpos114= G->thunkpos; if (!yymatchString(G, "mailto:")) goto l114; goto l115;
  2449. l114:; G->pos= yypos114; G->thunkpos= yythunkpos114;
  2450. }
  2451. l115:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l113; 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;
  2452. l116:;
  2453. { int yypos117= G->pos, yythunkpos117= 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 l117; goto l116;
  2454. l117:; G->pos= yypos117; G->thunkpos= yythunkpos117;
  2455. } if (!yymatchChar(G, '@')) goto l113;
  2456. { int yypos120= G->pos, yythunkpos120= G->thunkpos; if (!yy_Newline(G)) { goto l120; } goto l113;
  2457. l120:; G->pos= yypos120; G->thunkpos= yythunkpos120;
  2458. }
  2459. { int yypos121= G->pos, yythunkpos121= G->thunkpos; if (!yymatchChar(G, '>')) goto l121; goto l113;
  2460. l121:; G->pos= yypos121; G->thunkpos= yythunkpos121;
  2461. } if (!yymatchDot(G)) goto l113;
  2462. l118:;
  2463. { int yypos119= G->pos, yythunkpos119= G->thunkpos;
  2464. { int yypos122= G->pos, yythunkpos122= G->thunkpos; if (!yy_Newline(G)) { goto l122; } goto l119;
  2465. l122:; G->pos= yypos122; G->thunkpos= yythunkpos122;
  2466. }
  2467. { int yypos123= G->pos, yythunkpos123= G->thunkpos; if (!yymatchChar(G, '>')) goto l123; goto l119;
  2468. l123:; G->pos= yypos123; G->thunkpos= yythunkpos123;
  2469. } if (!yymatchDot(G)) goto l119; goto l118;
  2470. l119:; G->pos= yypos119; G->thunkpos= yythunkpos119;
  2471. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l113; yyDo(G, yy_2_AutoLinkEmail, G->begin, G->end); if (!yymatchChar(G, '>')) goto l113; yyText(G, G->begin, G->end); if (!(YY_END)) goto l113; yyDo(G, yy_3_AutoLinkEmail, G->begin, G->end);
  2472. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkEmail", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2473. return 1;
  2474. l113:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2475. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkEmail", G->buf+G->pos));
  2476. return 0;
  2477. }
  2478. YY_RULE(int) yy_AutoLinkUrl(GREG *G)
  2479. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2480. yyprintf((stderr, "%s\n", "AutoLinkUrl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l124; if (!yy_LocMarker(G)) { goto l124; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '<')) goto l124; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l124; 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 l124;
  2481. l125:;
  2482. { int yypos126= G->pos, yythunkpos126= 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 l126; goto l125;
  2483. l126:; G->pos= yypos126; G->thunkpos= yythunkpos126;
  2484. } if (!yymatchString(G, "://")) goto l124;
  2485. { int yypos129= G->pos, yythunkpos129= G->thunkpos; if (!yy_Newline(G)) { goto l129; } goto l124;
  2486. l129:; G->pos= yypos129; G->thunkpos= yythunkpos129;
  2487. }
  2488. { int yypos130= G->pos, yythunkpos130= G->thunkpos; if (!yymatchChar(G, '>')) goto l130; goto l124;
  2489. l130:; G->pos= yypos130; G->thunkpos= yythunkpos130;
  2490. } if (!yymatchDot(G)) goto l124;
  2491. l127:;
  2492. { int yypos128= G->pos, yythunkpos128= G->thunkpos;
  2493. { int yypos131= G->pos, yythunkpos131= G->thunkpos; if (!yy_Newline(G)) { goto l131; } goto l128;
  2494. l131:; G->pos= yypos131; G->thunkpos= yythunkpos131;
  2495. }
  2496. { int yypos132= G->pos, yythunkpos132= G->thunkpos; if (!yymatchChar(G, '>')) goto l132; goto l128;
  2497. l132:; G->pos= yypos132; G->thunkpos= yythunkpos132;
  2498. } if (!yymatchDot(G)) goto l128; goto l127;
  2499. l128:; G->pos= yypos128; G->thunkpos= yythunkpos128;
  2500. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l124; yyDo(G, yy_2_AutoLinkUrl, G->begin, G->end); if (!yymatchChar(G, '>')) goto l124; yyText(G, G->begin, G->end); if (!(YY_END)) goto l124; yyDo(G, yy_3_AutoLinkUrl, G->begin, G->end);
  2501. yyprintf((stderr, " ok %s @ %s\n", "AutoLinkUrl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2502. return 1;
  2503. l124:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2504. yyprintf((stderr, " fail %s @ %s\n", "AutoLinkUrl", G->buf+G->pos));
  2505. return 0;
  2506. }
  2507. YY_RULE(int) yy_ImageSizeHeight(GREG *G)
  2508. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2509. yyprintf((stderr, "%s\n", "ImageSizeHeight")); if (!yymatchString(G, "=x")) goto l133; 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 l133;
  2510. l134:;
  2511. { int yypos135= G->pos, yythunkpos135= 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 l135; goto l134;
  2512. l135:; G->pos= yypos135; G->thunkpos= yythunkpos135;
  2513. }
  2514. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2515. return 1;
  2516. l133:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2517. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeHeight", G->buf+G->pos));
  2518. return 0;
  2519. }
  2520. YY_RULE(int) yy_ImageSizeWidth(GREG *G)
  2521. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2522. yyprintf((stderr, "%s\n", "ImageSizeWidth")); if (!yymatchChar(G, '=')) goto l136; 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 l136;
  2523. l137:;
  2524. { int yypos138= G->pos, yythunkpos138= 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 l138; goto l137;
  2525. l138:; G->pos= yypos138; G->thunkpos= yythunkpos138;
  2526. } if (!yymatchChar(G, 'x')) goto l136;
  2527. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2528. return 1;
  2529. l136:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2530. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeWidth", G->buf+G->pos));
  2531. return 0;
  2532. }
  2533. YY_RULE(int) yy_ImageSizeComplete(GREG *G)
  2534. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2535. yyprintf((stderr, "%s\n", "ImageSizeComplete")); if (!yymatchChar(G, '=')) goto l139; 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;
  2536. l140:;
  2537. { int yypos141= G->pos, yythunkpos141= 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 l141; goto l140;
  2538. l141:; G->pos= yypos141; G->thunkpos= yythunkpos141;
  2539. } if (!yymatchChar(G, 'x')) goto l139; 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;
  2540. l142:;
  2541. { int yypos143= G->pos, yythunkpos143= 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 l143; goto l142;
  2542. l143:; G->pos= yypos143; G->thunkpos= yythunkpos143;
  2543. }
  2544. yyprintf((stderr, " ok %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2545. return 1;
  2546. l139:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2547. yyprintf((stderr, " fail %s @ %s\n", "ImageSizeComplete", G->buf+G->pos));
  2548. return 0;
  2549. }
  2550. YY_RULE(int) yy_TitleDoubleExt(GREG *G)
  2551. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2552. yyprintf((stderr, "%s\n", "TitleDoubleExt")); if (!yymatchChar(G, '"')) goto l144;
  2553. l145:;
  2554. { int yypos146= G->pos, yythunkpos146= G->thunkpos;
  2555. { int yypos147= G->pos, yythunkpos147= G->thunkpos;
  2556. { int yypos148= G->pos, yythunkpos148= G->thunkpos; if (!yymatchChar(G, '"')) goto l149; goto l148;
  2557. l149:; G->pos= yypos148; G->thunkpos= yythunkpos148; if (!yy_Newline(G)) { goto l147; }
  2558. }
  2559. l148:; goto l146;
  2560. l147:; G->pos= yypos147; G->thunkpos= yythunkpos147;
  2561. } if (!yymatchDot(G)) goto l146; goto l145;
  2562. l146:; G->pos= yypos146; G->thunkpos= yythunkpos146;
  2563. } if (!yymatchChar(G, '"')) goto l144;
  2564. yyprintf((stderr, " ok %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2565. return 1;
  2566. l144:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2567. yyprintf((stderr, " fail %s @ %s\n", "TitleDoubleExt", G->buf+G->pos));
  2568. return 0;
  2569. }
  2570. YY_RULE(int) yy_TitleSingleExt(GREG *G)
  2571. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2572. yyprintf((stderr, "%s\n", "TitleSingleExt")); if (!yymatchChar(G, '\'')) goto l150;
  2573. l151:;
  2574. { int yypos152= G->pos, yythunkpos152= G->thunkpos;
  2575. { int yypos153= G->pos, yythunkpos153= G->thunkpos;
  2576. { int yypos154= G->pos, yythunkpos154= G->thunkpos; if (!yymatchChar(G, '\'')) goto l155; goto l154;
  2577. l155:; G->pos= yypos154; G->thunkpos= yythunkpos154; if (!yy_Newline(G)) { goto l153; }
  2578. }
  2579. l154:; goto l152;
  2580. l153:; G->pos= yypos153; G->thunkpos= yythunkpos153;
  2581. } if (!yymatchDot(G)) goto l152; goto l151;
  2582. l152:; G->pos= yypos152; G->thunkpos= yythunkpos152;
  2583. } if (!yymatchChar(G, '\'')) goto l150;
  2584. yyprintf((stderr, " ok %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2585. return 1;
  2586. l150:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2587. yyprintf((stderr, " fail %s @ %s\n", "TitleSingleExt", G->buf+G->pos));
  2588. return 0;
  2589. }
  2590. YY_RULE(int) yy_TitleDouble(GREG *G)
  2591. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2592. yyprintf((stderr, "%s\n", "TitleDouble")); if (!yymatchChar(G, '"')) goto l156;
  2593. l157:;
  2594. { int yypos158= G->pos, yythunkpos158= G->thunkpos;
  2595. { int yypos159= G->pos, yythunkpos159= G->thunkpos; if (!yymatchChar(G, '"')) goto l159; if (!yy_Sp(G)) { goto l159; }
  2596. { int yypos160= G->pos, yythunkpos160= G->thunkpos; if (!yymatchChar(G, ')')) goto l161; goto l160;
  2597. l161:; G->pos= yypos160; G->thunkpos= yythunkpos160; if (!yy_Newline(G)) { goto l159; }
  2598. }
  2599. l160:; goto l158;
  2600. l159:; G->pos= yypos159; G->thunkpos= yythunkpos159;
  2601. } if (!yymatchDot(G)) goto l158; goto l157;
  2602. l158:; G->pos= yypos158; G->thunkpos= yythunkpos158;
  2603. } if (!yymatchChar(G, '"')) goto l156;
  2604. yyprintf((stderr, " ok %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2605. return 1;
  2606. l156:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2607. yyprintf((stderr, " fail %s @ %s\n", "TitleDouble", G->buf+G->pos));
  2608. return 0;
  2609. }
  2610. YY_RULE(int) yy_TitleSingle(GREG *G)
  2611. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2612. yyprintf((stderr, "%s\n", "TitleSingle")); if (!yymatchChar(G, '\'')) goto l162;
  2613. l163:;
  2614. { int yypos164= G->pos, yythunkpos164= G->thunkpos;
  2615. { int yypos165= G->pos, yythunkpos165= G->thunkpos; if (!yymatchChar(G, '\'')) goto l165; if (!yy_Sp(G)) { goto l165; }
  2616. { int yypos166= G->pos, yythunkpos166= G->thunkpos; if (!yymatchChar(G, ')')) goto l167; goto l166;
  2617. l167:; G->pos= yypos166; G->thunkpos= yythunkpos166; if (!yy_Newline(G)) { goto l165; }
  2618. }
  2619. l166:; goto l164;
  2620. l165:; G->pos= yypos165; G->thunkpos= yythunkpos165;
  2621. } if (!yymatchDot(G)) goto l164; goto l163;
  2622. l164:; G->pos= yypos164; G->thunkpos= yythunkpos164;
  2623. } if (!yymatchChar(G, '\'')) goto l162;
  2624. yyprintf((stderr, " ok %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2625. return 1;
  2626. l162:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2627. yyprintf((stderr, " fail %s @ %s\n", "TitleSingle", G->buf+G->pos));
  2628. return 0;
  2629. }
  2630. YY_RULE(int) yy_SourceContents(GREG *G)
  2631. {
  2632. yyprintf((stderr, "%s\n", "SourceContents"));
  2633. l169:;
  2634. { int yypos170= G->pos, yythunkpos170= G->thunkpos;
  2635. { int yypos171= G->pos, yythunkpos171= G->thunkpos;
  2636. { int yypos175= G->pos, yythunkpos175= G->thunkpos; if (!yymatchChar(G, '(')) goto l175; goto l172;
  2637. l175:; G->pos= yypos175; G->thunkpos= yythunkpos175;
  2638. }
  2639. { int yypos176= G->pos, yythunkpos176= G->thunkpos; if (!yymatchChar(G, ')')) goto l176; goto l172;
  2640. l176:; G->pos= yypos176; G->thunkpos= yythunkpos176;
  2641. }
  2642. { int yypos177= G->pos, yythunkpos177= G->thunkpos; if (!yymatchChar(G, '>')) goto l177; goto l172;
  2643. l177:; G->pos= yypos177; G->thunkpos= yythunkpos177;
  2644. } if (!yy_Nonspacechar(G)) { goto l172; }
  2645. l173:;
  2646. { int yypos174= G->pos, yythunkpos174= G->thunkpos;
  2647. { int yypos178= G->pos, yythunkpos178= G->thunkpos; if (!yymatchChar(G, '(')) goto l178; goto l174;
  2648. l178:; G->pos= yypos178; G->thunkpos= yythunkpos178;
  2649. }
  2650. { int yypos179= G->pos, yythunkpos179= G->thunkpos; if (!yymatchChar(G, ')')) goto l179; goto l174;
  2651. l179:; G->pos= yypos179; G->thunkpos= yythunkpos179;
  2652. }
  2653. { int yypos180= G->pos, yythunkpos180= G->thunkpos; if (!yymatchChar(G, '>')) goto l180; goto l174;
  2654. l180:; G->pos= yypos180; G->thunkpos= yythunkpos180;
  2655. } if (!yy_Nonspacechar(G)) { goto l174; } goto l173;
  2656. l174:; G->pos= yypos174; G->thunkpos= yythunkpos174;
  2657. } goto l171;
  2658. l172:; G->pos= yypos171; G->thunkpos= yythunkpos171; if (!yymatchChar(G, '(')) goto l170; if (!yy_SourceContents(G)) { goto l170; } if (!yymatchChar(G, ')')) goto l170;
  2659. }
  2660. l171:; goto l169;
  2661. l170:; G->pos= yypos170; G->thunkpos= yythunkpos170;
  2662. }
  2663. yyprintf((stderr, " ok %s @ %s\n", "SourceContents", G->buf+G->pos));
  2664. return 1;
  2665. }
  2666. YY_RULE(int) yy_ImageSize(GREG *G)
  2667. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2668. yyprintf((stderr, "%s\n", "ImageSize"));
  2669. { int yypos182= G->pos, yythunkpos182= G->thunkpos; if (!yy_ImageSizeComplete(G)) { goto l183; } goto l182;
  2670. l183:; G->pos= yypos182; G->thunkpos= yythunkpos182; if (!yy_ImageSizeWidth(G)) { goto l184; } goto l182;
  2671. l184:; G->pos= yypos182; G->thunkpos= yythunkpos182; if (!yy_ImageSizeHeight(G)) { goto l185; } goto l182;
  2672. l185:; G->pos= yypos182; G->thunkpos= yythunkpos182; if (!yymatchString(G, "")) goto l181;
  2673. }
  2674. l182:;
  2675. yyprintf((stderr, " ok %s @ %s\n", "ImageSize", G->buf+G->pos));
  2676. return 1;
  2677. l181:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2678. yyprintf((stderr, " fail %s @ %s\n", "ImageSize", G->buf+G->pos));
  2679. return 0;
  2680. }
  2681. YY_RULE(int) yy_TitleExt(GREG *G)
  2682. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2683. yyprintf((stderr, "%s\n", "TitleExt"));
  2684. { int yypos187= G->pos, yythunkpos187= G->thunkpos; if (!yy_TitleSingleExt(G)) { goto l188; } goto l187;
  2685. l188:; G->pos= yypos187; G->thunkpos= yythunkpos187; if (!yy_TitleDoubleExt(G)) { goto l189; } goto l187;
  2686. l189:; G->pos= yypos187; G->thunkpos= yythunkpos187; if (!yymatchString(G, "")) goto l186;
  2687. }
  2688. l187:;
  2689. yyprintf((stderr, " ok %s @ %s\n", "TitleExt", G->buf+G->pos));
  2690. return 1;
  2691. l186:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2692. yyprintf((stderr, " fail %s @ %s\n", "TitleExt", G->buf+G->pos));
  2693. return 0;
  2694. }
  2695. YY_RULE(int) yy_Title(GREG *G)
  2696. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2697. yyprintf((stderr, "%s\n", "Title"));
  2698. { int yypos191= G->pos, yythunkpos191= G->thunkpos; if (!yy_TitleSingle(G)) { goto l192; } goto l191;
  2699. l192:; G->pos= yypos191; G->thunkpos= yythunkpos191; if (!yy_TitleDouble(G)) { goto l193; } goto l191;
  2700. l193:; G->pos= yypos191; G->thunkpos= yythunkpos191; if (!yymatchString(G, "")) goto l190;
  2701. }
  2702. l191:;
  2703. yyprintf((stderr, " ok %s @ %s\n", "Title", G->buf+G->pos));
  2704. return 1;
  2705. l190:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2706. yyprintf((stderr, " fail %s @ %s\n", "Title", G->buf+G->pos));
  2707. return 0;
  2708. }
  2709. YY_RULE(int) yy_Source(GREG *G)
  2710. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2711. yyprintf((stderr, "%s\n", "Source")); yyDo(G, yy_1_Source, G->begin, G->end);
  2712. { int yypos195= G->pos, yythunkpos195= G->thunkpos; if (!yymatchChar(G, '<')) goto l196; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l196; if (!yy_SourceContents(G)) { goto l196; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l196; yyDo(G, yy_2_Source, G->begin, G->end); if (!yymatchChar(G, '>')) goto l196; goto l195;
  2713. l196:; G->pos= yypos195; G->thunkpos= yythunkpos195; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l194; if (!yy_SourceContents(G)) { goto l194; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l194; yyDo(G, yy_3_Source, G->begin, G->end);
  2714. }
  2715. l195:;
  2716. yyprintf((stderr, " ok %s @ %s\n", "Source", G->buf+G->pos));
  2717. return 1;
  2718. l194:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2719. yyprintf((stderr, " fail %s @ %s\n", "Source", G->buf+G->pos));
  2720. return 0;
  2721. }
  2722. YY_RULE(int) yy_Label(GREG *G)
  2723. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2724. yyprintf((stderr, "%s\n", "Label")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l197; if (!yy_LocMarker(G)) { goto l197; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '[')) goto l197;
  2725. { int yypos198= G->pos, yythunkpos198= G->thunkpos;
  2726. { int yypos200= G->pos, yythunkpos200= G->thunkpos; if (!yymatchChar(G, '^')) goto l200; goto l199;
  2727. l200:; G->pos= yypos200; G->thunkpos= yythunkpos200;
  2728. } yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l199; goto l198;
  2729. l199:; G->pos= yypos198; G->thunkpos= yythunkpos198;
  2730. { int yypos201= G->pos, yythunkpos201= G->thunkpos; if (!yymatchDot(G)) goto l197; G->pos= yypos201; G->thunkpos= yythunkpos201;
  2731. } yyText(G, G->begin, G->end); if (!( !EXT(pmh_EXT_NOTES) )) goto l197;
  2732. }
  2733. l198:; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l197;
  2734. l202:;
  2735. { int yypos203= G->pos, yythunkpos203= G->thunkpos;
  2736. { int yypos204= G->pos, yythunkpos204= G->thunkpos; if (!yymatchChar(G, ']')) goto l204; goto l203;
  2737. l204:; G->pos= yypos204; G->thunkpos= yythunkpos204;
  2738. }
  2739. { int yypos205= G->pos, yythunkpos205= G->thunkpos; if (!yymatchChar(G, '[')) goto l205; goto l203;
  2740. l205:; G->pos= yypos205; G->thunkpos= yythunkpos205;
  2741. } if (!yy_LabelInline(G)) { goto l203; } goto l202;
  2742. l203:; G->pos= yypos203; G->thunkpos= yythunkpos203;
  2743. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l197; yyDo(G, yy_1_Label, G->begin, G->end); if (!yymatchChar(G, ']')) goto l197; yyText(G, G->begin, G->end); if (!(YY_END)) goto l197; yyDo(G, yy_2_Label, G->begin, G->end);
  2744. yyprintf((stderr, " ok %s @ %s\n", "Label", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2745. return 1;
  2746. l197:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2747. yyprintf((stderr, " fail %s @ %s\n", "Label", G->buf+G->pos));
  2748. return 0;
  2749. }
  2750. YY_RULE(int) yy_ReferenceLinkSingle(GREG *G)
  2751. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2752. yyprintf((stderr, "%s\n", "ReferenceLinkSingle")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l206; if (!yy_Label(G)) { goto l206; } yyDo(G, yySet, -1, 0);
  2753. { int yypos207= G->pos, yythunkpos207= G->thunkpos; if (!yy_Spnl(G)) { goto l207; } if (!yymatchString(G, "[]")) goto l207; goto l208;
  2754. l207:; G->pos= yypos207; G->thunkpos= yythunkpos207;
  2755. }
  2756. l208:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l206; yyDo(G, yy_1_ReferenceLinkSingle, G->begin, G->end);
  2757. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2758. return 1;
  2759. l206:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2760. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkSingle", G->buf+G->pos));
  2761. return 0;
  2762. }
  2763. YY_RULE(int) yy_ReferenceLinkDouble(GREG *G)
  2764. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2765. yyprintf((stderr, "%s\n", "ReferenceLinkDouble")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l209; if (!yy_Label(G)) { goto l209; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l209; }
  2766. { int yypos210= G->pos, yythunkpos210= G->thunkpos; if (!yymatchString(G, "[]")) goto l210; goto l209;
  2767. l210:; G->pos= yypos210; G->thunkpos= yythunkpos210;
  2768. } if (!yy_Label(G)) { goto l209; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_END)) goto l209; yyDo(G, yy_1_ReferenceLinkDouble, G->begin, G->end);
  2769. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2770. return 1;
  2771. l209:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2772. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkDouble", G->buf+G->pos));
  2773. return 0;
  2774. }
  2775. YY_RULE(int) yy_AutoLink(GREG *G)
  2776. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2777. yyprintf((stderr, "%s\n", "AutoLink"));
  2778. { int yypos212= G->pos, yythunkpos212= G->thunkpos; if (!yy_AutoLinkUrl(G)) { goto l213; } goto l212;
  2779. l213:; G->pos= yypos212; G->thunkpos= yythunkpos212; if (!yy_AutoLinkEmail(G)) { goto l211; }
  2780. }
  2781. l212:;
  2782. yyprintf((stderr, " ok %s @ %s\n", "AutoLink", G->buf+G->pos));
  2783. return 1;
  2784. l211:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2785. yyprintf((stderr, " fail %s @ %s\n", "AutoLink", G->buf+G->pos));
  2786. return 0;
  2787. }
  2788. YY_RULE(int) yy_ReferenceLink(GREG *G)
  2789. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2790. yyprintf((stderr, "%s\n", "ReferenceLink"));
  2791. { int yypos215= G->pos, yythunkpos215= G->thunkpos; if (!yy_ReferenceLinkDouble(G)) { goto l216; } goto l215;
  2792. l216:; G->pos= yypos215; G->thunkpos= yythunkpos215; if (!yy_ReferenceLinkSingle(G)) { goto l214; }
  2793. }
  2794. l215:;
  2795. yyprintf((stderr, " ok %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2796. return 1;
  2797. l214:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2798. yyprintf((stderr, " fail %s @ %s\n", "ReferenceLink", G->buf+G->pos));
  2799. return 0;
  2800. }
  2801. YY_RULE(int) yy_ExplicitLinkSize(GREG *G)
  2802. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2803. yyprintf((stderr, "%s\n", "ExplicitLinkSize")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l217; if (!yy_Label(G)) { goto l217; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l217; } if (!yymatchChar(G, '(')) goto l217; if (!yy_Sp(G)) { goto l217; } if (!yy_Source(G)) { goto l217; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l217; } if (!yy_TitleExt(G)) { goto l217; } if (!yy_Sp(G)) { goto l217; } if (!yy_ImageSize(G)) { goto l217; } if (!yy_Sp(G)) { goto l217; } if (!yymatchChar(G, ')')) goto l217; yyText(G, G->begin, G->end); if (!(YY_END)) goto l217; yyDo(G, yy_1_ExplicitLinkSize, G->begin, G->end);
  2804. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2805. return 1;
  2806. l217:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2807. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLinkSize", G->buf+G->pos));
  2808. return 0;
  2809. }
  2810. YY_RULE(int) yy_ExplicitLink(GREG *G)
  2811. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  2812. yyprintf((stderr, "%s\n", "ExplicitLink")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l218; if (!yy_Label(G)) { goto l218; } yyDo(G, yySet, -2, 0); if (!yy_Spnl(G)) { goto l218; } if (!yymatchChar(G, '(')) goto l218; if (!yy_Sp(G)) { goto l218; } if (!yy_Source(G)) { goto l218; } yyDo(G, yySet, -1, 0); if (!yy_Spnl(G)) { goto l218; } if (!yy_Title(G)) { goto l218; } if (!yy_Sp(G)) { goto l218; } if (!yymatchChar(G, ')')) goto l218; yyText(G, G->begin, G->end); if (!(YY_END)) goto l218; yyDo(G, yy_1_ExplicitLink, G->begin, G->end);
  2813. yyprintf((stderr, " ok %s @ %s\n", "ExplicitLink", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  2814. return 1;
  2815. l218:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2816. yyprintf((stderr, " fail %s @ %s\n", "ExplicitLink", G->buf+G->pos));
  2817. return 0;
  2818. }
  2819. YY_RULE(int) yy_StrongUl(GREG *G)
  2820. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2821. yyprintf((stderr, "%s\n", "StrongUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l219; if (!yy_LocMarker(G)) { goto l219; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "__")) goto l219;
  2822. { int yypos220= G->pos, yythunkpos220= G->thunkpos; if (!yy_Whitespace(G)) { goto l220; } goto l219;
  2823. l220:; G->pos= yypos220; G->thunkpos= yythunkpos220;
  2824. }
  2825. { int yypos223= G->pos, yythunkpos223= G->thunkpos; if (!yymatchString(G, "__")) goto l223; goto l219;
  2826. l223:; G->pos= yypos223; G->thunkpos= yythunkpos223;
  2827. } if (!yy_Inline(G)) { goto l219; }
  2828. l221:;
  2829. { int yypos222= G->pos, yythunkpos222= G->thunkpos;
  2830. { int yypos224= G->pos, yythunkpos224= G->thunkpos; if (!yymatchString(G, "__")) goto l224; goto l222;
  2831. l224:; G->pos= yypos224; G->thunkpos= yythunkpos224;
  2832. } if (!yy_Inline(G)) { goto l222; } goto l221;
  2833. l222:; G->pos= yypos222; G->thunkpos= yythunkpos222;
  2834. } if (!yymatchString(G, "__")) goto l219; yyText(G, G->begin, G->end); if (!(YY_END)) goto l219; yyDo(G, yy_1_StrongUl, G->begin, G->end);
  2835. yyprintf((stderr, " ok %s @ %s\n", "StrongUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2836. return 1;
  2837. l219:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2838. yyprintf((stderr, " fail %s @ %s\n", "StrongUl", G->buf+G->pos));
  2839. return 0;
  2840. }
  2841. YY_RULE(int) yy_StrongStar(GREG *G)
  2842. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2843. yyprintf((stderr, "%s\n", "StrongStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l225; if (!yy_LocMarker(G)) { goto l225; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "**")) goto l225;
  2844. { int yypos226= G->pos, yythunkpos226= G->thunkpos; if (!yy_Whitespace(G)) { goto l226; } goto l225;
  2845. l226:; G->pos= yypos226; G->thunkpos= yythunkpos226;
  2846. }
  2847. { int yypos229= G->pos, yythunkpos229= G->thunkpos; if (!yymatchString(G, "**")) goto l229; goto l225;
  2848. l229:; G->pos= yypos229; G->thunkpos= yythunkpos229;
  2849. } if (!yy_Inline(G)) { goto l225; }
  2850. l227:;
  2851. { int yypos228= G->pos, yythunkpos228= G->thunkpos;
  2852. { int yypos230= G->pos, yythunkpos230= G->thunkpos; if (!yymatchString(G, "**")) goto l230; goto l228;
  2853. l230:; G->pos= yypos230; G->thunkpos= yythunkpos230;
  2854. } if (!yy_Inline(G)) { goto l228; } goto l227;
  2855. l228:; G->pos= yypos228; G->thunkpos= yythunkpos228;
  2856. } if (!yymatchString(G, "**")) goto l225; yyText(G, G->begin, G->end); if (!(YY_END)) goto l225; yyDo(G, yy_1_StrongStar, G->begin, G->end);
  2857. yyprintf((stderr, " ok %s @ %s\n", "StrongStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2858. return 1;
  2859. l225:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2860. yyprintf((stderr, " fail %s @ %s\n", "StrongStar", G->buf+G->pos));
  2861. return 0;
  2862. }
  2863. YY_RULE(int) yy_Whitespace(GREG *G)
  2864. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2865. yyprintf((stderr, "%s\n", "Whitespace"));
  2866. { int yypos232= G->pos, yythunkpos232= G->thunkpos; if (!yy_Spacechar(G)) { goto l233; } goto l232;
  2867. l233:; G->pos= yypos232; G->thunkpos= yythunkpos232; if (!yy_Newline(G)) { goto l231; }
  2868. }
  2869. l232:;
  2870. yyprintf((stderr, " ok %s @ %s\n", "Whitespace", G->buf+G->pos));
  2871. return 1;
  2872. l231:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2873. yyprintf((stderr, " fail %s @ %s\n", "Whitespace", G->buf+G->pos));
  2874. return 0;
  2875. }
  2876. YY_RULE(int) yy_EmphUl(GREG *G)
  2877. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2878. yyprintf((stderr, "%s\n", "EmphUl")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l234; if (!yy_LocMarker(G)) { goto l234; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '_')) goto l234;
  2879. { int yypos235= G->pos, yythunkpos235= G->thunkpos; if (!yy_Whitespace(G)) { goto l235; } goto l234;
  2880. l235:; G->pos= yypos235; G->thunkpos= yythunkpos235;
  2881. }
  2882. { int yypos238= G->pos, yythunkpos238= G->thunkpos;
  2883. { int yypos240= G->pos, yythunkpos240= G->thunkpos; if (!yymatchChar(G, '_')) goto l240; goto l239;
  2884. l240:; G->pos= yypos240; G->thunkpos= yythunkpos240;
  2885. } if (!yy_Inline(G)) { goto l239; } goto l238;
  2886. l239:; G->pos= yypos238; G->thunkpos= yythunkpos238; if (!yy_StrongUl(G)) { goto l234; }
  2887. }
  2888. l238:;
  2889. l236:;
  2890. { int yypos237= G->pos, yythunkpos237= G->thunkpos;
  2891. { int yypos241= G->pos, yythunkpos241= G->thunkpos;
  2892. { int yypos243= G->pos, yythunkpos243= G->thunkpos; if (!yymatchChar(G, '_')) goto l243; goto l242;
  2893. l243:; G->pos= yypos243; G->thunkpos= yythunkpos243;
  2894. } if (!yy_Inline(G)) { goto l242; } goto l241;
  2895. l242:; G->pos= yypos241; G->thunkpos= yythunkpos241; if (!yy_StrongUl(G)) { goto l237; }
  2896. }
  2897. l241:; goto l236;
  2898. l237:; G->pos= yypos237; G->thunkpos= yythunkpos237;
  2899. } if (!yymatchChar(G, '_')) goto l234; yyText(G, G->begin, G->end); if (!(YY_END)) goto l234; yyDo(G, yy_1_EmphUl, G->begin, G->end);
  2900. yyprintf((stderr, " ok %s @ %s\n", "EmphUl", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2901. return 1;
  2902. l234:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2903. yyprintf((stderr, " fail %s @ %s\n", "EmphUl", G->buf+G->pos));
  2904. return 0;
  2905. }
  2906. YY_RULE(int) yy_EmphStar(GREG *G)
  2907. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  2908. yyprintf((stderr, "%s\n", "EmphStar")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l244; if (!yy_LocMarker(G)) { goto l244; } yyDo(G, yySet, -1, 0); if (!yymatchChar(G, '*')) goto l244;
  2909. { int yypos245= G->pos, yythunkpos245= G->thunkpos; if (!yy_Whitespace(G)) { goto l245; } goto l244;
  2910. l245:; G->pos= yypos245; G->thunkpos= yythunkpos245;
  2911. }
  2912. { int yypos248= G->pos, yythunkpos248= G->thunkpos;
  2913. { int yypos250= G->pos, yythunkpos250= G->thunkpos; if (!yymatchChar(G, '*')) goto l250; goto l249;
  2914. l250:; G->pos= yypos250; G->thunkpos= yythunkpos250;
  2915. } if (!yy_Inline(G)) { goto l249; } goto l248;
  2916. l249:; G->pos= yypos248; G->thunkpos= yythunkpos248; if (!yy_StrongStar(G)) { goto l244; }
  2917. }
  2918. l248:;
  2919. l246:;
  2920. { int yypos247= G->pos, yythunkpos247= G->thunkpos;
  2921. { int yypos251= G->pos, yythunkpos251= G->thunkpos;
  2922. { int yypos253= G->pos, yythunkpos253= G->thunkpos; if (!yymatchChar(G, '*')) goto l253; goto l252;
  2923. l253:; G->pos= yypos253; G->thunkpos= yythunkpos253;
  2924. } if (!yy_Inline(G)) { goto l252; } goto l251;
  2925. l252:; G->pos= yypos251; G->thunkpos= yythunkpos251; if (!yy_StrongStar(G)) { goto l247; }
  2926. }
  2927. l251:; goto l246;
  2928. l247:; G->pos= yypos247; G->thunkpos= yythunkpos247;
  2929. } if (!yymatchChar(G, '*')) goto l244; yyText(G, G->begin, G->end); if (!(YY_END)) goto l244; yyDo(G, yy_1_EmphStar, G->begin, G->end);
  2930. yyprintf((stderr, " ok %s @ %s\n", "EmphStar", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  2931. return 1;
  2932. l244:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2933. yyprintf((stderr, " fail %s @ %s\n", "EmphStar", G->buf+G->pos));
  2934. return 0;
  2935. }
  2936. YY_RULE(int) yy_StarLine(GREG *G)
  2937. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2938. yyprintf((stderr, "%s\n", "StarLine"));
  2939. { int yypos255= G->pos, yythunkpos255= G->thunkpos; if (!yymatchString(G, "****")) goto l256;
  2940. l257:;
  2941. { int yypos258= G->pos, yythunkpos258= G->thunkpos; if (!yymatchChar(G, '*')) goto l258; goto l257;
  2942. l258:; G->pos= yypos258; G->thunkpos= yythunkpos258;
  2943. } goto l255;
  2944. l256:; G->pos= yypos255; G->thunkpos= yythunkpos255; if (!yy_Spacechar(G)) { goto l254; } if (!yymatchChar(G, '*')) goto l254;
  2945. l259:;
  2946. { int yypos260= G->pos, yythunkpos260= G->thunkpos; if (!yymatchChar(G, '*')) goto l260; goto l259;
  2947. l260:; G->pos= yypos260; G->thunkpos= yythunkpos260;
  2948. }
  2949. { int yypos261= G->pos, yythunkpos261= G->thunkpos; if (!yy_Spacechar(G)) { goto l254; } G->pos= yypos261; G->thunkpos= yythunkpos261;
  2950. }
  2951. }
  2952. l255:;
  2953. yyprintf((stderr, " ok %s @ %s\n", "StarLine", G->buf+G->pos));
  2954. return 1;
  2955. l254:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2956. yyprintf((stderr, " fail %s @ %s\n", "StarLine", G->buf+G->pos));
  2957. return 0;
  2958. }
  2959. YY_RULE(int) yy_UlLine(GREG *G)
  2960. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2961. yyprintf((stderr, "%s\n", "UlLine"));
  2962. { int yypos263= G->pos, yythunkpos263= G->thunkpos; if (!yymatchString(G, "____")) goto l264;
  2963. l265:;
  2964. { int yypos266= G->pos, yythunkpos266= G->thunkpos; if (!yymatchChar(G, '_')) goto l266; goto l265;
  2965. l266:; G->pos= yypos266; G->thunkpos= yythunkpos266;
  2966. } goto l263;
  2967. l264:; G->pos= yypos263; G->thunkpos= yythunkpos263; if (!yy_Spacechar(G)) { goto l262; } if (!yymatchChar(G, '_')) goto l262;
  2968. l267:;
  2969. { int yypos268= G->pos, yythunkpos268= G->thunkpos; if (!yymatchChar(G, '_')) goto l268; goto l267;
  2970. l268:; G->pos= yypos268; G->thunkpos= yythunkpos268;
  2971. }
  2972. { int yypos269= G->pos, yythunkpos269= G->thunkpos; if (!yy_Spacechar(G)) { goto l262; } G->pos= yypos269; G->thunkpos= yythunkpos269;
  2973. }
  2974. }
  2975. l263:;
  2976. yyprintf((stderr, " ok %s @ %s\n", "UlLine", G->buf+G->pos));
  2977. return 1;
  2978. l262:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  2979. yyprintf((stderr, " fail %s @ %s\n", "UlLine", G->buf+G->pos));
  2980. return 0;
  2981. }
  2982. YY_RULE(int) yy_SpecialChar(GREG *G)
  2983. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  2984. yyprintf((stderr, "%s\n", "SpecialChar"));
  2985. { int yypos271= G->pos, yythunkpos271= G->thunkpos; if (!yymatchChar(G, '~')) goto l272; goto l271;
  2986. l272:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '*')) goto l273; goto l271;
  2987. l273:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '_')) goto l274; goto l271;
  2988. l274:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '`')) goto l275; goto l271;
  2989. l275:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '&')) goto l276; goto l271;
  2990. l276:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '[')) goto l277; goto l271;
  2991. l277:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, ']')) goto l278; goto l271;
  2992. l278:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '(')) goto l279; goto l271;
  2993. l279:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, ')')) goto l280; goto l271;
  2994. l280:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '<')) goto l281; goto l271;
  2995. l281:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '!')) goto l282; goto l271;
  2996. l282:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '#')) goto l283; goto l271;
  2997. l283:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '\\')) goto l284; goto l271;
  2998. l284:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '\'')) goto l285; goto l271;
  2999. l285:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yymatchChar(G, '"')) goto l286; goto l271;
  3000. l286:; G->pos= yypos271; G->thunkpos= yythunkpos271; if (!yy_ExtendedSpecialChar(G)) { goto l270; }
  3001. }
  3002. l271:;
  3003. yyprintf((stderr, " ok %s @ %s\n", "SpecialChar", G->buf+G->pos));
  3004. return 1;
  3005. l270:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3006. yyprintf((stderr, " fail %s @ %s\n", "SpecialChar", G->buf+G->pos));
  3007. return 0;
  3008. }
  3009. YY_RULE(int) yy_Eof(GREG *G)
  3010. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3011. yyprintf((stderr, "%s\n", "Eof"));
  3012. { int yypos288= G->pos, yythunkpos288= G->thunkpos; if (!yymatchDot(G)) goto l288; goto l287;
  3013. l288:; G->pos= yypos288; G->thunkpos= yythunkpos288;
  3014. }
  3015. yyprintf((stderr, " ok %s @ %s\n", "Eof", G->buf+G->pos));
  3016. return 1;
  3017. l287:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3018. yyprintf((stderr, " fail %s @ %s\n", "Eof", G->buf+G->pos));
  3019. return 0;
  3020. }
  3021. YY_RULE(int) yy_NormalEndline(GREG *G)
  3022. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3023. yyprintf((stderr, "%s\n", "NormalEndline")); if (!yy_Sp(G)) { goto l289; } if (!yy_Newline(G)) { goto l289; }
  3024. { int yypos290= G->pos, yythunkpos290= G->thunkpos; if (!yy_BlankLine(G)) { goto l290; } goto l289;
  3025. l290:; G->pos= yypos290; G->thunkpos= yythunkpos290;
  3026. }
  3027. { int yypos291= G->pos, yythunkpos291= G->thunkpos; if (!yymatchChar(G, '>')) goto l291; goto l289;
  3028. l291:; G->pos= yypos291; G->thunkpos= yythunkpos291;
  3029. }
  3030. { int yypos292= G->pos, yythunkpos292= G->thunkpos; if (!yy_AtxStart(G)) { goto l292; } goto l289;
  3031. l292:; G->pos= yypos292; G->thunkpos= yythunkpos292;
  3032. }
  3033. { int yypos293= G->pos, yythunkpos293= G->thunkpos; if (!yy_Line(G)) { goto l293; }
  3034. { int yypos294= G->pos, yythunkpos294= G->thunkpos; if (!yymatchChar(G, '=')) goto l295;
  3035. l296:;
  3036. { int yypos297= G->pos, yythunkpos297= G->thunkpos; if (!yymatchChar(G, '=')) goto l297; goto l296;
  3037. l297:; G->pos= yypos297; G->thunkpos= yythunkpos297;
  3038. } goto l294;
  3039. l295:; G->pos= yypos294; G->thunkpos= yythunkpos294; if (!yymatchChar(G, '-')) goto l293;
  3040. l298:;
  3041. { int yypos299= G->pos, yythunkpos299= G->thunkpos; if (!yymatchChar(G, '-')) goto l299; goto l298;
  3042. l299:; G->pos= yypos299; G->thunkpos= yythunkpos299;
  3043. }
  3044. }
  3045. l294:; if (!yy_Newline(G)) { goto l293; } goto l289;
  3046. l293:; G->pos= yypos293; G->thunkpos= yythunkpos293;
  3047. }
  3048. yyprintf((stderr, " ok %s @ %s\n", "NormalEndline", G->buf+G->pos));
  3049. return 1;
  3050. l289:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3051. yyprintf((stderr, " fail %s @ %s\n", "NormalEndline", G->buf+G->pos));
  3052. return 0;
  3053. }
  3054. YY_RULE(int) yy_TerminalEndline(GREG *G)
  3055. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3056. yyprintf((stderr, "%s\n", "TerminalEndline")); if (!yy_Sp(G)) { goto l300; } if (!yy_Newline(G)) { goto l300; } if (!yy_Eof(G)) { goto l300; }
  3057. yyprintf((stderr, " ok %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  3058. return 1;
  3059. l300:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3060. yyprintf((stderr, " fail %s @ %s\n", "TerminalEndline", G->buf+G->pos));
  3061. return 0;
  3062. }
  3063. YY_RULE(int) yy_LineBreak(GREG *G)
  3064. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3065. yyprintf((stderr, "%s\n", "LineBreak")); if (!yymatchString(G, " ")) goto l301; if (!yy_NormalEndline(G)) { goto l301; }
  3066. yyprintf((stderr, " ok %s @ %s\n", "LineBreak", G->buf+G->pos));
  3067. return 1;
  3068. l301:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3069. yyprintf((stderr, " fail %s @ %s\n", "LineBreak", G->buf+G->pos));
  3070. return 0;
  3071. }
  3072. YY_RULE(int) yy_CharEntity(GREG *G)
  3073. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3074. yyprintf((stderr, "%s\n", "CharEntity")); if (!yymatchChar(G, '&')) goto l302; 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;
  3075. l303:;
  3076. { int yypos304= G->pos, yythunkpos304= 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 l304; goto l303;
  3077. l304:; G->pos= yypos304; G->thunkpos= yythunkpos304;
  3078. } if (!yymatchChar(G, ';')) goto l302;
  3079. yyprintf((stderr, " ok %s @ %s\n", "CharEntity", G->buf+G->pos));
  3080. return 1;
  3081. l302:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3082. yyprintf((stderr, " fail %s @ %s\n", "CharEntity", G->buf+G->pos));
  3083. return 0;
  3084. }
  3085. YY_RULE(int) yy_DecEntity(GREG *G)
  3086. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3087. yyprintf((stderr, "%s\n", "DecEntity")); if (!yymatchChar(G, '&')) goto l305; if (!yymatchChar(G, '#')) goto l305; 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;
  3088. l306:;
  3089. { int yypos307= G->pos, yythunkpos307= 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 l307; goto l306;
  3090. l307:; G->pos= yypos307; G->thunkpos= yythunkpos307;
  3091. } if (!yymatchChar(G, ';')) goto l305;
  3092. yyprintf((stderr, " ok %s @ %s\n", "DecEntity", G->buf+G->pos));
  3093. return 1;
  3094. l305:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3095. yyprintf((stderr, " fail %s @ %s\n", "DecEntity", G->buf+G->pos));
  3096. return 0;
  3097. }
  3098. YY_RULE(int) yy_HexEntity(GREG *G)
  3099. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3100. yyprintf((stderr, "%s\n", "HexEntity")); if (!yymatchChar(G, '&')) goto l308; if (!yymatchChar(G, '#')) goto l308; 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 l308; 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;
  3101. l309:;
  3102. { int yypos310= G->pos, yythunkpos310= 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 l310; goto l309;
  3103. l310:; G->pos= yypos310; G->thunkpos= yythunkpos310;
  3104. } if (!yymatchChar(G, ';')) goto l308;
  3105. yyprintf((stderr, " ok %s @ %s\n", "HexEntity", G->buf+G->pos));
  3106. return 1;
  3107. l308:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3108. yyprintf((stderr, " fail %s @ %s\n", "HexEntity", G->buf+G->pos));
  3109. return 0;
  3110. }
  3111. YY_RULE(int) yy_Alphanumeric(GREG *G)
  3112. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3113. yyprintf((stderr, "%s\n", "Alphanumeric"));
  3114. { int yypos312= G->pos, yythunkpos312= 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 l313; goto l312;
  3115. l313:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\200")) goto l314; goto l312;
  3116. l314:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\201")) goto l315; goto l312;
  3117. l315:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\202")) goto l316; goto l312;
  3118. l316:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\203")) goto l317; goto l312;
  3119. l317:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\204")) goto l318; goto l312;
  3120. l318:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\205")) goto l319; goto l312;
  3121. l319:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\206")) goto l320; goto l312;
  3122. l320:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\207")) goto l321; goto l312;
  3123. l321:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\210")) goto l322; goto l312;
  3124. l322:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\211")) goto l323; goto l312;
  3125. l323:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\212")) goto l324; goto l312;
  3126. l324:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\213")) goto l325; goto l312;
  3127. l325:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\214")) goto l326; goto l312;
  3128. l326:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\215")) goto l327; goto l312;
  3129. l327:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\216")) goto l328; goto l312;
  3130. l328:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\217")) goto l329; goto l312;
  3131. l329:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\220")) goto l330; goto l312;
  3132. l330:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\221")) goto l331; goto l312;
  3133. l331:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\222")) goto l332; goto l312;
  3134. l332:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\223")) goto l333; goto l312;
  3135. l333:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\224")) goto l334; goto l312;
  3136. l334:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\225")) goto l335; goto l312;
  3137. l335:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\226")) goto l336; goto l312;
  3138. l336:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\227")) goto l337; goto l312;
  3139. l337:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\230")) goto l338; goto l312;
  3140. l338:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\231")) goto l339; goto l312;
  3141. l339:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\232")) goto l340; goto l312;
  3142. l340:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\233")) goto l341; goto l312;
  3143. l341:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\234")) goto l342; goto l312;
  3144. l342:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\235")) goto l343; goto l312;
  3145. l343:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\236")) goto l344; goto l312;
  3146. l344:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\237")) goto l345; goto l312;
  3147. l345:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\240")) goto l346; goto l312;
  3148. l346:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\241")) goto l347; goto l312;
  3149. l347:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\242")) goto l348; goto l312;
  3150. l348:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\243")) goto l349; goto l312;
  3151. l349:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\244")) goto l350; goto l312;
  3152. l350:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\245")) goto l351; goto l312;
  3153. l351:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\246")) goto l352; goto l312;
  3154. l352:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\247")) goto l353; goto l312;
  3155. l353:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\250")) goto l354; goto l312;
  3156. l354:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\251")) goto l355; goto l312;
  3157. l355:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\252")) goto l356; goto l312;
  3158. l356:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\253")) goto l357; goto l312;
  3159. l357:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\254")) goto l358; goto l312;
  3160. l358:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\255")) goto l359; goto l312;
  3161. l359:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\256")) goto l360; goto l312;
  3162. l360:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\257")) goto l361; goto l312;
  3163. l361:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\260")) goto l362; goto l312;
  3164. l362:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\261")) goto l363; goto l312;
  3165. l363:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\262")) goto l364; goto l312;
  3166. l364:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\263")) goto l365; goto l312;
  3167. l365:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\264")) goto l366; goto l312;
  3168. l366:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\265")) goto l367; goto l312;
  3169. l367:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\266")) goto l368; goto l312;
  3170. l368:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\267")) goto l369; goto l312;
  3171. l369:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\270")) goto l370; goto l312;
  3172. l370:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\271")) goto l371; goto l312;
  3173. l371:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\272")) goto l372; goto l312;
  3174. l372:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\273")) goto l373; goto l312;
  3175. l373:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\274")) goto l374; goto l312;
  3176. l374:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\275")) goto l375; goto l312;
  3177. l375:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\276")) goto l376; goto l312;
  3178. l376:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\277")) goto l377; goto l312;
  3179. l377:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\300")) goto l378; goto l312;
  3180. l378:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\301")) goto l379; goto l312;
  3181. l379:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\302")) goto l380; goto l312;
  3182. l380:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\303")) goto l381; goto l312;
  3183. l381:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\304")) goto l382; goto l312;
  3184. l382:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\305")) goto l383; goto l312;
  3185. l383:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\306")) goto l384; goto l312;
  3186. l384:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\307")) goto l385; goto l312;
  3187. l385:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\310")) goto l386; goto l312;
  3188. l386:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\311")) goto l387; goto l312;
  3189. l387:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\312")) goto l388; goto l312;
  3190. l388:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\313")) goto l389; goto l312;
  3191. l389:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\314")) goto l390; goto l312;
  3192. l390:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\315")) goto l391; goto l312;
  3193. l391:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\316")) goto l392; goto l312;
  3194. l392:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\317")) goto l393; goto l312;
  3195. l393:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\320")) goto l394; goto l312;
  3196. l394:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\321")) goto l395; goto l312;
  3197. l395:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\322")) goto l396; goto l312;
  3198. l396:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\323")) goto l397; goto l312;
  3199. l397:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\324")) goto l398; goto l312;
  3200. l398:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\325")) goto l399; goto l312;
  3201. l399:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\326")) goto l400; goto l312;
  3202. l400:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\327")) goto l401; goto l312;
  3203. l401:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\330")) goto l402; goto l312;
  3204. l402:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\331")) goto l403; goto l312;
  3205. l403:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\332")) goto l404; goto l312;
  3206. l404:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\333")) goto l405; goto l312;
  3207. l405:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\334")) goto l406; goto l312;
  3208. l406:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\335")) goto l407; goto l312;
  3209. l407:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\336")) goto l408; goto l312;
  3210. l408:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\337")) goto l409; goto l312;
  3211. l409:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\340")) goto l410; goto l312;
  3212. l410:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\341")) goto l411; goto l312;
  3213. l411:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\342")) goto l412; goto l312;
  3214. l412:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\343")) goto l413; goto l312;
  3215. l413:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\344")) goto l414; goto l312;
  3216. l414:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\345")) goto l415; goto l312;
  3217. l415:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\346")) goto l416; goto l312;
  3218. l416:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\347")) goto l417; goto l312;
  3219. l417:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\350")) goto l418; goto l312;
  3220. l418:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\351")) goto l419; goto l312;
  3221. l419:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\352")) goto l420; goto l312;
  3222. l420:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\353")) goto l421; goto l312;
  3223. l421:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\354")) goto l422; goto l312;
  3224. l422:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\355")) goto l423; goto l312;
  3225. l423:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\356")) goto l424; goto l312;
  3226. l424:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\357")) goto l425; goto l312;
  3227. l425:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\360")) goto l426; goto l312;
  3228. l426:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\361")) goto l427; goto l312;
  3229. l427:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\362")) goto l428; goto l312;
  3230. l428:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\363")) goto l429; goto l312;
  3231. l429:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\364")) goto l430; goto l312;
  3232. l430:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\365")) goto l431; goto l312;
  3233. l431:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\366")) goto l432; goto l312;
  3234. l432:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\367")) goto l433; goto l312;
  3235. l433:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\370")) goto l434; goto l312;
  3236. l434:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\371")) goto l435; goto l312;
  3237. l435:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\372")) goto l436; goto l312;
  3238. l436:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\373")) goto l437; goto l312;
  3239. l437:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\374")) goto l438; goto l312;
  3240. l438:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\375")) goto l439; goto l312;
  3241. l439:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\376")) goto l440; goto l312;
  3242. l440:; G->pos= yypos312; G->thunkpos= yythunkpos312; if (!yymatchString(G, "\377")) goto l311;
  3243. }
  3244. l312:;
  3245. yyprintf((stderr, " ok %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3246. return 1;
  3247. l311:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3248. yyprintf((stderr, " fail %s @ %s\n", "Alphanumeric", G->buf+G->pos));
  3249. return 0;
  3250. }
  3251. YY_RULE(int) yy_NormalChar(GREG *G)
  3252. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3253. yyprintf((stderr, "%s\n", "NormalChar"));
  3254. { int yypos442= G->pos, yythunkpos442= G->thunkpos;
  3255. { int yypos443= G->pos, yythunkpos443= G->thunkpos; if (!yy_SpecialChar(G)) { goto l444; } goto l443;
  3256. l444:; G->pos= yypos443; G->thunkpos= yythunkpos443; if (!yy_Spacechar(G)) { goto l445; } goto l443;
  3257. l445:; G->pos= yypos443; G->thunkpos= yythunkpos443; if (!yy_Newline(G)) { goto l442; }
  3258. }
  3259. l443:; goto l441;
  3260. l442:; G->pos= yypos442; G->thunkpos= yythunkpos442;
  3261. } if (!yymatchDot(G)) goto l441;
  3262. yyprintf((stderr, " ok %s @ %s\n", "NormalChar", G->buf+G->pos));
  3263. return 1;
  3264. l441:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3265. yyprintf((stderr, " fail %s @ %s\n", "NormalChar", G->buf+G->pos));
  3266. return 0;
  3267. }
  3268. YY_RULE(int) yy_Symbol(GREG *G)
  3269. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3270. yyprintf((stderr, "%s\n", "Symbol")); if (!yy_SpecialChar(G)) { goto l446; }
  3271. yyprintf((stderr, " ok %s @ %s\n", "Symbol", G->buf+G->pos));
  3272. return 1;
  3273. l446:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3274. yyprintf((stderr, " fail %s @ %s\n", "Symbol", G->buf+G->pos));
  3275. return 0;
  3276. }
  3277. YY_RULE(int) yy_EscapedChar(GREG *G)
  3278. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3279. yyprintf((stderr, "%s\n", "EscapedChar")); if (!yymatchChar(G, '\\')) goto l447;
  3280. { int yypos448= G->pos, yythunkpos448= G->thunkpos; if (!yy_Newline(G)) { goto l448; } goto l447;
  3281. l448:; G->pos= yypos448; G->thunkpos= yythunkpos448;
  3282. } if (!yymatchClass(G, (unsigned char *)"\000\000\000\000\012\157\000\120\000\000\000\270\001\000\000\070\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l447;
  3283. yyprintf((stderr, " ok %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3284. return 1;
  3285. l447:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3286. yyprintf((stderr, " fail %s @ %s\n", "EscapedChar", G->buf+G->pos));
  3287. return 0;
  3288. }
  3289. YY_RULE(int) yy_Entity(GREG *G)
  3290. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3291. yyprintf((stderr, "%s\n", "Entity")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l449; if (!yy_LocMarker(G)) { goto l449; } yyDo(G, yySet, -1, 0);
  3292. { int yypos450= G->pos, yythunkpos450= G->thunkpos; if (!yy_HexEntity(G)) { goto l451; } goto l450;
  3293. l451:; G->pos= yypos450; G->thunkpos= yythunkpos450; if (!yy_DecEntity(G)) { goto l452; } goto l450;
  3294. l452:; G->pos= yypos450; G->thunkpos= yythunkpos450; if (!yy_CharEntity(G)) { goto l449; }
  3295. }
  3296. l450:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l449; yyDo(G, yy_1_Entity, G->begin, G->end);
  3297. yyprintf((stderr, " ok %s @ %s\n", "Entity", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3298. return 1;
  3299. l449:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3300. yyprintf((stderr, " fail %s @ %s\n", "Entity", G->buf+G->pos));
  3301. return 0;
  3302. }
  3303. YY_RULE(int) yy_RawHtml(GREG *G)
  3304. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3305. yyprintf((stderr, "%s\n", "RawHtml")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l453; if (!yy_LocMarker(G)) { goto l453; } yyDo(G, yySet, -1, 0);
  3306. { int yypos454= G->pos, yythunkpos454= G->thunkpos; if (!yy_HtmlComment(G)) { goto l455; } goto l454;
  3307. l455:; G->pos= yypos454; G->thunkpos= yythunkpos454; if (!yy_HtmlBlockScript(G)) { goto l456; } goto l454;
  3308. l456:; G->pos= yypos454; G->thunkpos= yythunkpos454; if (!yy_HtmlTag(G)) { goto l453; }
  3309. }
  3310. l454:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l453; yyDo(G, yy_1_RawHtml, G->begin, G->end);
  3311. yyprintf((stderr, " ok %s @ %s\n", "RawHtml", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3312. return 1;
  3313. l453:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3314. yyprintf((stderr, " fail %s @ %s\n", "RawHtml", G->buf+G->pos));
  3315. return 0;
  3316. }
  3317. YY_RULE(int) yy_Mark(GREG *G)
  3318. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  3319. yyprintf((stderr, "%s\n", "Mark")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MARK) )) goto l457; if (!yy_MarkTagOpen(G)) { goto l457; } yyDo(G, yySet, -2, 0); if (!yy_MarkTagText(G)) { goto l457; } if (!yy_MarkTagClose(G)) { goto l457; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_Mark, G->begin, G->end);
  3320. yyprintf((stderr, " ok %s @ %s\n", "Mark", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  3321. return 1;
  3322. l457:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3323. yyprintf((stderr, " fail %s @ %s\n", "Mark", G->buf+G->pos));
  3324. return 0;
  3325. }
  3326. YY_RULE(int) yy_Code(GREG *G)
  3327. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3328. yyprintf((stderr, "%s\n", "Code")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l458;
  3329. { int yypos459= G->pos, yythunkpos459= G->thunkpos; if (!yy_Ticks1(G)) { goto l460; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l460; }
  3330. { int yypos463= G->pos, yythunkpos463= G->thunkpos;
  3331. { int yypos467= G->pos, yythunkpos467= G->thunkpos; if (!yymatchChar(G, '`')) goto l467; goto l464;
  3332. l467:; G->pos= yypos467; G->thunkpos= yythunkpos467;
  3333. } if (!yy_Nonspacechar(G)) { goto l464; }
  3334. l465:;
  3335. { int yypos466= G->pos, yythunkpos466= G->thunkpos;
  3336. { int yypos468= G->pos, yythunkpos468= G->thunkpos; if (!yymatchChar(G, '`')) goto l468; goto l466;
  3337. l468:; G->pos= yypos468; G->thunkpos= yythunkpos468;
  3338. } if (!yy_Nonspacechar(G)) { goto l466; } goto l465;
  3339. l466:; G->pos= yypos466; G->thunkpos= yythunkpos466;
  3340. } goto l463;
  3341. l464:; G->pos= yypos463; G->thunkpos= yythunkpos463;
  3342. { int yypos470= G->pos, yythunkpos470= G->thunkpos; if (!yy_Ticks1(G)) { goto l470; } goto l469;
  3343. l470:; G->pos= yypos470; G->thunkpos= yythunkpos470;
  3344. } if (!yymatchChar(G, '`')) goto l469;
  3345. l471:;
  3346. { int yypos472= G->pos, yythunkpos472= G->thunkpos; if (!yymatchChar(G, '`')) goto l472; goto l471;
  3347. l472:; G->pos= yypos472; G->thunkpos= yythunkpos472;
  3348. } goto l463;
  3349. l469:; G->pos= yypos463; G->thunkpos= yythunkpos463;
  3350. { int yypos473= G->pos, yythunkpos473= G->thunkpos; if (!yy_Sp(G)) { goto l473; } if (!yy_Ticks1(G)) { goto l473; } goto l460;
  3351. l473:; G->pos= yypos473; G->thunkpos= yythunkpos473;
  3352. }
  3353. { int yypos474= G->pos, yythunkpos474= G->thunkpos; if (!yy_Spacechar(G)) { goto l475; } goto l474;
  3354. l475:; G->pos= yypos474; G->thunkpos= yythunkpos474; if (!yy_Newline(G)) { goto l460; }
  3355. { int yypos476= G->pos, yythunkpos476= G->thunkpos; if (!yy_BlankLine(G)) { goto l476; } goto l460;
  3356. l476:; G->pos= yypos476; G->thunkpos= yythunkpos476;
  3357. }
  3358. }
  3359. l474:;
  3360. }
  3361. l463:;
  3362. l461:;
  3363. { int yypos462= G->pos, yythunkpos462= G->thunkpos;
  3364. { int yypos477= G->pos, yythunkpos477= G->thunkpos;
  3365. { int yypos481= G->pos, yythunkpos481= G->thunkpos; if (!yymatchChar(G, '`')) goto l481; goto l478;
  3366. l481:; G->pos= yypos481; G->thunkpos= yythunkpos481;
  3367. } if (!yy_Nonspacechar(G)) { goto l478; }
  3368. l479:;
  3369. { int yypos480= G->pos, yythunkpos480= G->thunkpos;
  3370. { int yypos482= G->pos, yythunkpos482= G->thunkpos; if (!yymatchChar(G, '`')) goto l482; goto l480;
  3371. l482:; G->pos= yypos482; G->thunkpos= yythunkpos482;
  3372. } if (!yy_Nonspacechar(G)) { goto l480; } goto l479;
  3373. l480:; G->pos= yypos480; G->thunkpos= yythunkpos480;
  3374. } goto l477;
  3375. l478:; G->pos= yypos477; G->thunkpos= yythunkpos477;
  3376. { int yypos484= G->pos, yythunkpos484= G->thunkpos; if (!yy_Ticks1(G)) { goto l484; } goto l483;
  3377. l484:; G->pos= yypos484; G->thunkpos= yythunkpos484;
  3378. } if (!yymatchChar(G, '`')) goto l483;
  3379. l485:;
  3380. { int yypos486= G->pos, yythunkpos486= G->thunkpos; if (!yymatchChar(G, '`')) goto l486; goto l485;
  3381. l486:; G->pos= yypos486; G->thunkpos= yythunkpos486;
  3382. } goto l477;
  3383. l483:; G->pos= yypos477; G->thunkpos= yythunkpos477;
  3384. { int yypos487= G->pos, yythunkpos487= G->thunkpos; if (!yy_Sp(G)) { goto l487; } if (!yy_Ticks1(G)) { goto l487; } goto l462;
  3385. l487:; G->pos= yypos487; G->thunkpos= yythunkpos487;
  3386. }
  3387. { int yypos488= G->pos, yythunkpos488= G->thunkpos; if (!yy_Spacechar(G)) { goto l489; } goto l488;
  3388. l489:; G->pos= yypos488; G->thunkpos= yythunkpos488; if (!yy_Newline(G)) { goto l462; }
  3389. { int yypos490= G->pos, yythunkpos490= G->thunkpos; if (!yy_BlankLine(G)) { goto l490; } goto l462;
  3390. l490:; G->pos= yypos490; G->thunkpos= yythunkpos490;
  3391. }
  3392. }
  3393. l488:;
  3394. }
  3395. l477:; goto l461;
  3396. l462:; G->pos= yypos462; G->thunkpos= yythunkpos462;
  3397. } if (!yy_Sp(G)) { goto l460; } if (!yy_Ticks1(G)) { goto l460; } goto l459;
  3398. l460:; G->pos= yypos459; G->thunkpos= yythunkpos459; if (!yy_Ticks2(G)) { goto l491; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l491; }
  3399. { int yypos494= G->pos, yythunkpos494= G->thunkpos;
  3400. { int yypos498= G->pos, yythunkpos498= G->thunkpos; if (!yymatchChar(G, '`')) goto l498; goto l495;
  3401. l498:; G->pos= yypos498; G->thunkpos= yythunkpos498;
  3402. } if (!yy_Nonspacechar(G)) { goto l495; }
  3403. l496:;
  3404. { int yypos497= G->pos, yythunkpos497= G->thunkpos;
  3405. { int yypos499= G->pos, yythunkpos499= G->thunkpos; if (!yymatchChar(G, '`')) goto l499; goto l497;
  3406. l499:; G->pos= yypos499; G->thunkpos= yythunkpos499;
  3407. } if (!yy_Nonspacechar(G)) { goto l497; } goto l496;
  3408. l497:; G->pos= yypos497; G->thunkpos= yythunkpos497;
  3409. } goto l494;
  3410. l495:; G->pos= yypos494; G->thunkpos= yythunkpos494;
  3411. { int yypos501= G->pos, yythunkpos501= G->thunkpos; if (!yy_Ticks2(G)) { goto l501; } goto l500;
  3412. l501:; G->pos= yypos501; G->thunkpos= yythunkpos501;
  3413. } if (!yymatchChar(G, '`')) goto l500;
  3414. l502:;
  3415. { int yypos503= G->pos, yythunkpos503= G->thunkpos; if (!yymatchChar(G, '`')) goto l503; goto l502;
  3416. l503:; G->pos= yypos503; G->thunkpos= yythunkpos503;
  3417. } goto l494;
  3418. l500:; G->pos= yypos494; G->thunkpos= yythunkpos494;
  3419. { int yypos504= G->pos, yythunkpos504= G->thunkpos; if (!yy_Sp(G)) { goto l504; } if (!yy_Ticks2(G)) { goto l504; } goto l491;
  3420. l504:; G->pos= yypos504; G->thunkpos= yythunkpos504;
  3421. }
  3422. { int yypos505= G->pos, yythunkpos505= G->thunkpos; if (!yy_Spacechar(G)) { goto l506; } goto l505;
  3423. l506:; G->pos= yypos505; G->thunkpos= yythunkpos505; if (!yy_Newline(G)) { goto l491; }
  3424. { int yypos507= G->pos, yythunkpos507= G->thunkpos; if (!yy_BlankLine(G)) { goto l507; } goto l491;
  3425. l507:; G->pos= yypos507; G->thunkpos= yythunkpos507;
  3426. }
  3427. }
  3428. l505:;
  3429. }
  3430. l494:;
  3431. l492:;
  3432. { int yypos493= G->pos, yythunkpos493= G->thunkpos;
  3433. { int yypos508= G->pos, yythunkpos508= G->thunkpos;
  3434. { int yypos512= G->pos, yythunkpos512= G->thunkpos; if (!yymatchChar(G, '`')) goto l512; goto l509;
  3435. l512:; G->pos= yypos512; G->thunkpos= yythunkpos512;
  3436. } if (!yy_Nonspacechar(G)) { goto l509; }
  3437. l510:;
  3438. { int yypos511= G->pos, yythunkpos511= G->thunkpos;
  3439. { int yypos513= G->pos, yythunkpos513= G->thunkpos; if (!yymatchChar(G, '`')) goto l513; goto l511;
  3440. l513:; G->pos= yypos513; G->thunkpos= yythunkpos513;
  3441. } if (!yy_Nonspacechar(G)) { goto l511; } goto l510;
  3442. l511:; G->pos= yypos511; G->thunkpos= yythunkpos511;
  3443. } goto l508;
  3444. l509:; G->pos= yypos508; G->thunkpos= yythunkpos508;
  3445. { int yypos515= G->pos, yythunkpos515= G->thunkpos; if (!yy_Ticks2(G)) { goto l515; } goto l514;
  3446. l515:; G->pos= yypos515; G->thunkpos= yythunkpos515;
  3447. } if (!yymatchChar(G, '`')) goto l514;
  3448. l516:;
  3449. { int yypos517= G->pos, yythunkpos517= G->thunkpos; if (!yymatchChar(G, '`')) goto l517; goto l516;
  3450. l517:; G->pos= yypos517; G->thunkpos= yythunkpos517;
  3451. } goto l508;
  3452. l514:; G->pos= yypos508; G->thunkpos= yythunkpos508;
  3453. { int yypos518= G->pos, yythunkpos518= G->thunkpos; if (!yy_Sp(G)) { goto l518; } if (!yy_Ticks2(G)) { goto l518; } goto l493;
  3454. l518:; G->pos= yypos518; G->thunkpos= yythunkpos518;
  3455. }
  3456. { int yypos519= G->pos, yythunkpos519= G->thunkpos; if (!yy_Spacechar(G)) { goto l520; } goto l519;
  3457. l520:; G->pos= yypos519; G->thunkpos= yythunkpos519; if (!yy_Newline(G)) { goto l493; }
  3458. { int yypos521= G->pos, yythunkpos521= G->thunkpos; if (!yy_BlankLine(G)) { goto l521; } goto l493;
  3459. l521:; G->pos= yypos521; G->thunkpos= yythunkpos521;
  3460. }
  3461. }
  3462. l519:;
  3463. }
  3464. l508:; goto l492;
  3465. l493:; G->pos= yypos493; G->thunkpos= yythunkpos493;
  3466. } if (!yy_Sp(G)) { goto l491; } if (!yy_Ticks2(G)) { goto l491; } goto l459;
  3467. l491:; G->pos= yypos459; G->thunkpos= yythunkpos459; if (!yy_Ticks3(G)) { goto l522; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l522; }
  3468. { int yypos525= G->pos, yythunkpos525= G->thunkpos;
  3469. { int yypos529= G->pos, yythunkpos529= G->thunkpos; if (!yymatchChar(G, '`')) goto l529; goto l526;
  3470. l529:; G->pos= yypos529; G->thunkpos= yythunkpos529;
  3471. } if (!yy_Nonspacechar(G)) { goto l526; }
  3472. l527:;
  3473. { int yypos528= G->pos, yythunkpos528= G->thunkpos;
  3474. { int yypos530= G->pos, yythunkpos530= G->thunkpos; if (!yymatchChar(G, '`')) goto l530; goto l528;
  3475. l530:; G->pos= yypos530; G->thunkpos= yythunkpos530;
  3476. } if (!yy_Nonspacechar(G)) { goto l528; } goto l527;
  3477. l528:; G->pos= yypos528; G->thunkpos= yythunkpos528;
  3478. } goto l525;
  3479. l526:; G->pos= yypos525; G->thunkpos= yythunkpos525;
  3480. { int yypos532= G->pos, yythunkpos532= G->thunkpos; if (!yy_Ticks3(G)) { goto l532; } goto l531;
  3481. l532:; G->pos= yypos532; G->thunkpos= yythunkpos532;
  3482. } if (!yymatchChar(G, '`')) goto l531;
  3483. l533:;
  3484. { int yypos534= G->pos, yythunkpos534= G->thunkpos; if (!yymatchChar(G, '`')) goto l534; goto l533;
  3485. l534:; G->pos= yypos534; G->thunkpos= yythunkpos534;
  3486. } goto l525;
  3487. l531:; G->pos= yypos525; G->thunkpos= yythunkpos525;
  3488. { int yypos535= G->pos, yythunkpos535= G->thunkpos; if (!yy_Sp(G)) { goto l535; } if (!yy_Ticks3(G)) { goto l535; } goto l522;
  3489. l535:; G->pos= yypos535; G->thunkpos= yythunkpos535;
  3490. }
  3491. { int yypos536= G->pos, yythunkpos536= G->thunkpos; if (!yy_Spacechar(G)) { goto l537; } goto l536;
  3492. l537:; G->pos= yypos536; G->thunkpos= yythunkpos536; if (!yy_Newline(G)) { goto l522; }
  3493. { int yypos538= G->pos, yythunkpos538= G->thunkpos; if (!yy_BlankLine(G)) { goto l538; } goto l522;
  3494. l538:; G->pos= yypos538; G->thunkpos= yythunkpos538;
  3495. }
  3496. }
  3497. l536:;
  3498. }
  3499. l525:;
  3500. l523:;
  3501. { int yypos524= G->pos, yythunkpos524= G->thunkpos;
  3502. { int yypos539= G->pos, yythunkpos539= G->thunkpos;
  3503. { int yypos543= G->pos, yythunkpos543= G->thunkpos; if (!yymatchChar(G, '`')) goto l543; goto l540;
  3504. l543:; G->pos= yypos543; G->thunkpos= yythunkpos543;
  3505. } if (!yy_Nonspacechar(G)) { goto l540; }
  3506. l541:;
  3507. { int yypos542= G->pos, yythunkpos542= G->thunkpos;
  3508. { int yypos544= G->pos, yythunkpos544= G->thunkpos; if (!yymatchChar(G, '`')) goto l544; goto l542;
  3509. l544:; G->pos= yypos544; G->thunkpos= yythunkpos544;
  3510. } if (!yy_Nonspacechar(G)) { goto l542; } goto l541;
  3511. l542:; G->pos= yypos542; G->thunkpos= yythunkpos542;
  3512. } goto l539;
  3513. l540:; G->pos= yypos539; G->thunkpos= yythunkpos539;
  3514. { int yypos546= G->pos, yythunkpos546= G->thunkpos; if (!yy_Ticks3(G)) { goto l546; } goto l545;
  3515. l546:; G->pos= yypos546; G->thunkpos= yythunkpos546;
  3516. } if (!yymatchChar(G, '`')) goto l545;
  3517. l547:;
  3518. { int yypos548= G->pos, yythunkpos548= G->thunkpos; if (!yymatchChar(G, '`')) goto l548; goto l547;
  3519. l548:; G->pos= yypos548; G->thunkpos= yythunkpos548;
  3520. } goto l539;
  3521. l545:; G->pos= yypos539; G->thunkpos= yythunkpos539;
  3522. { int yypos549= G->pos, yythunkpos549= G->thunkpos; if (!yy_Sp(G)) { goto l549; } if (!yy_Ticks3(G)) { goto l549; } goto l524;
  3523. l549:; G->pos= yypos549; G->thunkpos= yythunkpos549;
  3524. }
  3525. { int yypos550= G->pos, yythunkpos550= G->thunkpos; if (!yy_Spacechar(G)) { goto l551; } goto l550;
  3526. l551:; G->pos= yypos550; G->thunkpos= yythunkpos550; if (!yy_Newline(G)) { goto l524; }
  3527. { int yypos552= G->pos, yythunkpos552= G->thunkpos; if (!yy_BlankLine(G)) { goto l552; } goto l524;
  3528. l552:; G->pos= yypos552; G->thunkpos= yythunkpos552;
  3529. }
  3530. }
  3531. l550:;
  3532. }
  3533. l539:; goto l523;
  3534. l524:; G->pos= yypos524; G->thunkpos= yythunkpos524;
  3535. } if (!yy_Sp(G)) { goto l522; } if (!yy_Ticks3(G)) { goto l522; } goto l459;
  3536. l522:; G->pos= yypos459; G->thunkpos= yythunkpos459; if (!yy_Ticks4(G)) { goto l553; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l553; }
  3537. { int yypos556= G->pos, yythunkpos556= G->thunkpos;
  3538. { int yypos560= G->pos, yythunkpos560= G->thunkpos; if (!yymatchChar(G, '`')) goto l560; goto l557;
  3539. l560:; G->pos= yypos560; G->thunkpos= yythunkpos560;
  3540. } if (!yy_Nonspacechar(G)) { goto l557; }
  3541. l558:;
  3542. { int yypos559= G->pos, yythunkpos559= G->thunkpos;
  3543. { int yypos561= G->pos, yythunkpos561= G->thunkpos; if (!yymatchChar(G, '`')) goto l561; goto l559;
  3544. l561:; G->pos= yypos561; G->thunkpos= yythunkpos561;
  3545. } if (!yy_Nonspacechar(G)) { goto l559; } goto l558;
  3546. l559:; G->pos= yypos559; G->thunkpos= yythunkpos559;
  3547. } goto l556;
  3548. l557:; G->pos= yypos556; G->thunkpos= yythunkpos556;
  3549. { int yypos563= G->pos, yythunkpos563= G->thunkpos; if (!yy_Ticks4(G)) { goto l563; } goto l562;
  3550. l563:; G->pos= yypos563; G->thunkpos= yythunkpos563;
  3551. } if (!yymatchChar(G, '`')) goto l562;
  3552. l564:;
  3553. { int yypos565= G->pos, yythunkpos565= G->thunkpos; if (!yymatchChar(G, '`')) goto l565; goto l564;
  3554. l565:; G->pos= yypos565; G->thunkpos= yythunkpos565;
  3555. } goto l556;
  3556. l562:; G->pos= yypos556; G->thunkpos= yythunkpos556;
  3557. { int yypos566= G->pos, yythunkpos566= G->thunkpos; if (!yy_Sp(G)) { goto l566; } if (!yy_Ticks4(G)) { goto l566; } goto l553;
  3558. l566:; G->pos= yypos566; G->thunkpos= yythunkpos566;
  3559. }
  3560. { int yypos567= G->pos, yythunkpos567= G->thunkpos; if (!yy_Spacechar(G)) { goto l568; } goto l567;
  3561. l568:; G->pos= yypos567; G->thunkpos= yythunkpos567; if (!yy_Newline(G)) { goto l553; }
  3562. { int yypos569= G->pos, yythunkpos569= G->thunkpos; if (!yy_BlankLine(G)) { goto l569; } goto l553;
  3563. l569:; G->pos= yypos569; G->thunkpos= yythunkpos569;
  3564. }
  3565. }
  3566. l567:;
  3567. }
  3568. l556:;
  3569. l554:;
  3570. { int yypos555= G->pos, yythunkpos555= G->thunkpos;
  3571. { int yypos570= G->pos, yythunkpos570= G->thunkpos;
  3572. { int yypos574= G->pos, yythunkpos574= G->thunkpos; if (!yymatchChar(G, '`')) goto l574; goto l571;
  3573. l574:; G->pos= yypos574; G->thunkpos= yythunkpos574;
  3574. } if (!yy_Nonspacechar(G)) { goto l571; }
  3575. l572:;
  3576. { int yypos573= G->pos, yythunkpos573= G->thunkpos;
  3577. { int yypos575= G->pos, yythunkpos575= G->thunkpos; if (!yymatchChar(G, '`')) goto l575; goto l573;
  3578. l575:; G->pos= yypos575; G->thunkpos= yythunkpos575;
  3579. } if (!yy_Nonspacechar(G)) { goto l573; } goto l572;
  3580. l573:; G->pos= yypos573; G->thunkpos= yythunkpos573;
  3581. } goto l570;
  3582. l571:; G->pos= yypos570; G->thunkpos= yythunkpos570;
  3583. { int yypos577= G->pos, yythunkpos577= G->thunkpos; if (!yy_Ticks4(G)) { goto l577; } goto l576;
  3584. l577:; G->pos= yypos577; G->thunkpos= yythunkpos577;
  3585. } if (!yymatchChar(G, '`')) goto l576;
  3586. l578:;
  3587. { int yypos579= G->pos, yythunkpos579= G->thunkpos; if (!yymatchChar(G, '`')) goto l579; goto l578;
  3588. l579:; G->pos= yypos579; G->thunkpos= yythunkpos579;
  3589. } goto l570;
  3590. l576:; G->pos= yypos570; G->thunkpos= yythunkpos570;
  3591. { int yypos580= G->pos, yythunkpos580= G->thunkpos; if (!yy_Sp(G)) { goto l580; } if (!yy_Ticks4(G)) { goto l580; } goto l555;
  3592. l580:; G->pos= yypos580; G->thunkpos= yythunkpos580;
  3593. }
  3594. { int yypos581= G->pos, yythunkpos581= G->thunkpos; if (!yy_Spacechar(G)) { goto l582; } goto l581;
  3595. l582:; G->pos= yypos581; G->thunkpos= yythunkpos581; if (!yy_Newline(G)) { goto l555; }
  3596. { int yypos583= G->pos, yythunkpos583= G->thunkpos; if (!yy_BlankLine(G)) { goto l583; } goto l555;
  3597. l583:; G->pos= yypos583; G->thunkpos= yythunkpos583;
  3598. }
  3599. }
  3600. l581:;
  3601. }
  3602. l570:; goto l554;
  3603. l555:; G->pos= yypos555; G->thunkpos= yythunkpos555;
  3604. } if (!yy_Sp(G)) { goto l553; } if (!yy_Ticks4(G)) { goto l553; } goto l459;
  3605. l553:; G->pos= yypos459; G->thunkpos= yythunkpos459; if (!yy_Ticks5(G)) { goto l458; } yyDo(G, yySet, -1, 0); if (!yy_Sp(G)) { goto l458; }
  3606. { int yypos586= G->pos, yythunkpos586= G->thunkpos;
  3607. { int yypos590= G->pos, yythunkpos590= G->thunkpos; if (!yymatchChar(G, '`')) goto l590; goto l587;
  3608. l590:; G->pos= yypos590; G->thunkpos= yythunkpos590;
  3609. } if (!yy_Nonspacechar(G)) { goto l587; }
  3610. l588:;
  3611. { int yypos589= G->pos, yythunkpos589= G->thunkpos;
  3612. { int yypos591= G->pos, yythunkpos591= G->thunkpos; if (!yymatchChar(G, '`')) goto l591; goto l589;
  3613. l591:; G->pos= yypos591; G->thunkpos= yythunkpos591;
  3614. } if (!yy_Nonspacechar(G)) { goto l589; } goto l588;
  3615. l589:; G->pos= yypos589; G->thunkpos= yythunkpos589;
  3616. } goto l586;
  3617. l587:; G->pos= yypos586; G->thunkpos= yythunkpos586;
  3618. { int yypos593= G->pos, yythunkpos593= G->thunkpos; if (!yy_Ticks5(G)) { goto l593; } goto l592;
  3619. l593:; G->pos= yypos593; G->thunkpos= yythunkpos593;
  3620. } if (!yymatchChar(G, '`')) goto l592;
  3621. l594:;
  3622. { int yypos595= G->pos, yythunkpos595= G->thunkpos; if (!yymatchChar(G, '`')) goto l595; goto l594;
  3623. l595:; G->pos= yypos595; G->thunkpos= yythunkpos595;
  3624. } goto l586;
  3625. l592:; G->pos= yypos586; G->thunkpos= yythunkpos586;
  3626. { int yypos596= G->pos, yythunkpos596= G->thunkpos; if (!yy_Sp(G)) { goto l596; } if (!yy_Ticks5(G)) { goto l596; } goto l458;
  3627. l596:; G->pos= yypos596; G->thunkpos= yythunkpos596;
  3628. }
  3629. { int yypos597= G->pos, yythunkpos597= G->thunkpos; if (!yy_Spacechar(G)) { goto l598; } goto l597;
  3630. l598:; G->pos= yypos597; G->thunkpos= yythunkpos597; if (!yy_Newline(G)) { goto l458; }
  3631. { int yypos599= G->pos, yythunkpos599= G->thunkpos; if (!yy_BlankLine(G)) { goto l599; } goto l458;
  3632. l599:; G->pos= yypos599; G->thunkpos= yythunkpos599;
  3633. }
  3634. }
  3635. l597:;
  3636. }
  3637. l586:;
  3638. l584:;
  3639. { int yypos585= G->pos, yythunkpos585= G->thunkpos;
  3640. { int yypos600= G->pos, yythunkpos600= G->thunkpos;
  3641. { int yypos604= G->pos, yythunkpos604= G->thunkpos; if (!yymatchChar(G, '`')) goto l604; goto l601;
  3642. l604:; G->pos= yypos604; G->thunkpos= yythunkpos604;
  3643. } if (!yy_Nonspacechar(G)) { goto l601; }
  3644. l602:;
  3645. { int yypos603= G->pos, yythunkpos603= G->thunkpos;
  3646. { int yypos605= G->pos, yythunkpos605= G->thunkpos; if (!yymatchChar(G, '`')) goto l605; goto l603;
  3647. l605:; G->pos= yypos605; G->thunkpos= yythunkpos605;
  3648. } if (!yy_Nonspacechar(G)) { goto l603; } goto l602;
  3649. l603:; G->pos= yypos603; G->thunkpos= yythunkpos603;
  3650. } goto l600;
  3651. l601:; G->pos= yypos600; G->thunkpos= yythunkpos600;
  3652. { int yypos607= G->pos, yythunkpos607= G->thunkpos; if (!yy_Ticks5(G)) { goto l607; } goto l606;
  3653. l607:; G->pos= yypos607; G->thunkpos= yythunkpos607;
  3654. } if (!yymatchChar(G, '`')) goto l606;
  3655. l608:;
  3656. { int yypos609= G->pos, yythunkpos609= G->thunkpos; if (!yymatchChar(G, '`')) goto l609; goto l608;
  3657. l609:; G->pos= yypos609; G->thunkpos= yythunkpos609;
  3658. } goto l600;
  3659. l606:; G->pos= yypos600; G->thunkpos= yythunkpos600;
  3660. { int yypos610= G->pos, yythunkpos610= G->thunkpos; if (!yy_Sp(G)) { goto l610; } if (!yy_Ticks5(G)) { goto l610; } goto l585;
  3661. l610:; G->pos= yypos610; G->thunkpos= yythunkpos610;
  3662. }
  3663. { int yypos611= G->pos, yythunkpos611= G->thunkpos; if (!yy_Spacechar(G)) { goto l612; } goto l611;
  3664. l612:; G->pos= yypos611; G->thunkpos= yythunkpos611; if (!yy_Newline(G)) { goto l585; }
  3665. { int yypos613= G->pos, yythunkpos613= G->thunkpos; if (!yy_BlankLine(G)) { goto l613; } goto l585;
  3666. l613:; G->pos= yypos613; G->thunkpos= yythunkpos613;
  3667. }
  3668. }
  3669. l611:;
  3670. }
  3671. l600:; goto l584;
  3672. l585:; G->pos= yypos585; G->thunkpos= yythunkpos585;
  3673. } if (!yy_Sp(G)) { goto l458; } if (!yy_Ticks5(G)) { goto l458; }
  3674. }
  3675. l459:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l458; yyDo(G, yy_1_Code, G->begin, G->end);
  3676. yyprintf((stderr, " ok %s @ %s\n", "Code", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3677. return 1;
  3678. l458:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3679. yyprintf((stderr, " fail %s @ %s\n", "Code", G->buf+G->pos));
  3680. return 0;
  3681. }
  3682. YY_RULE(int) yy_InlineNote(GREG *G)
  3683. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3684. yyprintf((stderr, "%s\n", "InlineNote")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l614; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l614; if (!yy_LocMarker(G)) { goto l614; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "^[")) goto l614;
  3685. { int yypos617= G->pos, yythunkpos617= G->thunkpos; if (!yymatchChar(G, ']')) goto l617; goto l614;
  3686. l617:; G->pos= yypos617; G->thunkpos= yythunkpos617;
  3687. } if (!yy_Inline(G)) { goto l614; }
  3688. l615:;
  3689. { int yypos616= G->pos, yythunkpos616= G->thunkpos;
  3690. { int yypos618= G->pos, yythunkpos618= G->thunkpos; if (!yymatchChar(G, ']')) goto l618; goto l616;
  3691. l618:; G->pos= yypos618; G->thunkpos= yythunkpos618;
  3692. } if (!yy_Inline(G)) { goto l616; } goto l615;
  3693. l616:; G->pos= yypos616; G->thunkpos= yythunkpos616;
  3694. } if (!yymatchChar(G, ']')) goto l614; yyText(G, G->begin, G->end); if (!(YY_END)) goto l614; yyDo(G, yy_1_InlineNote, G->begin, G->end);
  3695. yyprintf((stderr, " ok %s @ %s\n", "InlineNote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3696. return 1;
  3697. l614:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3698. yyprintf((stderr, " fail %s @ %s\n", "InlineNote", G->buf+G->pos));
  3699. return 0;
  3700. }
  3701. YY_RULE(int) yy_NoteReference(GREG *G)
  3702. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3703. yyprintf((stderr, "%s\n", "NoteReference")); 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_RawNoteReference(G)) { goto l619; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l619; yyDo(G, yy_1_NoteReference, G->begin, G->end);
  3704. yyprintf((stderr, " ok %s @ %s\n", "NoteReference", G->buf+G->pos));
  3705. return 1;
  3706. l619:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3707. yyprintf((stderr, " fail %s @ %s\n", "NoteReference", G->buf+G->pos));
  3708. return 0;
  3709. }
  3710. YY_RULE(int) yy_Link(GREG *G)
  3711. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3712. yyprintf((stderr, "%s\n", "Link"));
  3713. { int yypos621= G->pos, yythunkpos621= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l622; } goto l621;
  3714. l622:; G->pos= yypos621; G->thunkpos= yythunkpos621; if (!yy_ReferenceLink(G)) { goto l623; } goto l621;
  3715. l623:; G->pos= yypos621; G->thunkpos= yythunkpos621; if (!yy_AutoLink(G)) { goto l620; }
  3716. }
  3717. l621:; yyDo(G, yy_1_Link, G->begin, G->end);
  3718. yyprintf((stderr, " ok %s @ %s\n", "Link", G->buf+G->pos));
  3719. return 1;
  3720. l620:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3721. yyprintf((stderr, " fail %s @ %s\n", "Link", G->buf+G->pos));
  3722. return 0;
  3723. }
  3724. YY_RULE(int) yy_Image(GREG *G)
  3725. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3726. yyprintf((stderr, "%s\n", "Image")); if (!yymatchChar(G, '!')) goto l624;
  3727. { int yypos625= G->pos, yythunkpos625= G->thunkpos; if (!yy_ExplicitLink(G)) { goto l626; } goto l625;
  3728. l626:; G->pos= yypos625; G->thunkpos= yythunkpos625; if (!yy_ExplicitLinkSize(G)) { goto l627; } goto l625;
  3729. l627:; G->pos= yypos625; G->thunkpos= yythunkpos625; if (!yy_ReferenceLink(G)) { goto l624; }
  3730. }
  3731. l625:; yyDo(G, yy_1_Image, G->begin, G->end);
  3732. yyprintf((stderr, " ok %s @ %s\n", "Image", G->buf+G->pos));
  3733. return 1;
  3734. l624:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3735. yyprintf((stderr, " fail %s @ %s\n", "Image", G->buf+G->pos));
  3736. return 0;
  3737. }
  3738. YY_RULE(int) yy_Strike(GREG *G)
  3739. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3740. yyprintf((stderr, "%s\n", "Strike")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_STRIKE) )) goto l628; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l628; if (!yy_LocMarker(G)) { goto l628; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "~~")) goto l628;
  3741. { int yypos629= G->pos, yythunkpos629= G->thunkpos; if (!yy_Whitespace(G)) { goto l629; } goto l628;
  3742. l629:; G->pos= yypos629; G->thunkpos= yythunkpos629;
  3743. }
  3744. { int yypos632= G->pos, yythunkpos632= G->thunkpos; if (!yymatchString(G, "~~")) goto l632; goto l628;
  3745. l632:; G->pos= yypos632; G->thunkpos= yythunkpos632;
  3746. } if (!yy_Inline(G)) { goto l628; }
  3747. l630:;
  3748. { int yypos631= G->pos, yythunkpos631= G->thunkpos;
  3749. { int yypos633= G->pos, yythunkpos633= G->thunkpos; if (!yymatchString(G, "~~")) goto l633; goto l631;
  3750. l633:; G->pos= yypos633; G->thunkpos= yythunkpos633;
  3751. } if (!yy_Inline(G)) { goto l631; } goto l630;
  3752. l631:; G->pos= yypos631; G->thunkpos= yythunkpos631;
  3753. } yyText(G, G->begin, G->end); if (!( STRIKE_POST )) goto l628; if (!yymatchString(G, "~~")) goto l628; yyText(G, G->begin, G->end); if (!(YY_END)) goto l628; yyDo(G, yy_1_Strike, G->begin, G->end);
  3754. yyprintf((stderr, " ok %s @ %s\n", "Strike", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3755. return 1;
  3756. l628:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3757. yyprintf((stderr, " fail %s @ %s\n", "Strike", G->buf+G->pos));
  3758. return 0;
  3759. }
  3760. YY_RULE(int) yy_Emph(GREG *G)
  3761. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3762. yyprintf((stderr, "%s\n", "Emph"));
  3763. { int yypos635= G->pos, yythunkpos635= G->thunkpos; if (!yy_EmphStar(G)) { goto l636; } goto l635;
  3764. l636:; G->pos= yypos635; G->thunkpos= yythunkpos635; if (!yy_EmphUl(G)) { goto l634; }
  3765. }
  3766. l635:;
  3767. yyprintf((stderr, " ok %s @ %s\n", "Emph", G->buf+G->pos));
  3768. return 1;
  3769. l634:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3770. yyprintf((stderr, " fail %s @ %s\n", "Emph", G->buf+G->pos));
  3771. return 0;
  3772. }
  3773. YY_RULE(int) yy_Strong(GREG *G)
  3774. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3775. yyprintf((stderr, "%s\n", "Strong"));
  3776. { int yypos638= G->pos, yythunkpos638= G->thunkpos; if (!yy_StrongStar(G)) { goto l639; } goto l638;
  3777. l639:; G->pos= yypos638; G->thunkpos= yythunkpos638; if (!yy_StrongUl(G)) { goto l637; }
  3778. }
  3779. l638:;
  3780. yyprintf((stderr, " ok %s @ %s\n", "Strong", G->buf+G->pos));
  3781. return 1;
  3782. l637:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3783. yyprintf((stderr, " fail %s @ %s\n", "Strong", G->buf+G->pos));
  3784. return 0;
  3785. }
  3786. YY_RULE(int) yy_UlOrStarLine(GREG *G)
  3787. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3788. yyprintf((stderr, "%s\n", "UlOrStarLine"));
  3789. { int yypos641= G->pos, yythunkpos641= G->thunkpos; if (!yy_UlLine(G)) { goto l642; } goto l641;
  3790. l642:; G->pos= yypos641; G->thunkpos= yythunkpos641; if (!yy_StarLine(G)) { goto l640; }
  3791. }
  3792. l641:;
  3793. yyprintf((stderr, " ok %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3794. return 1;
  3795. l640:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3796. yyprintf((stderr, " fail %s @ %s\n", "UlOrStarLine", G->buf+G->pos));
  3797. return 0;
  3798. }
  3799. YY_RULE(int) yy_Str(GREG *G)
  3800. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3801. yyprintf((stderr, "%s\n", "Str")); if (!yy_NormalChar(G)) { goto l643; }
  3802. l644:;
  3803. { int yypos645= G->pos, yythunkpos645= G->thunkpos;
  3804. { int yypos646= G->pos, yythunkpos646= G->thunkpos; if (!yy_NormalChar(G)) { goto l647; } goto l646;
  3805. l647:; G->pos= yypos646; G->thunkpos= yythunkpos646; if (!yymatchChar(G, '_')) goto l645;
  3806. l648:;
  3807. { int yypos649= G->pos, yythunkpos649= G->thunkpos; if (!yymatchChar(G, '_')) goto l649; goto l648;
  3808. l649:; G->pos= yypos649; G->thunkpos= yythunkpos649;
  3809. }
  3810. { int yypos650= G->pos, yythunkpos650= G->thunkpos; if (!yy_Alphanumeric(G)) { goto l645; } G->pos= yypos650; G->thunkpos= yythunkpos650;
  3811. }
  3812. }
  3813. l646:; goto l644;
  3814. l645:; G->pos= yypos645; G->thunkpos= yythunkpos645;
  3815. }
  3816. yyprintf((stderr, " ok %s @ %s\n", "Str", G->buf+G->pos));
  3817. return 1;
  3818. l643:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3819. yyprintf((stderr, " fail %s @ %s\n", "Str", G->buf+G->pos));
  3820. return 0;
  3821. }
  3822. YY_RULE(int) yy_InStyleTags(GREG *G)
  3823. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3824. yyprintf((stderr, "%s\n", "InStyleTags")); if (!yy_StyleOpen(G)) { goto l651; }
  3825. l652:;
  3826. { int yypos653= G->pos, yythunkpos653= G->thunkpos;
  3827. { int yypos654= G->pos, yythunkpos654= G->thunkpos; if (!yy_StyleClose(G)) { goto l654; } goto l653;
  3828. l654:; G->pos= yypos654; G->thunkpos= yythunkpos654;
  3829. } if (!yymatchDot(G)) goto l653; goto l652;
  3830. l653:; G->pos= yypos653; G->thunkpos= yythunkpos653;
  3831. } if (!yy_StyleClose(G)) { goto l651; }
  3832. yyprintf((stderr, " ok %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3833. return 1;
  3834. l651:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3835. yyprintf((stderr, " fail %s @ %s\n", "InStyleTags", G->buf+G->pos));
  3836. return 0;
  3837. }
  3838. YY_RULE(int) yy_StyleClose(GREG *G)
  3839. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3840. yyprintf((stderr, "%s\n", "StyleClose")); if (!yymatchChar(G, '<')) goto l655; if (!yy_Spnl(G)) { goto l655; } if (!yymatchChar(G, '/')) goto l655;
  3841. { int yypos656= G->pos, yythunkpos656= G->thunkpos; if (!yymatchString(G, "style")) goto l657; goto l656;
  3842. l657:; G->pos= yypos656; G->thunkpos= yythunkpos656; if (!yymatchString(G, "STYLE")) goto l655;
  3843. }
  3844. l656:; if (!yy_Spnl(G)) { goto l655; } if (!yymatchChar(G, '>')) goto l655;
  3845. yyprintf((stderr, " ok %s @ %s\n", "StyleClose", G->buf+G->pos));
  3846. return 1;
  3847. l655:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3848. yyprintf((stderr, " fail %s @ %s\n", "StyleClose", G->buf+G->pos));
  3849. return 0;
  3850. }
  3851. YY_RULE(int) yy_StyleOpen(GREG *G)
  3852. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3853. yyprintf((stderr, "%s\n", "StyleOpen")); if (!yymatchChar(G, '<')) goto l658; if (!yy_Spnl(G)) { goto l658; }
  3854. { int yypos659= G->pos, yythunkpos659= G->thunkpos; if (!yymatchString(G, "style")) goto l660; goto l659;
  3855. l660:; G->pos= yypos659; G->thunkpos= yythunkpos659; if (!yymatchString(G, "STYLE")) goto l658;
  3856. }
  3857. l659:; if (!yy_Spnl(G)) { goto l658; }
  3858. l661:;
  3859. { int yypos662= G->pos, yythunkpos662= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l662; } goto l661;
  3860. l662:; G->pos= yypos662; G->thunkpos= yythunkpos662;
  3861. } if (!yymatchChar(G, '>')) goto l658;
  3862. yyprintf((stderr, " ok %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3863. return 1;
  3864. l658:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3865. yyprintf((stderr, " fail %s @ %s\n", "StyleOpen", G->buf+G->pos));
  3866. return 0;
  3867. }
  3868. YY_RULE(int) yy_HtmlBlockType(GREG *G)
  3869. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3870. yyprintf((stderr, "%s\n", "HtmlBlockType"));
  3871. { int yypos664= G->pos, yythunkpos664= G->thunkpos; if (!yymatchString(G, "address")) goto l665; goto l664;
  3872. l665:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "blockquote")) goto l666; goto l664;
  3873. l666:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "center")) goto l667; goto l664;
  3874. l667:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "dir")) goto l668; goto l664;
  3875. l668:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "div")) goto l669; goto l664;
  3876. l669:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "dl")) goto l670; goto l664;
  3877. l670:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "fieldset")) goto l671; goto l664;
  3878. l671:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "form")) goto l672; goto l664;
  3879. l672:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "h1")) goto l673; goto l664;
  3880. l673:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "h2")) goto l674; goto l664;
  3881. l674:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "h3")) goto l675; goto l664;
  3882. l675:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "h4")) goto l676; goto l664;
  3883. l676:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "h5")) goto l677; goto l664;
  3884. l677:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "h6")) goto l678; goto l664;
  3885. l678:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "hr")) goto l679; goto l664;
  3886. l679:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "isindex")) goto l680; goto l664;
  3887. l680:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "menu")) goto l681; goto l664;
  3888. l681:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "noframes")) goto l682; goto l664;
  3889. l682:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "noscript")) goto l683; goto l664;
  3890. l683:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "ol")) goto l684; goto l664;
  3891. l684:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchChar(G, 'p')) goto l685; goto l664;
  3892. l685:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "pre")) goto l686; goto l664;
  3893. l686:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "table")) goto l687; goto l664;
  3894. l687:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "ul")) goto l688; goto l664;
  3895. l688:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "dd")) goto l689; goto l664;
  3896. l689:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "dt")) goto l690; goto l664;
  3897. l690:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "frameset")) goto l691; goto l664;
  3898. l691:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "li")) goto l692; goto l664;
  3899. l692:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "tbody")) goto l693; goto l664;
  3900. l693:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "td")) goto l694; goto l664;
  3901. l694:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "tfoot")) goto l695; goto l664;
  3902. l695:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "th")) goto l696; goto l664;
  3903. l696:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "thead")) goto l697; goto l664;
  3904. l697:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "tr")) goto l698; goto l664;
  3905. l698:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "script")) goto l699; goto l664;
  3906. l699:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "ADDRESS")) goto l700; goto l664;
  3907. l700:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "BLOCKQUOTE")) goto l701; goto l664;
  3908. l701:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "CENTER")) goto l702; goto l664;
  3909. l702:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "DIR")) goto l703; goto l664;
  3910. l703:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "DIV")) goto l704; goto l664;
  3911. l704:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "DL")) goto l705; goto l664;
  3912. l705:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "FIELDSET")) goto l706; goto l664;
  3913. l706:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "FORM")) goto l707; goto l664;
  3914. l707:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "H1")) goto l708; goto l664;
  3915. l708:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "H2")) goto l709; goto l664;
  3916. l709:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "H3")) goto l710; goto l664;
  3917. l710:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "H4")) goto l711; goto l664;
  3918. l711:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "H5")) goto l712; goto l664;
  3919. l712:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "H6")) goto l713; goto l664;
  3920. l713:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "HR")) goto l714; goto l664;
  3921. l714:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "ISINDEX")) goto l715; goto l664;
  3922. l715:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "MENU")) goto l716; goto l664;
  3923. l716:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "NOFRAMES")) goto l717; goto l664;
  3924. l717:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "NOSCRIPT")) goto l718; goto l664;
  3925. l718:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "OL")) goto l719; goto l664;
  3926. l719:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchChar(G, 'P')) goto l720; goto l664;
  3927. l720:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "PRE")) goto l721; goto l664;
  3928. l721:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "TABLE")) goto l722; goto l664;
  3929. l722:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "UL")) goto l723; goto l664;
  3930. l723:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "DD")) goto l724; goto l664;
  3931. l724:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "DT")) goto l725; goto l664;
  3932. l725:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "FRAMESET")) goto l726; goto l664;
  3933. l726:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "LI")) goto l727; goto l664;
  3934. l727:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "TBODY")) goto l728; goto l664;
  3935. l728:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "TD")) goto l729; goto l664;
  3936. l729:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "TFOOT")) goto l730; goto l664;
  3937. l730:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "TH")) goto l731; goto l664;
  3938. l731:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "THEAD")) goto l732; goto l664;
  3939. l732:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "TR")) goto l733; goto l664;
  3940. l733:; G->pos= yypos664; G->thunkpos= yythunkpos664; if (!yymatchString(G, "SCRIPT")) goto l663;
  3941. }
  3942. l664:;
  3943. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3944. return 1;
  3945. l663:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3946. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockType", G->buf+G->pos));
  3947. return 0;
  3948. }
  3949. YY_RULE(int) yy_HtmlBlockSelfClosing(GREG *G)
  3950. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3951. yyprintf((stderr, "%s\n", "HtmlBlockSelfClosing")); if (!yymatchChar(G, '<')) goto l734; if (!yy_Spnl(G)) { goto l734; } if (!yy_HtmlBlockType(G)) { goto l734; } if (!yy_Spnl(G)) { goto l734; }
  3952. l735:;
  3953. { int yypos736= G->pos, yythunkpos736= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l736; } goto l735;
  3954. l736:; G->pos= yypos736; G->thunkpos= yythunkpos736;
  3955. } if (!yymatchChar(G, '/')) goto l734; if (!yy_Spnl(G)) { goto l734; } if (!yymatchChar(G, '>')) goto l734;
  3956. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3957. return 1;
  3958. l734:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3959. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockSelfClosing", G->buf+G->pos));
  3960. return 0;
  3961. }
  3962. YY_RULE(int) yy_HtmlComment(GREG *G)
  3963. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  3964. yyprintf((stderr, "%s\n", "HtmlComment")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l737; if (!yy_LocMarker(G)) { goto l737; } yyDo(G, yySet, -1, 0); if (!yymatchString(G, "<!--")) goto l737;
  3965. l738:;
  3966. { int yypos739= G->pos, yythunkpos739= G->thunkpos;
  3967. { int yypos740= G->pos, yythunkpos740= G->thunkpos; if (!yymatchString(G, "-->")) goto l740; goto l739;
  3968. l740:; G->pos= yypos740; G->thunkpos= yythunkpos740;
  3969. } if (!yymatchDot(G)) goto l739; goto l738;
  3970. l739:; G->pos= yypos739; G->thunkpos= yythunkpos739;
  3971. } if (!yymatchString(G, "-->")) goto l737; yyText(G, G->begin, G->end); if (!(YY_END)) goto l737; yyDo(G, yy_1_HtmlComment, G->begin, G->end);
  3972. yyprintf((stderr, " ok %s @ %s\n", "HtmlComment", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  3973. return 1;
  3974. l737:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  3975. yyprintf((stderr, " fail %s @ %s\n", "HtmlComment", G->buf+G->pos));
  3976. return 0;
  3977. }
  3978. YY_RULE(int) yy_HtmlBlockInTags(GREG *G)
  3979. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  3980. yyprintf((stderr, "%s\n", "HtmlBlockInTags"));
  3981. { int yypos742= G->pos, yythunkpos742= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l743; } goto l742;
  3982. l743:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockBlockquote(G)) { goto l744; } goto l742;
  3983. l744:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockCenter(G)) { goto l745; } goto l742;
  3984. l745:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockDir(G)) { goto l746; } goto l742;
  3985. l746:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockDiv(G)) { goto l747; } goto l742;
  3986. l747:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockDl(G)) { goto l748; } goto l742;
  3987. l748:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockFieldset(G)) { goto l749; } goto l742;
  3988. l749:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockForm(G)) { goto l750; } goto l742;
  3989. l750:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockH1(G)) { goto l751; } goto l742;
  3990. l751:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockH2(G)) { goto l752; } goto l742;
  3991. l752:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockH3(G)) { goto l753; } goto l742;
  3992. l753:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockH4(G)) { goto l754; } goto l742;
  3993. l754:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockH5(G)) { goto l755; } goto l742;
  3994. l755:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockH6(G)) { goto l756; } goto l742;
  3995. l756:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockMenu(G)) { goto l757; } goto l742;
  3996. l757:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockNoframes(G)) { goto l758; } goto l742;
  3997. l758:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockNoscript(G)) { goto l759; } goto l742;
  3998. l759:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockOl(G)) { goto l760; } goto l742;
  3999. l760:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockP(G)) { goto l761; } goto l742;
  4000. l761:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockPre(G)) { goto l762; } goto l742;
  4001. l762:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockTable(G)) { goto l763; } goto l742;
  4002. l763:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockUl(G)) { goto l764; } goto l742;
  4003. l764:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockDd(G)) { goto l765; } goto l742;
  4004. l765:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockDt(G)) { goto l766; } goto l742;
  4005. l766:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockFrameset(G)) { goto l767; } goto l742;
  4006. l767:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockLi(G)) { goto l768; } goto l742;
  4007. l768:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockTbody(G)) { goto l769; } goto l742;
  4008. l769:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockTd(G)) { goto l770; } goto l742;
  4009. l770:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockTfoot(G)) { goto l771; } goto l742;
  4010. l771:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockTh(G)) { goto l772; } goto l742;
  4011. l772:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockThead(G)) { goto l773; } goto l742;
  4012. l773:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockTr(G)) { goto l774; } goto l742;
  4013. l774:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockScript(G)) { goto l775; } goto l742;
  4014. l775:; G->pos= yypos742; G->thunkpos= yythunkpos742; if (!yy_HtmlBlockHead(G)) { goto l741; }
  4015. }
  4016. l742:;
  4017. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  4018. return 1;
  4019. l741:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4020. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockInTags", G->buf+G->pos));
  4021. return 0;
  4022. }
  4023. YY_RULE(int) yy_HtmlBlockHead(GREG *G)
  4024. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4025. yyprintf((stderr, "%s\n", "HtmlBlockHead")); if (!yy_HtmlBlockOpenHead(G)) { goto l776; }
  4026. l777:;
  4027. { int yypos778= G->pos, yythunkpos778= G->thunkpos;
  4028. { int yypos779= G->pos, yythunkpos779= G->thunkpos; if (!yy_HtmlBlockCloseHead(G)) { goto l779; } goto l778;
  4029. l779:; G->pos= yypos779; G->thunkpos= yythunkpos779;
  4030. } if (!yymatchDot(G)) goto l778; goto l777;
  4031. l778:; G->pos= yypos778; G->thunkpos= yythunkpos778;
  4032. } if (!yy_HtmlBlockCloseHead(G)) { goto l776; }
  4033. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  4034. return 1;
  4035. l776:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4036. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockHead", G->buf+G->pos));
  4037. return 0;
  4038. }
  4039. YY_RULE(int) yy_HtmlBlockCloseHead(GREG *G)
  4040. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4041. yyprintf((stderr, "%s\n", "HtmlBlockCloseHead")); if (!yymatchChar(G, '<')) goto l780; if (!yy_Spnl(G)) { goto l780; } if (!yymatchChar(G, '/')) goto l780;
  4042. { int yypos781= G->pos, yythunkpos781= G->thunkpos; if (!yymatchString(G, "head")) goto l782; goto l781;
  4043. l782:; G->pos= yypos781; G->thunkpos= yythunkpos781; if (!yymatchString(G, "HEAD")) goto l780;
  4044. }
  4045. l781:; if (!yy_Spnl(G)) { goto l780; } if (!yymatchChar(G, '>')) goto l780;
  4046. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  4047. return 1;
  4048. l780:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4049. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseHead", G->buf+G->pos));
  4050. return 0;
  4051. }
  4052. YY_RULE(int) yy_HtmlBlockOpenHead(GREG *G)
  4053. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4054. yyprintf((stderr, "%s\n", "HtmlBlockOpenHead")); if (!yymatchChar(G, '<')) goto l783; if (!yy_Spnl(G)) { goto l783; }
  4055. { int yypos784= G->pos, yythunkpos784= G->thunkpos; if (!yymatchString(G, "head")) goto l785; goto l784;
  4056. l785:; G->pos= yypos784; G->thunkpos= yythunkpos784; if (!yymatchString(G, "HEAD")) goto l783;
  4057. }
  4058. l784:; if (!yy_Spnl(G)) { goto l783; }
  4059. l786:;
  4060. { int yypos787= G->pos, yythunkpos787= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l787; } goto l786;
  4061. l787:; G->pos= yypos787; G->thunkpos= yythunkpos787;
  4062. } if (!yymatchChar(G, '>')) goto l783;
  4063. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  4064. return 1;
  4065. l783:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4066. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenHead", G->buf+G->pos));
  4067. return 0;
  4068. }
  4069. YY_RULE(int) yy_HtmlBlockScript(GREG *G)
  4070. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4071. yyprintf((stderr, "%s\n", "HtmlBlockScript")); if (!yy_HtmlBlockOpenScript(G)) { goto l788; }
  4072. l789:;
  4073. { int yypos790= G->pos, yythunkpos790= G->thunkpos;
  4074. { int yypos791= G->pos, yythunkpos791= G->thunkpos; if (!yy_HtmlBlockCloseScript(G)) { goto l791; } goto l790;
  4075. l791:; G->pos= yypos791; G->thunkpos= yythunkpos791;
  4076. } if (!yymatchDot(G)) goto l790; goto l789;
  4077. l790:; G->pos= yypos790; G->thunkpos= yythunkpos790;
  4078. } if (!yy_HtmlBlockCloseScript(G)) { goto l788; }
  4079. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  4080. return 1;
  4081. l788:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4082. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockScript", G->buf+G->pos));
  4083. return 0;
  4084. }
  4085. YY_RULE(int) yy_HtmlBlockCloseScript(GREG *G)
  4086. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4087. yyprintf((stderr, "%s\n", "HtmlBlockCloseScript")); if (!yymatchChar(G, '<')) goto l792; if (!yy_Spnl(G)) { goto l792; } if (!yymatchChar(G, '/')) goto l792;
  4088. { int yypos793= G->pos, yythunkpos793= G->thunkpos; if (!yymatchString(G, "script")) goto l794; goto l793;
  4089. l794:; G->pos= yypos793; G->thunkpos= yythunkpos793; if (!yymatchString(G, "SCRIPT")) goto l792;
  4090. }
  4091. l793:; if (!yy_Spnl(G)) { goto l792; } if (!yymatchChar(G, '>')) goto l792;
  4092. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4093. return 1;
  4094. l792:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4095. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseScript", G->buf+G->pos));
  4096. return 0;
  4097. }
  4098. YY_RULE(int) yy_HtmlBlockOpenScript(GREG *G)
  4099. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4100. yyprintf((stderr, "%s\n", "HtmlBlockOpenScript")); if (!yymatchChar(G, '<')) goto l795; if (!yy_Spnl(G)) { goto l795; }
  4101. { int yypos796= G->pos, yythunkpos796= G->thunkpos; if (!yymatchString(G, "script")) goto l797; goto l796;
  4102. l797:; G->pos= yypos796; G->thunkpos= yythunkpos796; if (!yymatchString(G, "SCRIPT")) goto l795;
  4103. }
  4104. l796:; if (!yy_Spnl(G)) { goto l795; }
  4105. l798:;
  4106. { int yypos799= G->pos, yythunkpos799= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l799; } goto l798;
  4107. l799:; G->pos= yypos799; G->thunkpos= yythunkpos799;
  4108. } if (!yymatchChar(G, '>')) goto l795;
  4109. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4110. return 1;
  4111. l795:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4112. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenScript", G->buf+G->pos));
  4113. return 0;
  4114. }
  4115. YY_RULE(int) yy_HtmlBlockTr(GREG *G)
  4116. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4117. yyprintf((stderr, "%s\n", "HtmlBlockTr")); if (!yy_HtmlBlockOpenTr(G)) { goto l800; }
  4118. l801:;
  4119. { int yypos802= G->pos, yythunkpos802= G->thunkpos;
  4120. { int yypos803= G->pos, yythunkpos803= G->thunkpos; if (!yy_HtmlBlockTr(G)) { goto l804; } goto l803;
  4121. l804:; G->pos= yypos803; G->thunkpos= yythunkpos803;
  4122. { int yypos805= G->pos, yythunkpos805= G->thunkpos; if (!yy_HtmlBlockCloseTr(G)) { goto l805; } goto l802;
  4123. l805:; G->pos= yypos805; G->thunkpos= yythunkpos805;
  4124. } if (!yymatchDot(G)) goto l802;
  4125. }
  4126. l803:; goto l801;
  4127. l802:; G->pos= yypos802; G->thunkpos= yythunkpos802;
  4128. } if (!yy_HtmlBlockCloseTr(G)) { goto l800; }
  4129. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4130. return 1;
  4131. l800:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4132. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTr", G->buf+G->pos));
  4133. return 0;
  4134. }
  4135. YY_RULE(int) yy_HtmlBlockCloseTr(GREG *G)
  4136. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4137. yyprintf((stderr, "%s\n", "HtmlBlockCloseTr")); if (!yymatchChar(G, '<')) goto l806; if (!yy_Spnl(G)) { goto l806; } if (!yymatchChar(G, '/')) goto l806;
  4138. { int yypos807= G->pos, yythunkpos807= G->thunkpos; if (!yymatchString(G, "tr")) goto l808; goto l807;
  4139. l808:; G->pos= yypos807; G->thunkpos= yythunkpos807; if (!yymatchString(G, "TR")) goto l806;
  4140. }
  4141. l807:; if (!yy_Spnl(G)) { goto l806; } if (!yymatchChar(G, '>')) goto l806;
  4142. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4143. return 1;
  4144. l806:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4145. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTr", G->buf+G->pos));
  4146. return 0;
  4147. }
  4148. YY_RULE(int) yy_HtmlBlockOpenTr(GREG *G)
  4149. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4150. yyprintf((stderr, "%s\n", "HtmlBlockOpenTr")); if (!yymatchChar(G, '<')) goto l809; if (!yy_Spnl(G)) { goto l809; }
  4151. { int yypos810= G->pos, yythunkpos810= G->thunkpos; if (!yymatchString(G, "tr")) goto l811; goto l810;
  4152. l811:; G->pos= yypos810; G->thunkpos= yythunkpos810; if (!yymatchString(G, "TR")) goto l809;
  4153. }
  4154. l810:; if (!yy_Spnl(G)) { goto l809; }
  4155. l812:;
  4156. { int yypos813= G->pos, yythunkpos813= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l813; } goto l812;
  4157. l813:; G->pos= yypos813; G->thunkpos= yythunkpos813;
  4158. } if (!yymatchChar(G, '>')) goto l809;
  4159. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4160. return 1;
  4161. l809:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4162. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTr", G->buf+G->pos));
  4163. return 0;
  4164. }
  4165. YY_RULE(int) yy_HtmlBlockThead(GREG *G)
  4166. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4167. yyprintf((stderr, "%s\n", "HtmlBlockThead")); if (!yy_HtmlBlockOpenThead(G)) { goto l814; }
  4168. l815:;
  4169. { int yypos816= G->pos, yythunkpos816= G->thunkpos;
  4170. { int yypos817= G->pos, yythunkpos817= G->thunkpos; if (!yy_HtmlBlockThead(G)) { goto l818; } goto l817;
  4171. l818:; G->pos= yypos817; G->thunkpos= yythunkpos817;
  4172. { int yypos819= G->pos, yythunkpos819= G->thunkpos; if (!yy_HtmlBlockCloseThead(G)) { goto l819; } goto l816;
  4173. l819:; G->pos= yypos819; G->thunkpos= yythunkpos819;
  4174. } if (!yymatchDot(G)) goto l816;
  4175. }
  4176. l817:; goto l815;
  4177. l816:; G->pos= yypos816; G->thunkpos= yythunkpos816;
  4178. } if (!yy_HtmlBlockCloseThead(G)) { goto l814; }
  4179. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4180. return 1;
  4181. l814:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4182. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockThead", G->buf+G->pos));
  4183. return 0;
  4184. }
  4185. YY_RULE(int) yy_HtmlBlockCloseThead(GREG *G)
  4186. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4187. yyprintf((stderr, "%s\n", "HtmlBlockCloseThead")); if (!yymatchChar(G, '<')) goto l820; if (!yy_Spnl(G)) { goto l820; } if (!yymatchChar(G, '/')) goto l820;
  4188. { int yypos821= G->pos, yythunkpos821= G->thunkpos; if (!yymatchString(G, "thead")) goto l822; goto l821;
  4189. l822:; G->pos= yypos821; G->thunkpos= yythunkpos821; if (!yymatchString(G, "THEAD")) goto l820;
  4190. }
  4191. l821:; if (!yy_Spnl(G)) { goto l820; } if (!yymatchChar(G, '>')) goto l820;
  4192. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4193. return 1;
  4194. l820:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4195. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseThead", G->buf+G->pos));
  4196. return 0;
  4197. }
  4198. YY_RULE(int) yy_HtmlBlockOpenThead(GREG *G)
  4199. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4200. yyprintf((stderr, "%s\n", "HtmlBlockOpenThead")); if (!yymatchChar(G, '<')) goto l823; if (!yy_Spnl(G)) { goto l823; }
  4201. { int yypos824= G->pos, yythunkpos824= G->thunkpos; if (!yymatchString(G, "thead")) goto l825; goto l824;
  4202. l825:; G->pos= yypos824; G->thunkpos= yythunkpos824; if (!yymatchString(G, "THEAD")) goto l823;
  4203. }
  4204. l824:; if (!yy_Spnl(G)) { goto l823; }
  4205. l826:;
  4206. { int yypos827= G->pos, yythunkpos827= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l827; } goto l826;
  4207. l827:; G->pos= yypos827; G->thunkpos= yythunkpos827;
  4208. } if (!yymatchChar(G, '>')) goto l823;
  4209. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4210. return 1;
  4211. l823:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4212. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenThead", G->buf+G->pos));
  4213. return 0;
  4214. }
  4215. YY_RULE(int) yy_HtmlBlockTh(GREG *G)
  4216. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4217. yyprintf((stderr, "%s\n", "HtmlBlockTh")); if (!yy_HtmlBlockOpenTh(G)) { goto l828; }
  4218. l829:;
  4219. { int yypos830= G->pos, yythunkpos830= G->thunkpos;
  4220. { int yypos831= G->pos, yythunkpos831= G->thunkpos; if (!yy_HtmlBlockTh(G)) { goto l832; } goto l831;
  4221. l832:; G->pos= yypos831; G->thunkpos= yythunkpos831;
  4222. { int yypos833= G->pos, yythunkpos833= G->thunkpos; if (!yy_HtmlBlockCloseTh(G)) { goto l833; } goto l830;
  4223. l833:; G->pos= yypos833; G->thunkpos= yythunkpos833;
  4224. } if (!yymatchDot(G)) goto l830;
  4225. }
  4226. l831:; goto l829;
  4227. l830:; G->pos= yypos830; G->thunkpos= yythunkpos830;
  4228. } if (!yy_HtmlBlockCloseTh(G)) { goto l828; }
  4229. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4230. return 1;
  4231. l828:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4232. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTh", G->buf+G->pos));
  4233. return 0;
  4234. }
  4235. YY_RULE(int) yy_HtmlBlockCloseTh(GREG *G)
  4236. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4237. yyprintf((stderr, "%s\n", "HtmlBlockCloseTh")); if (!yymatchChar(G, '<')) goto l834; if (!yy_Spnl(G)) { goto l834; } if (!yymatchChar(G, '/')) goto l834;
  4238. { int yypos835= G->pos, yythunkpos835= G->thunkpos; if (!yymatchString(G, "th")) goto l836; goto l835;
  4239. l836:; G->pos= yypos835; G->thunkpos= yythunkpos835; if (!yymatchString(G, "TH")) goto l834;
  4240. }
  4241. l835:; if (!yy_Spnl(G)) { goto l834; } if (!yymatchChar(G, '>')) goto l834;
  4242. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4243. return 1;
  4244. l834:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4245. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTh", G->buf+G->pos));
  4246. return 0;
  4247. }
  4248. YY_RULE(int) yy_HtmlBlockOpenTh(GREG *G)
  4249. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4250. yyprintf((stderr, "%s\n", "HtmlBlockOpenTh")); if (!yymatchChar(G, '<')) goto l837; if (!yy_Spnl(G)) { goto l837; }
  4251. { int yypos838= G->pos, yythunkpos838= G->thunkpos; if (!yymatchString(G, "th")) goto l839; goto l838;
  4252. l839:; G->pos= yypos838; G->thunkpos= yythunkpos838; if (!yymatchString(G, "TH")) goto l837;
  4253. }
  4254. l838:; if (!yy_Spnl(G)) { goto l837; }
  4255. l840:;
  4256. { int yypos841= G->pos, yythunkpos841= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l841; } goto l840;
  4257. l841:; G->pos= yypos841; G->thunkpos= yythunkpos841;
  4258. } if (!yymatchChar(G, '>')) goto l837;
  4259. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4260. return 1;
  4261. l837:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4262. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTh", G->buf+G->pos));
  4263. return 0;
  4264. }
  4265. YY_RULE(int) yy_HtmlBlockTfoot(GREG *G)
  4266. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4267. yyprintf((stderr, "%s\n", "HtmlBlockTfoot")); if (!yy_HtmlBlockOpenTfoot(G)) { goto l842; }
  4268. l843:;
  4269. { int yypos844= G->pos, yythunkpos844= G->thunkpos;
  4270. { int yypos845= G->pos, yythunkpos845= G->thunkpos; if (!yy_HtmlBlockTfoot(G)) { goto l846; } goto l845;
  4271. l846:; G->pos= yypos845; G->thunkpos= yythunkpos845;
  4272. { int yypos847= G->pos, yythunkpos847= G->thunkpos; if (!yy_HtmlBlockCloseTfoot(G)) { goto l847; } goto l844;
  4273. l847:; G->pos= yypos847; G->thunkpos= yythunkpos847;
  4274. } if (!yymatchDot(G)) goto l844;
  4275. }
  4276. l845:; goto l843;
  4277. l844:; G->pos= yypos844; G->thunkpos= yythunkpos844;
  4278. } if (!yy_HtmlBlockCloseTfoot(G)) { goto l842; }
  4279. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4280. return 1;
  4281. l842:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4282. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTfoot", G->buf+G->pos));
  4283. return 0;
  4284. }
  4285. YY_RULE(int) yy_HtmlBlockCloseTfoot(GREG *G)
  4286. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4287. yyprintf((stderr, "%s\n", "HtmlBlockCloseTfoot")); if (!yymatchChar(G, '<')) goto l848; if (!yy_Spnl(G)) { goto l848; } if (!yymatchChar(G, '/')) goto l848;
  4288. { int yypos849= G->pos, yythunkpos849= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l850; goto l849;
  4289. l850:; G->pos= yypos849; G->thunkpos= yythunkpos849; if (!yymatchString(G, "TFOOT")) goto l848;
  4290. }
  4291. l849:; if (!yy_Spnl(G)) { goto l848; } if (!yymatchChar(G, '>')) goto l848;
  4292. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4293. return 1;
  4294. l848:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4295. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTfoot", G->buf+G->pos));
  4296. return 0;
  4297. }
  4298. YY_RULE(int) yy_HtmlBlockOpenTfoot(GREG *G)
  4299. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4300. yyprintf((stderr, "%s\n", "HtmlBlockOpenTfoot")); if (!yymatchChar(G, '<')) goto l851; if (!yy_Spnl(G)) { goto l851; }
  4301. { int yypos852= G->pos, yythunkpos852= G->thunkpos; if (!yymatchString(G, "tfoot")) goto l853; goto l852;
  4302. l853:; G->pos= yypos852; G->thunkpos= yythunkpos852; if (!yymatchString(G, "TFOOT")) goto l851;
  4303. }
  4304. l852:; if (!yy_Spnl(G)) { goto l851; }
  4305. l854:;
  4306. { int yypos855= G->pos, yythunkpos855= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l855; } goto l854;
  4307. l855:; G->pos= yypos855; G->thunkpos= yythunkpos855;
  4308. } if (!yymatchChar(G, '>')) goto l851;
  4309. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4310. return 1;
  4311. l851:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4312. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTfoot", G->buf+G->pos));
  4313. return 0;
  4314. }
  4315. YY_RULE(int) yy_HtmlBlockTd(GREG *G)
  4316. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4317. yyprintf((stderr, "%s\n", "HtmlBlockTd")); if (!yy_HtmlBlockOpenTd(G)) { goto l856; }
  4318. l857:;
  4319. { int yypos858= G->pos, yythunkpos858= G->thunkpos;
  4320. { int yypos859= G->pos, yythunkpos859= G->thunkpos; if (!yy_HtmlBlockTd(G)) { goto l860; } goto l859;
  4321. l860:; G->pos= yypos859; G->thunkpos= yythunkpos859;
  4322. { int yypos861= G->pos, yythunkpos861= G->thunkpos; if (!yy_HtmlBlockCloseTd(G)) { goto l861; } goto l858;
  4323. l861:; G->pos= yypos861; G->thunkpos= yythunkpos861;
  4324. } if (!yymatchDot(G)) goto l858;
  4325. }
  4326. l859:; goto l857;
  4327. l858:; G->pos= yypos858; G->thunkpos= yythunkpos858;
  4328. } if (!yy_HtmlBlockCloseTd(G)) { goto l856; }
  4329. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4330. return 1;
  4331. l856:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4332. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTd", G->buf+G->pos));
  4333. return 0;
  4334. }
  4335. YY_RULE(int) yy_HtmlBlockCloseTd(GREG *G)
  4336. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4337. yyprintf((stderr, "%s\n", "HtmlBlockCloseTd")); if (!yymatchChar(G, '<')) goto l862; if (!yy_Spnl(G)) { goto l862; } if (!yymatchChar(G, '/')) goto l862;
  4338. { int yypos863= G->pos, yythunkpos863= G->thunkpos; if (!yymatchString(G, "td")) goto l864; goto l863;
  4339. l864:; G->pos= yypos863; G->thunkpos= yythunkpos863; if (!yymatchString(G, "TD")) goto l862;
  4340. }
  4341. l863:; if (!yy_Spnl(G)) { goto l862; } if (!yymatchChar(G, '>')) goto l862;
  4342. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4343. return 1;
  4344. l862:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4345. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTd", G->buf+G->pos));
  4346. return 0;
  4347. }
  4348. YY_RULE(int) yy_HtmlBlockOpenTd(GREG *G)
  4349. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4350. yyprintf((stderr, "%s\n", "HtmlBlockOpenTd")); if (!yymatchChar(G, '<')) goto l865; if (!yy_Spnl(G)) { goto l865; }
  4351. { int yypos866= G->pos, yythunkpos866= G->thunkpos; if (!yymatchString(G, "td")) goto l867; goto l866;
  4352. l867:; G->pos= yypos866; G->thunkpos= yythunkpos866; if (!yymatchString(G, "TD")) goto l865;
  4353. }
  4354. l866:; if (!yy_Spnl(G)) { goto l865; }
  4355. l868:;
  4356. { int yypos869= G->pos, yythunkpos869= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l869; } goto l868;
  4357. l869:; G->pos= yypos869; G->thunkpos= yythunkpos869;
  4358. } if (!yymatchChar(G, '>')) goto l865;
  4359. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4360. return 1;
  4361. l865:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4362. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTd", G->buf+G->pos));
  4363. return 0;
  4364. }
  4365. YY_RULE(int) yy_HtmlBlockTbody(GREG *G)
  4366. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4367. yyprintf((stderr, "%s\n", "HtmlBlockTbody")); if (!yy_HtmlBlockOpenTbody(G)) { goto l870; }
  4368. l871:;
  4369. { int yypos872= G->pos, yythunkpos872= G->thunkpos;
  4370. { int yypos873= G->pos, yythunkpos873= G->thunkpos; if (!yy_HtmlBlockTbody(G)) { goto l874; } goto l873;
  4371. l874:; G->pos= yypos873; G->thunkpos= yythunkpos873;
  4372. { int yypos875= G->pos, yythunkpos875= G->thunkpos; if (!yy_HtmlBlockCloseTbody(G)) { goto l875; } goto l872;
  4373. l875:; G->pos= yypos875; G->thunkpos= yythunkpos875;
  4374. } if (!yymatchDot(G)) goto l872;
  4375. }
  4376. l873:; goto l871;
  4377. l872:; G->pos= yypos872; G->thunkpos= yythunkpos872;
  4378. } if (!yy_HtmlBlockCloseTbody(G)) { goto l870; }
  4379. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4380. return 1;
  4381. l870:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4382. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTbody", G->buf+G->pos));
  4383. return 0;
  4384. }
  4385. YY_RULE(int) yy_HtmlBlockCloseTbody(GREG *G)
  4386. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4387. yyprintf((stderr, "%s\n", "HtmlBlockCloseTbody")); if (!yymatchChar(G, '<')) goto l876; if (!yy_Spnl(G)) { goto l876; } if (!yymatchChar(G, '/')) goto l876;
  4388. { int yypos877= G->pos, yythunkpos877= G->thunkpos; if (!yymatchString(G, "tbody")) goto l878; goto l877;
  4389. l878:; G->pos= yypos877; G->thunkpos= yythunkpos877; if (!yymatchString(G, "TBODY")) goto l876;
  4390. }
  4391. l877:; if (!yy_Spnl(G)) { goto l876; } if (!yymatchChar(G, '>')) goto l876;
  4392. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4393. return 1;
  4394. l876:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4395. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTbody", G->buf+G->pos));
  4396. return 0;
  4397. }
  4398. YY_RULE(int) yy_HtmlBlockOpenTbody(GREG *G)
  4399. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4400. yyprintf((stderr, "%s\n", "HtmlBlockOpenTbody")); if (!yymatchChar(G, '<')) goto l879; if (!yy_Spnl(G)) { goto l879; }
  4401. { int yypos880= G->pos, yythunkpos880= G->thunkpos; if (!yymatchString(G, "tbody")) goto l881; goto l880;
  4402. l881:; G->pos= yypos880; G->thunkpos= yythunkpos880; if (!yymatchString(G, "TBODY")) goto l879;
  4403. }
  4404. l880:; if (!yy_Spnl(G)) { goto l879; }
  4405. l882:;
  4406. { int yypos883= G->pos, yythunkpos883= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l883; } goto l882;
  4407. l883:; G->pos= yypos883; G->thunkpos= yythunkpos883;
  4408. } if (!yymatchChar(G, '>')) goto l879;
  4409. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4410. return 1;
  4411. l879:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4412. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTbody", G->buf+G->pos));
  4413. return 0;
  4414. }
  4415. YY_RULE(int) yy_HtmlBlockLi(GREG *G)
  4416. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4417. yyprintf((stderr, "%s\n", "HtmlBlockLi")); if (!yy_HtmlBlockOpenLi(G)) { goto l884; }
  4418. l885:;
  4419. { int yypos886= G->pos, yythunkpos886= G->thunkpos;
  4420. { int yypos887= G->pos, yythunkpos887= G->thunkpos; if (!yy_HtmlBlockLi(G)) { goto l888; } goto l887;
  4421. l888:; G->pos= yypos887; G->thunkpos= yythunkpos887;
  4422. { int yypos889= G->pos, yythunkpos889= G->thunkpos; if (!yy_HtmlBlockCloseLi(G)) { goto l889; } goto l886;
  4423. l889:; G->pos= yypos889; G->thunkpos= yythunkpos889;
  4424. } if (!yymatchDot(G)) goto l886;
  4425. }
  4426. l887:; goto l885;
  4427. l886:; G->pos= yypos886; G->thunkpos= yythunkpos886;
  4428. } if (!yy_HtmlBlockCloseLi(G)) { goto l884; }
  4429. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4430. return 1;
  4431. l884:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4432. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockLi", G->buf+G->pos));
  4433. return 0;
  4434. }
  4435. YY_RULE(int) yy_HtmlBlockCloseLi(GREG *G)
  4436. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4437. yyprintf((stderr, "%s\n", "HtmlBlockCloseLi")); if (!yymatchChar(G, '<')) goto l890; if (!yy_Spnl(G)) { goto l890; } if (!yymatchChar(G, '/')) goto l890;
  4438. { int yypos891= G->pos, yythunkpos891= G->thunkpos; if (!yymatchString(G, "li")) goto l892; goto l891;
  4439. l892:; G->pos= yypos891; G->thunkpos= yythunkpos891; if (!yymatchString(G, "LI")) goto l890;
  4440. }
  4441. l891:; if (!yy_Spnl(G)) { goto l890; } if (!yymatchChar(G, '>')) goto l890;
  4442. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4443. return 1;
  4444. l890:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4445. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseLi", G->buf+G->pos));
  4446. return 0;
  4447. }
  4448. YY_RULE(int) yy_HtmlBlockOpenLi(GREG *G)
  4449. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4450. yyprintf((stderr, "%s\n", "HtmlBlockOpenLi")); if (!yymatchChar(G, '<')) goto l893; if (!yy_Spnl(G)) { goto l893; }
  4451. { int yypos894= G->pos, yythunkpos894= G->thunkpos; if (!yymatchString(G, "li")) goto l895; goto l894;
  4452. l895:; G->pos= yypos894; G->thunkpos= yythunkpos894; if (!yymatchString(G, "LI")) goto l893;
  4453. }
  4454. l894:; if (!yy_Spnl(G)) { goto l893; }
  4455. l896:;
  4456. { int yypos897= G->pos, yythunkpos897= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l897; } goto l896;
  4457. l897:; G->pos= yypos897; G->thunkpos= yythunkpos897;
  4458. } if (!yymatchChar(G, '>')) goto l893;
  4459. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4460. return 1;
  4461. l893:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4462. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenLi", G->buf+G->pos));
  4463. return 0;
  4464. }
  4465. YY_RULE(int) yy_HtmlBlockFrameset(GREG *G)
  4466. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4467. yyprintf((stderr, "%s\n", "HtmlBlockFrameset")); if (!yy_HtmlBlockOpenFrameset(G)) { goto l898; }
  4468. l899:;
  4469. { int yypos900= G->pos, yythunkpos900= G->thunkpos;
  4470. { int yypos901= G->pos, yythunkpos901= G->thunkpos; if (!yy_HtmlBlockFrameset(G)) { goto l902; } goto l901;
  4471. l902:; G->pos= yypos901; G->thunkpos= yythunkpos901;
  4472. { int yypos903= G->pos, yythunkpos903= G->thunkpos; if (!yy_HtmlBlockCloseFrameset(G)) { goto l903; } goto l900;
  4473. l903:; G->pos= yypos903; G->thunkpos= yythunkpos903;
  4474. } if (!yymatchDot(G)) goto l900;
  4475. }
  4476. l901:; goto l899;
  4477. l900:; G->pos= yypos900; G->thunkpos= yythunkpos900;
  4478. } if (!yy_HtmlBlockCloseFrameset(G)) { goto l898; }
  4479. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4480. return 1;
  4481. l898:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4482. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFrameset", G->buf+G->pos));
  4483. return 0;
  4484. }
  4485. YY_RULE(int) yy_HtmlBlockCloseFrameset(GREG *G)
  4486. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4487. yyprintf((stderr, "%s\n", "HtmlBlockCloseFrameset")); if (!yymatchChar(G, '<')) goto l904; if (!yy_Spnl(G)) { goto l904; } if (!yymatchChar(G, '/')) goto l904;
  4488. { int yypos905= G->pos, yythunkpos905= G->thunkpos; if (!yymatchString(G, "frameset")) goto l906; goto l905;
  4489. l906:; G->pos= yypos905; G->thunkpos= yythunkpos905; if (!yymatchString(G, "FRAMESET")) goto l904;
  4490. }
  4491. l905:; if (!yy_Spnl(G)) { goto l904; } if (!yymatchChar(G, '>')) goto l904;
  4492. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4493. return 1;
  4494. l904:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4495. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFrameset", G->buf+G->pos));
  4496. return 0;
  4497. }
  4498. YY_RULE(int) yy_HtmlBlockOpenFrameset(GREG *G)
  4499. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4500. yyprintf((stderr, "%s\n", "HtmlBlockOpenFrameset")); if (!yymatchChar(G, '<')) goto l907; if (!yy_Spnl(G)) { goto l907; }
  4501. { int yypos908= G->pos, yythunkpos908= G->thunkpos; if (!yymatchString(G, "frameset")) goto l909; goto l908;
  4502. l909:; G->pos= yypos908; G->thunkpos= yythunkpos908; if (!yymatchString(G, "FRAMESET")) goto l907;
  4503. }
  4504. l908:; if (!yy_Spnl(G)) { goto l907; }
  4505. l910:;
  4506. { int yypos911= G->pos, yythunkpos911= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l911; } goto l910;
  4507. l911:; G->pos= yypos911; G->thunkpos= yythunkpos911;
  4508. } if (!yymatchChar(G, '>')) goto l907;
  4509. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4510. return 1;
  4511. l907:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4512. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFrameset", G->buf+G->pos));
  4513. return 0;
  4514. }
  4515. YY_RULE(int) yy_HtmlBlockDt(GREG *G)
  4516. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4517. yyprintf((stderr, "%s\n", "HtmlBlockDt")); if (!yy_HtmlBlockOpenDt(G)) { goto l912; }
  4518. l913:;
  4519. { int yypos914= G->pos, yythunkpos914= G->thunkpos;
  4520. { int yypos915= G->pos, yythunkpos915= G->thunkpos; if (!yy_HtmlBlockDt(G)) { goto l916; } goto l915;
  4521. l916:; G->pos= yypos915; G->thunkpos= yythunkpos915;
  4522. { int yypos917= G->pos, yythunkpos917= G->thunkpos; if (!yy_HtmlBlockCloseDt(G)) { goto l917; } goto l914;
  4523. l917:; G->pos= yypos917; G->thunkpos= yythunkpos917;
  4524. } if (!yymatchDot(G)) goto l914;
  4525. }
  4526. l915:; goto l913;
  4527. l914:; G->pos= yypos914; G->thunkpos= yythunkpos914;
  4528. } if (!yy_HtmlBlockCloseDt(G)) { goto l912; }
  4529. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4530. return 1;
  4531. l912:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4532. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDt", G->buf+G->pos));
  4533. return 0;
  4534. }
  4535. YY_RULE(int) yy_HtmlBlockCloseDt(GREG *G)
  4536. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4537. yyprintf((stderr, "%s\n", "HtmlBlockCloseDt")); if (!yymatchChar(G, '<')) goto l918; if (!yy_Spnl(G)) { goto l918; } if (!yymatchChar(G, '/')) goto l918;
  4538. { int yypos919= G->pos, yythunkpos919= G->thunkpos; if (!yymatchString(G, "dt")) goto l920; goto l919;
  4539. l920:; G->pos= yypos919; G->thunkpos= yythunkpos919; if (!yymatchString(G, "DT")) goto l918;
  4540. }
  4541. l919:; if (!yy_Spnl(G)) { goto l918; } if (!yymatchChar(G, '>')) goto l918;
  4542. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4543. return 1;
  4544. l918:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4545. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDt", G->buf+G->pos));
  4546. return 0;
  4547. }
  4548. YY_RULE(int) yy_HtmlBlockOpenDt(GREG *G)
  4549. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4550. yyprintf((stderr, "%s\n", "HtmlBlockOpenDt")); if (!yymatchChar(G, '<')) goto l921; if (!yy_Spnl(G)) { goto l921; }
  4551. { int yypos922= G->pos, yythunkpos922= G->thunkpos; if (!yymatchString(G, "dt")) goto l923; goto l922;
  4552. l923:; G->pos= yypos922; G->thunkpos= yythunkpos922; if (!yymatchString(G, "DT")) goto l921;
  4553. }
  4554. l922:; if (!yy_Spnl(G)) { goto l921; }
  4555. l924:;
  4556. { int yypos925= G->pos, yythunkpos925= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l925; } goto l924;
  4557. l925:; G->pos= yypos925; G->thunkpos= yythunkpos925;
  4558. } if (!yymatchChar(G, '>')) goto l921;
  4559. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4560. return 1;
  4561. l921:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4562. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDt", G->buf+G->pos));
  4563. return 0;
  4564. }
  4565. YY_RULE(int) yy_HtmlBlockDd(GREG *G)
  4566. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4567. yyprintf((stderr, "%s\n", "HtmlBlockDd")); if (!yy_HtmlBlockOpenDd(G)) { goto l926; }
  4568. l927:;
  4569. { int yypos928= G->pos, yythunkpos928= G->thunkpos;
  4570. { int yypos929= G->pos, yythunkpos929= G->thunkpos; if (!yy_HtmlBlockDd(G)) { goto l930; } goto l929;
  4571. l930:; G->pos= yypos929; G->thunkpos= yythunkpos929;
  4572. { int yypos931= G->pos, yythunkpos931= G->thunkpos; if (!yy_HtmlBlockCloseDd(G)) { goto l931; } goto l928;
  4573. l931:; G->pos= yypos931; G->thunkpos= yythunkpos931;
  4574. } if (!yymatchDot(G)) goto l928;
  4575. }
  4576. l929:; goto l927;
  4577. l928:; G->pos= yypos928; G->thunkpos= yythunkpos928;
  4578. } if (!yy_HtmlBlockCloseDd(G)) { goto l926; }
  4579. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4580. return 1;
  4581. l926:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4582. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDd", G->buf+G->pos));
  4583. return 0;
  4584. }
  4585. YY_RULE(int) yy_HtmlBlockCloseDd(GREG *G)
  4586. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4587. yyprintf((stderr, "%s\n", "HtmlBlockCloseDd")); if (!yymatchChar(G, '<')) goto l932; if (!yy_Spnl(G)) { goto l932; } if (!yymatchChar(G, '/')) goto l932;
  4588. { int yypos933= G->pos, yythunkpos933= G->thunkpos; if (!yymatchString(G, "dd")) goto l934; goto l933;
  4589. l934:; G->pos= yypos933; G->thunkpos= yythunkpos933; if (!yymatchString(G, "DD")) goto l932;
  4590. }
  4591. l933:; if (!yy_Spnl(G)) { goto l932; } if (!yymatchChar(G, '>')) goto l932;
  4592. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4593. return 1;
  4594. l932:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4595. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDd", G->buf+G->pos));
  4596. return 0;
  4597. }
  4598. YY_RULE(int) yy_HtmlBlockOpenDd(GREG *G)
  4599. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4600. yyprintf((stderr, "%s\n", "HtmlBlockOpenDd")); if (!yymatchChar(G, '<')) goto l935; if (!yy_Spnl(G)) { goto l935; }
  4601. { int yypos936= G->pos, yythunkpos936= G->thunkpos; if (!yymatchString(G, "dd")) goto l937; goto l936;
  4602. l937:; G->pos= yypos936; G->thunkpos= yythunkpos936; if (!yymatchString(G, "DD")) goto l935;
  4603. }
  4604. l936:; if (!yy_Spnl(G)) { goto l935; }
  4605. l938:;
  4606. { int yypos939= G->pos, yythunkpos939= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l939; } goto l938;
  4607. l939:; G->pos= yypos939; G->thunkpos= yythunkpos939;
  4608. } if (!yymatchChar(G, '>')) goto l935;
  4609. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4610. return 1;
  4611. l935:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4612. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDd", G->buf+G->pos));
  4613. return 0;
  4614. }
  4615. YY_RULE(int) yy_HtmlBlockUl(GREG *G)
  4616. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4617. yyprintf((stderr, "%s\n", "HtmlBlockUl")); if (!yy_HtmlBlockOpenUl(G)) { goto l940; }
  4618. l941:;
  4619. { int yypos942= G->pos, yythunkpos942= G->thunkpos;
  4620. { int yypos943= G->pos, yythunkpos943= G->thunkpos; if (!yy_HtmlBlockUl(G)) { goto l944; } goto l943;
  4621. l944:; G->pos= yypos943; G->thunkpos= yythunkpos943;
  4622. { int yypos945= G->pos, yythunkpos945= G->thunkpos; if (!yy_HtmlBlockCloseUl(G)) { goto l945; } goto l942;
  4623. l945:; G->pos= yypos945; G->thunkpos= yythunkpos945;
  4624. } if (!yymatchDot(G)) goto l942;
  4625. }
  4626. l943:; goto l941;
  4627. l942:; G->pos= yypos942; G->thunkpos= yythunkpos942;
  4628. } if (!yy_HtmlBlockCloseUl(G)) { goto l940; }
  4629. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4630. return 1;
  4631. l940:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4632. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockUl", G->buf+G->pos));
  4633. return 0;
  4634. }
  4635. YY_RULE(int) yy_HtmlBlockCloseUl(GREG *G)
  4636. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4637. yyprintf((stderr, "%s\n", "HtmlBlockCloseUl")); if (!yymatchChar(G, '<')) goto l946; if (!yy_Spnl(G)) { goto l946; } if (!yymatchChar(G, '/')) goto l946;
  4638. { int yypos947= G->pos, yythunkpos947= G->thunkpos; if (!yymatchString(G, "ul")) goto l948; goto l947;
  4639. l948:; G->pos= yypos947; G->thunkpos= yythunkpos947; if (!yymatchString(G, "UL")) goto l946;
  4640. }
  4641. l947:; if (!yy_Spnl(G)) { goto l946; } if (!yymatchChar(G, '>')) goto l946;
  4642. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4643. return 1;
  4644. l946:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4645. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseUl", G->buf+G->pos));
  4646. return 0;
  4647. }
  4648. YY_RULE(int) yy_HtmlBlockOpenUl(GREG *G)
  4649. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4650. yyprintf((stderr, "%s\n", "HtmlBlockOpenUl")); if (!yymatchChar(G, '<')) goto l949; if (!yy_Spnl(G)) { goto l949; }
  4651. { int yypos950= G->pos, yythunkpos950= G->thunkpos; if (!yymatchString(G, "ul")) goto l951; goto l950;
  4652. l951:; G->pos= yypos950; G->thunkpos= yythunkpos950; if (!yymatchString(G, "UL")) goto l949;
  4653. }
  4654. l950:; if (!yy_Spnl(G)) { goto l949; }
  4655. l952:;
  4656. { int yypos953= G->pos, yythunkpos953= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l953; } goto l952;
  4657. l953:; G->pos= yypos953; G->thunkpos= yythunkpos953;
  4658. } if (!yymatchChar(G, '>')) goto l949;
  4659. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4660. return 1;
  4661. l949:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4662. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenUl", G->buf+G->pos));
  4663. return 0;
  4664. }
  4665. YY_RULE(int) yy_HtmlBlockTable(GREG *G)
  4666. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4667. yyprintf((stderr, "%s\n", "HtmlBlockTable")); if (!yy_HtmlBlockOpenTable(G)) { goto l954; }
  4668. l955:;
  4669. { int yypos956= G->pos, yythunkpos956= G->thunkpos;
  4670. { int yypos957= G->pos, yythunkpos957= G->thunkpos; if (!yy_HtmlBlockTable(G)) { goto l958; } goto l957;
  4671. l958:; G->pos= yypos957; G->thunkpos= yythunkpos957;
  4672. { int yypos959= G->pos, yythunkpos959= G->thunkpos; if (!yy_HtmlBlockCloseTable(G)) { goto l959; } goto l956;
  4673. l959:; G->pos= yypos959; G->thunkpos= yythunkpos959;
  4674. } if (!yymatchDot(G)) goto l956;
  4675. }
  4676. l957:; goto l955;
  4677. l956:; G->pos= yypos956; G->thunkpos= yythunkpos956;
  4678. } if (!yy_HtmlBlockCloseTable(G)) { goto l954; }
  4679. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4680. return 1;
  4681. l954:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4682. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockTable", G->buf+G->pos));
  4683. return 0;
  4684. }
  4685. YY_RULE(int) yy_HtmlBlockCloseTable(GREG *G)
  4686. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4687. yyprintf((stderr, "%s\n", "HtmlBlockCloseTable")); if (!yymatchChar(G, '<')) goto l960; if (!yy_Spnl(G)) { goto l960; } if (!yymatchChar(G, '/')) goto l960;
  4688. { int yypos961= G->pos, yythunkpos961= G->thunkpos; if (!yymatchString(G, "table")) goto l962; goto l961;
  4689. l962:; G->pos= yypos961; G->thunkpos= yythunkpos961; if (!yymatchString(G, "TABLE")) goto l960;
  4690. }
  4691. l961:; if (!yy_Spnl(G)) { goto l960; } if (!yymatchChar(G, '>')) goto l960;
  4692. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4693. return 1;
  4694. l960:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4695. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTable", G->buf+G->pos));
  4696. return 0;
  4697. }
  4698. YY_RULE(int) yy_HtmlBlockOpenTable(GREG *G)
  4699. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4700. yyprintf((stderr, "%s\n", "HtmlBlockOpenTable")); if (!yymatchChar(G, '<')) goto l963; if (!yy_Spnl(G)) { goto l963; }
  4701. { int yypos964= G->pos, yythunkpos964= G->thunkpos; if (!yymatchString(G, "table")) goto l965; goto l964;
  4702. l965:; G->pos= yypos964; G->thunkpos= yythunkpos964; if (!yymatchString(G, "TABLE")) goto l963;
  4703. }
  4704. l964:; if (!yy_Spnl(G)) { goto l963; }
  4705. l966:;
  4706. { int yypos967= G->pos, yythunkpos967= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l967; } goto l966;
  4707. l967:; G->pos= yypos967; G->thunkpos= yythunkpos967;
  4708. } if (!yymatchChar(G, '>')) goto l963;
  4709. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4710. return 1;
  4711. l963:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4712. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTable", G->buf+G->pos));
  4713. return 0;
  4714. }
  4715. YY_RULE(int) yy_HtmlBlockPre(GREG *G)
  4716. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4717. yyprintf((stderr, "%s\n", "HtmlBlockPre")); if (!yy_HtmlBlockOpenPre(G)) { goto l968; }
  4718. l969:;
  4719. { int yypos970= G->pos, yythunkpos970= G->thunkpos;
  4720. { int yypos971= G->pos, yythunkpos971= G->thunkpos; if (!yy_HtmlBlockPre(G)) { goto l972; } goto l971;
  4721. l972:; G->pos= yypos971; G->thunkpos= yythunkpos971;
  4722. { int yypos973= G->pos, yythunkpos973= G->thunkpos; if (!yy_HtmlBlockClosePre(G)) { goto l973; } goto l970;
  4723. l973:; G->pos= yypos973; G->thunkpos= yythunkpos973;
  4724. } if (!yymatchDot(G)) goto l970;
  4725. }
  4726. l971:; goto l969;
  4727. l970:; G->pos= yypos970; G->thunkpos= yythunkpos970;
  4728. } if (!yy_HtmlBlockClosePre(G)) { goto l968; }
  4729. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4730. return 1;
  4731. l968:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4732. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockPre", G->buf+G->pos));
  4733. return 0;
  4734. }
  4735. YY_RULE(int) yy_HtmlBlockClosePre(GREG *G)
  4736. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4737. yyprintf((stderr, "%s\n", "HtmlBlockClosePre")); if (!yymatchChar(G, '<')) goto l974; if (!yy_Spnl(G)) { goto l974; } if (!yymatchChar(G, '/')) goto l974;
  4738. { int yypos975= G->pos, yythunkpos975= G->thunkpos; if (!yymatchString(G, "pre")) goto l976; goto l975;
  4739. l976:; G->pos= yypos975; G->thunkpos= yythunkpos975; if (!yymatchString(G, "PRE")) goto l974;
  4740. }
  4741. l975:; if (!yy_Spnl(G)) { goto l974; } if (!yymatchChar(G, '>')) goto l974;
  4742. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4743. return 1;
  4744. l974:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4745. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockClosePre", G->buf+G->pos));
  4746. return 0;
  4747. }
  4748. YY_RULE(int) yy_HtmlBlockOpenPre(GREG *G)
  4749. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4750. yyprintf((stderr, "%s\n", "HtmlBlockOpenPre")); if (!yymatchChar(G, '<')) goto l977; if (!yy_Spnl(G)) { goto l977; }
  4751. { int yypos978= G->pos, yythunkpos978= G->thunkpos; if (!yymatchString(G, "pre")) goto l979; goto l978;
  4752. l979:; G->pos= yypos978; G->thunkpos= yythunkpos978; if (!yymatchString(G, "PRE")) goto l977;
  4753. }
  4754. l978:; if (!yy_Spnl(G)) { goto l977; }
  4755. l980:;
  4756. { int yypos981= G->pos, yythunkpos981= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l981; } goto l980;
  4757. l981:; G->pos= yypos981; G->thunkpos= yythunkpos981;
  4758. } if (!yymatchChar(G, '>')) goto l977;
  4759. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4760. return 1;
  4761. l977:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4762. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenPre", G->buf+G->pos));
  4763. return 0;
  4764. }
  4765. YY_RULE(int) yy_HtmlBlockP(GREG *G)
  4766. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4767. yyprintf((stderr, "%s\n", "HtmlBlockP")); if (!yy_HtmlBlockOpenP(G)) { goto l982; }
  4768. l983:;
  4769. { int yypos984= G->pos, yythunkpos984= G->thunkpos;
  4770. { int yypos985= G->pos, yythunkpos985= G->thunkpos; if (!yy_HtmlBlockP(G)) { goto l986; } goto l985;
  4771. l986:; G->pos= yypos985; G->thunkpos= yythunkpos985;
  4772. { int yypos987= G->pos, yythunkpos987= G->thunkpos; if (!yy_HtmlBlockCloseP(G)) { goto l987; } goto l984;
  4773. l987:; G->pos= yypos987; G->thunkpos= yythunkpos987;
  4774. } if (!yymatchDot(G)) goto l984;
  4775. }
  4776. l985:; goto l983;
  4777. l984:; G->pos= yypos984; G->thunkpos= yythunkpos984;
  4778. } if (!yy_HtmlBlockCloseP(G)) { goto l982; }
  4779. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4780. return 1;
  4781. l982:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4782. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockP", G->buf+G->pos));
  4783. return 0;
  4784. }
  4785. YY_RULE(int) yy_HtmlBlockCloseP(GREG *G)
  4786. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4787. yyprintf((stderr, "%s\n", "HtmlBlockCloseP")); if (!yymatchChar(G, '<')) goto l988; if (!yy_Spnl(G)) { goto l988; } if (!yymatchChar(G, '/')) goto l988;
  4788. { int yypos989= G->pos, yythunkpos989= G->thunkpos; if (!yymatchChar(G, 'p')) goto l990; goto l989;
  4789. l990:; G->pos= yypos989; G->thunkpos= yythunkpos989; if (!yymatchChar(G, 'P')) goto l988;
  4790. }
  4791. l989:; if (!yy_Spnl(G)) { goto l988; } if (!yymatchChar(G, '>')) goto l988;
  4792. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4793. return 1;
  4794. l988:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4795. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseP", G->buf+G->pos));
  4796. return 0;
  4797. }
  4798. YY_RULE(int) yy_HtmlBlockOpenP(GREG *G)
  4799. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4800. yyprintf((stderr, "%s\n", "HtmlBlockOpenP")); if (!yymatchChar(G, '<')) goto l991; if (!yy_Spnl(G)) { goto l991; }
  4801. { int yypos992= G->pos, yythunkpos992= G->thunkpos; if (!yymatchChar(G, 'p')) goto l993; goto l992;
  4802. l993:; G->pos= yypos992; G->thunkpos= yythunkpos992; if (!yymatchChar(G, 'P')) goto l991;
  4803. }
  4804. l992:; if (!yy_Spnl(G)) { goto l991; }
  4805. l994:;
  4806. { int yypos995= G->pos, yythunkpos995= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l995; } goto l994;
  4807. l995:; G->pos= yypos995; G->thunkpos= yythunkpos995;
  4808. } if (!yymatchChar(G, '>')) goto l991;
  4809. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4810. return 1;
  4811. l991:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4812. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenP", G->buf+G->pos));
  4813. return 0;
  4814. }
  4815. YY_RULE(int) yy_HtmlBlockOl(GREG *G)
  4816. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4817. yyprintf((stderr, "%s\n", "HtmlBlockOl")); if (!yy_HtmlBlockOpenOl(G)) { goto l996; }
  4818. l997:;
  4819. { int yypos998= G->pos, yythunkpos998= G->thunkpos;
  4820. { int yypos999= G->pos, yythunkpos999= G->thunkpos; if (!yy_HtmlBlockOl(G)) { goto l1000; } goto l999;
  4821. l1000:; G->pos= yypos999; G->thunkpos= yythunkpos999;
  4822. { int yypos1001= G->pos, yythunkpos1001= G->thunkpos; if (!yy_HtmlBlockCloseOl(G)) { goto l1001; } goto l998;
  4823. l1001:; G->pos= yypos1001; G->thunkpos= yythunkpos1001;
  4824. } if (!yymatchDot(G)) goto l998;
  4825. }
  4826. l999:; goto l997;
  4827. l998:; G->pos= yypos998; G->thunkpos= yythunkpos998;
  4828. } if (!yy_HtmlBlockCloseOl(G)) { goto l996; }
  4829. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4830. return 1;
  4831. l996:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4832. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOl", G->buf+G->pos));
  4833. return 0;
  4834. }
  4835. YY_RULE(int) yy_HtmlBlockCloseOl(GREG *G)
  4836. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4837. yyprintf((stderr, "%s\n", "HtmlBlockCloseOl")); if (!yymatchChar(G, '<')) goto l1002; if (!yy_Spnl(G)) { goto l1002; } if (!yymatchChar(G, '/')) goto l1002;
  4838. { int yypos1003= G->pos, yythunkpos1003= G->thunkpos; if (!yymatchString(G, "ol")) goto l1004; goto l1003;
  4839. l1004:; G->pos= yypos1003; G->thunkpos= yythunkpos1003; if (!yymatchString(G, "OL")) goto l1002;
  4840. }
  4841. l1003:; if (!yy_Spnl(G)) { goto l1002; } if (!yymatchChar(G, '>')) goto l1002;
  4842. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4843. return 1;
  4844. l1002:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4845. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseOl", G->buf+G->pos));
  4846. return 0;
  4847. }
  4848. YY_RULE(int) yy_HtmlBlockOpenOl(GREG *G)
  4849. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4850. yyprintf((stderr, "%s\n", "HtmlBlockOpenOl")); if (!yymatchChar(G, '<')) goto l1005; if (!yy_Spnl(G)) { goto l1005; }
  4851. { int yypos1006= G->pos, yythunkpos1006= G->thunkpos; if (!yymatchString(G, "ol")) goto l1007; goto l1006;
  4852. l1007:; G->pos= yypos1006; G->thunkpos= yythunkpos1006; if (!yymatchString(G, "OL")) goto l1005;
  4853. }
  4854. l1006:; if (!yy_Spnl(G)) { goto l1005; }
  4855. l1008:;
  4856. { int yypos1009= G->pos, yythunkpos1009= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1009; } goto l1008;
  4857. l1009:; G->pos= yypos1009; G->thunkpos= yythunkpos1009;
  4858. } if (!yymatchChar(G, '>')) goto l1005;
  4859. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4860. return 1;
  4861. l1005:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4862. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenOl", G->buf+G->pos));
  4863. return 0;
  4864. }
  4865. YY_RULE(int) yy_HtmlBlockNoscript(GREG *G)
  4866. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4867. yyprintf((stderr, "%s\n", "HtmlBlockNoscript")); if (!yy_HtmlBlockOpenNoscript(G)) { goto l1010; }
  4868. l1011:;
  4869. { int yypos1012= G->pos, yythunkpos1012= G->thunkpos;
  4870. { int yypos1013= G->pos, yythunkpos1013= G->thunkpos; if (!yy_HtmlBlockNoscript(G)) { goto l1014; } goto l1013;
  4871. l1014:; G->pos= yypos1013; G->thunkpos= yythunkpos1013;
  4872. { int yypos1015= G->pos, yythunkpos1015= G->thunkpos; if (!yy_HtmlBlockCloseNoscript(G)) { goto l1015; } goto l1012;
  4873. l1015:; G->pos= yypos1015; G->thunkpos= yythunkpos1015;
  4874. } if (!yymatchDot(G)) goto l1012;
  4875. }
  4876. l1013:; goto l1011;
  4877. l1012:; G->pos= yypos1012; G->thunkpos= yythunkpos1012;
  4878. } if (!yy_HtmlBlockCloseNoscript(G)) { goto l1010; }
  4879. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4880. return 1;
  4881. l1010:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4882. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoscript", G->buf+G->pos));
  4883. return 0;
  4884. }
  4885. YY_RULE(int) yy_HtmlBlockCloseNoscript(GREG *G)
  4886. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4887. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoscript")); if (!yymatchChar(G, '<')) goto l1016; if (!yy_Spnl(G)) { goto l1016; } if (!yymatchChar(G, '/')) goto l1016;
  4888. { int yypos1017= G->pos, yythunkpos1017= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1018; goto l1017;
  4889. l1018:; G->pos= yypos1017; G->thunkpos= yythunkpos1017; if (!yymatchString(G, "NOSCRIPT")) goto l1016;
  4890. }
  4891. l1017:; if (!yy_Spnl(G)) { goto l1016; } if (!yymatchChar(G, '>')) goto l1016;
  4892. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4893. return 1;
  4894. l1016:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4895. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoscript", G->buf+G->pos));
  4896. return 0;
  4897. }
  4898. YY_RULE(int) yy_HtmlBlockOpenNoscript(GREG *G)
  4899. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4900. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoscript")); if (!yymatchChar(G, '<')) goto l1019; if (!yy_Spnl(G)) { goto l1019; }
  4901. { int yypos1020= G->pos, yythunkpos1020= G->thunkpos; if (!yymatchString(G, "noscript")) goto l1021; goto l1020;
  4902. l1021:; G->pos= yypos1020; G->thunkpos= yythunkpos1020; if (!yymatchString(G, "NOSCRIPT")) goto l1019;
  4903. }
  4904. l1020:; if (!yy_Spnl(G)) { goto l1019; }
  4905. l1022:;
  4906. { int yypos1023= G->pos, yythunkpos1023= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1023; } goto l1022;
  4907. l1023:; G->pos= yypos1023; G->thunkpos= yythunkpos1023;
  4908. } if (!yymatchChar(G, '>')) goto l1019;
  4909. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4910. return 1;
  4911. l1019:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4912. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoscript", G->buf+G->pos));
  4913. return 0;
  4914. }
  4915. YY_RULE(int) yy_HtmlBlockNoframes(GREG *G)
  4916. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4917. yyprintf((stderr, "%s\n", "HtmlBlockNoframes")); if (!yy_HtmlBlockOpenNoframes(G)) { goto l1024; }
  4918. l1025:;
  4919. { int yypos1026= G->pos, yythunkpos1026= G->thunkpos;
  4920. { int yypos1027= G->pos, yythunkpos1027= G->thunkpos; if (!yy_HtmlBlockNoframes(G)) { goto l1028; } goto l1027;
  4921. l1028:; G->pos= yypos1027; G->thunkpos= yythunkpos1027;
  4922. { int yypos1029= G->pos, yythunkpos1029= G->thunkpos; if (!yy_HtmlBlockCloseNoframes(G)) { goto l1029; } goto l1026;
  4923. l1029:; G->pos= yypos1029; G->thunkpos= yythunkpos1029;
  4924. } if (!yymatchDot(G)) goto l1026;
  4925. }
  4926. l1027:; goto l1025;
  4927. l1026:; G->pos= yypos1026; G->thunkpos= yythunkpos1026;
  4928. } if (!yy_HtmlBlockCloseNoframes(G)) { goto l1024; }
  4929. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4930. return 1;
  4931. l1024:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4932. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockNoframes", G->buf+G->pos));
  4933. return 0;
  4934. }
  4935. YY_RULE(int) yy_HtmlBlockCloseNoframes(GREG *G)
  4936. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4937. yyprintf((stderr, "%s\n", "HtmlBlockCloseNoframes")); if (!yymatchChar(G, '<')) goto l1030; if (!yy_Spnl(G)) { goto l1030; } if (!yymatchChar(G, '/')) goto l1030;
  4938. { int yypos1031= G->pos, yythunkpos1031= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1032; goto l1031;
  4939. l1032:; G->pos= yypos1031; G->thunkpos= yythunkpos1031; if (!yymatchString(G, "NOFRAMES")) goto l1030;
  4940. }
  4941. l1031:; if (!yy_Spnl(G)) { goto l1030; } if (!yymatchChar(G, '>')) goto l1030;
  4942. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4943. return 1;
  4944. l1030:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4945. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoframes", G->buf+G->pos));
  4946. return 0;
  4947. }
  4948. YY_RULE(int) yy_HtmlBlockOpenNoframes(GREG *G)
  4949. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4950. yyprintf((stderr, "%s\n", "HtmlBlockOpenNoframes")); if (!yymatchChar(G, '<')) goto l1033; if (!yy_Spnl(G)) { goto l1033; }
  4951. { int yypos1034= G->pos, yythunkpos1034= G->thunkpos; if (!yymatchString(G, "noframes")) goto l1035; goto l1034;
  4952. l1035:; G->pos= yypos1034; G->thunkpos= yythunkpos1034; if (!yymatchString(G, "NOFRAMES")) goto l1033;
  4953. }
  4954. l1034:; if (!yy_Spnl(G)) { goto l1033; }
  4955. l1036:;
  4956. { int yypos1037= G->pos, yythunkpos1037= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1037; } goto l1036;
  4957. l1037:; G->pos= yypos1037; G->thunkpos= yythunkpos1037;
  4958. } if (!yymatchChar(G, '>')) goto l1033;
  4959. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4960. return 1;
  4961. l1033:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4962. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoframes", G->buf+G->pos));
  4963. return 0;
  4964. }
  4965. YY_RULE(int) yy_HtmlBlockMenu(GREG *G)
  4966. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4967. yyprintf((stderr, "%s\n", "HtmlBlockMenu")); if (!yy_HtmlBlockOpenMenu(G)) { goto l1038; }
  4968. l1039:;
  4969. { int yypos1040= G->pos, yythunkpos1040= G->thunkpos;
  4970. { int yypos1041= G->pos, yythunkpos1041= G->thunkpos; if (!yy_HtmlBlockMenu(G)) { goto l1042; } goto l1041;
  4971. l1042:; G->pos= yypos1041; G->thunkpos= yythunkpos1041;
  4972. { int yypos1043= G->pos, yythunkpos1043= G->thunkpos; if (!yy_HtmlBlockCloseMenu(G)) { goto l1043; } goto l1040;
  4973. l1043:; G->pos= yypos1043; G->thunkpos= yythunkpos1043;
  4974. } if (!yymatchDot(G)) goto l1040;
  4975. }
  4976. l1041:; goto l1039;
  4977. l1040:; G->pos= yypos1040; G->thunkpos= yythunkpos1040;
  4978. } if (!yy_HtmlBlockCloseMenu(G)) { goto l1038; }
  4979. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4980. return 1;
  4981. l1038:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4982. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockMenu", G->buf+G->pos));
  4983. return 0;
  4984. }
  4985. YY_RULE(int) yy_HtmlBlockCloseMenu(GREG *G)
  4986. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  4987. yyprintf((stderr, "%s\n", "HtmlBlockCloseMenu")); if (!yymatchChar(G, '<')) goto l1044; if (!yy_Spnl(G)) { goto l1044; } if (!yymatchChar(G, '/')) goto l1044;
  4988. { int yypos1045= G->pos, yythunkpos1045= G->thunkpos; if (!yymatchString(G, "menu")) goto l1046; goto l1045;
  4989. l1046:; G->pos= yypos1045; G->thunkpos= yythunkpos1045; if (!yymatchString(G, "MENU")) goto l1044;
  4990. }
  4991. l1045:; if (!yy_Spnl(G)) { goto l1044; } if (!yymatchChar(G, '>')) goto l1044;
  4992. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  4993. return 1;
  4994. l1044:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  4995. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseMenu", G->buf+G->pos));
  4996. return 0;
  4997. }
  4998. YY_RULE(int) yy_HtmlBlockOpenMenu(GREG *G)
  4999. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5000. yyprintf((stderr, "%s\n", "HtmlBlockOpenMenu")); if (!yymatchChar(G, '<')) goto l1047; if (!yy_Spnl(G)) { goto l1047; }
  5001. { int yypos1048= G->pos, yythunkpos1048= G->thunkpos; if (!yymatchString(G, "menu")) goto l1049; goto l1048;
  5002. l1049:; G->pos= yypos1048; G->thunkpos= yythunkpos1048; if (!yymatchString(G, "MENU")) goto l1047;
  5003. }
  5004. l1048:; if (!yy_Spnl(G)) { goto l1047; }
  5005. l1050:;
  5006. { int yypos1051= G->pos, yythunkpos1051= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1051; } goto l1050;
  5007. l1051:; G->pos= yypos1051; G->thunkpos= yythunkpos1051;
  5008. } if (!yymatchChar(G, '>')) goto l1047;
  5009. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  5010. return 1;
  5011. l1047:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5012. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenMenu", G->buf+G->pos));
  5013. return 0;
  5014. }
  5015. YY_RULE(int) yy_HtmlBlockH6(GREG *G)
  5016. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5017. yyprintf((stderr, "%s\n", "HtmlBlockH6")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1052; if (!yy_LocMarker(G)) { goto l1052; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH6(G)) { goto l1052; }
  5018. l1053:;
  5019. { int yypos1054= G->pos, yythunkpos1054= G->thunkpos;
  5020. { int yypos1055= G->pos, yythunkpos1055= G->thunkpos; if (!yy_HtmlBlockH6(G)) { goto l1056; } goto l1055;
  5021. l1056:; G->pos= yypos1055; G->thunkpos= yythunkpos1055;
  5022. { int yypos1057= G->pos, yythunkpos1057= G->thunkpos; if (!yy_HtmlBlockCloseH6(G)) { goto l1057; } goto l1054;
  5023. l1057:; G->pos= yypos1057; G->thunkpos= yythunkpos1057;
  5024. } if (!yymatchDot(G)) goto l1054;
  5025. }
  5026. l1055:; goto l1053;
  5027. l1054:; G->pos= yypos1054; G->thunkpos= yythunkpos1054;
  5028. } if (!yy_HtmlBlockCloseH6(G)) { goto l1052; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1052; yyDo(G, yy_1_HtmlBlockH6, G->begin, G->end);
  5029. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH6", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5030. return 1;
  5031. l1052:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5032. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH6", G->buf+G->pos));
  5033. return 0;
  5034. }
  5035. YY_RULE(int) yy_HtmlBlockCloseH6(GREG *G)
  5036. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5037. yyprintf((stderr, "%s\n", "HtmlBlockCloseH6")); if (!yymatchChar(G, '<')) goto l1058; if (!yy_Spnl(G)) { goto l1058; } if (!yymatchChar(G, '/')) goto l1058;
  5038. { int yypos1059= G->pos, yythunkpos1059= G->thunkpos; if (!yymatchString(G, "h6")) goto l1060; goto l1059;
  5039. l1060:; G->pos= yypos1059; G->thunkpos= yythunkpos1059; if (!yymatchString(G, "H6")) goto l1058;
  5040. }
  5041. l1059:; if (!yy_Spnl(G)) { goto l1058; } if (!yymatchChar(G, '>')) goto l1058;
  5042. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  5043. return 1;
  5044. l1058:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5045. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH6", G->buf+G->pos));
  5046. return 0;
  5047. }
  5048. YY_RULE(int) yy_HtmlBlockOpenH6(GREG *G)
  5049. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5050. yyprintf((stderr, "%s\n", "HtmlBlockOpenH6")); if (!yymatchChar(G, '<')) goto l1061; if (!yy_Spnl(G)) { goto l1061; }
  5051. { int yypos1062= G->pos, yythunkpos1062= G->thunkpos; if (!yymatchString(G, "h6")) goto l1063; goto l1062;
  5052. l1063:; G->pos= yypos1062; G->thunkpos= yythunkpos1062; if (!yymatchString(G, "H6")) goto l1061;
  5053. }
  5054. l1062:; if (!yy_Spnl(G)) { goto l1061; }
  5055. l1064:;
  5056. { int yypos1065= G->pos, yythunkpos1065= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1065; } goto l1064;
  5057. l1065:; G->pos= yypos1065; G->thunkpos= yythunkpos1065;
  5058. } if (!yymatchChar(G, '>')) goto l1061;
  5059. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  5060. return 1;
  5061. l1061:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5062. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH6", G->buf+G->pos));
  5063. return 0;
  5064. }
  5065. YY_RULE(int) yy_HtmlBlockH5(GREG *G)
  5066. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5067. yyprintf((stderr, "%s\n", "HtmlBlockH5")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1066; if (!yy_LocMarker(G)) { goto l1066; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH5(G)) { goto l1066; }
  5068. l1067:;
  5069. { int yypos1068= G->pos, yythunkpos1068= G->thunkpos;
  5070. { int yypos1069= G->pos, yythunkpos1069= G->thunkpos; if (!yy_HtmlBlockH5(G)) { goto l1070; } goto l1069;
  5071. l1070:; G->pos= yypos1069; G->thunkpos= yythunkpos1069;
  5072. { int yypos1071= G->pos, yythunkpos1071= G->thunkpos; if (!yy_HtmlBlockCloseH5(G)) { goto l1071; } goto l1068;
  5073. l1071:; G->pos= yypos1071; G->thunkpos= yythunkpos1071;
  5074. } if (!yymatchDot(G)) goto l1068;
  5075. }
  5076. l1069:; goto l1067;
  5077. l1068:; G->pos= yypos1068; G->thunkpos= yythunkpos1068;
  5078. } if (!yy_HtmlBlockCloseH5(G)) { goto l1066; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1066; yyDo(G, yy_1_HtmlBlockH5, G->begin, G->end);
  5079. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH5", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5080. return 1;
  5081. l1066:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5082. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH5", G->buf+G->pos));
  5083. return 0;
  5084. }
  5085. YY_RULE(int) yy_HtmlBlockCloseH5(GREG *G)
  5086. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5087. yyprintf((stderr, "%s\n", "HtmlBlockCloseH5")); if (!yymatchChar(G, '<')) goto l1072; if (!yy_Spnl(G)) { goto l1072; } if (!yymatchChar(G, '/')) goto l1072;
  5088. { int yypos1073= G->pos, yythunkpos1073= G->thunkpos; if (!yymatchString(G, "h5")) goto l1074; goto l1073;
  5089. l1074:; G->pos= yypos1073; G->thunkpos= yythunkpos1073; if (!yymatchString(G, "H5")) goto l1072;
  5090. }
  5091. l1073:; if (!yy_Spnl(G)) { goto l1072; } if (!yymatchChar(G, '>')) goto l1072;
  5092. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5093. return 1;
  5094. l1072:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5095. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH5", G->buf+G->pos));
  5096. return 0;
  5097. }
  5098. YY_RULE(int) yy_HtmlBlockOpenH5(GREG *G)
  5099. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5100. yyprintf((stderr, "%s\n", "HtmlBlockOpenH5")); if (!yymatchChar(G, '<')) goto l1075; if (!yy_Spnl(G)) { goto l1075; }
  5101. { int yypos1076= G->pos, yythunkpos1076= G->thunkpos; if (!yymatchString(G, "h5")) goto l1077; goto l1076;
  5102. l1077:; G->pos= yypos1076; G->thunkpos= yythunkpos1076; if (!yymatchString(G, "H5")) goto l1075;
  5103. }
  5104. l1076:; if (!yy_Spnl(G)) { goto l1075; }
  5105. l1078:;
  5106. { int yypos1079= G->pos, yythunkpos1079= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1079; } goto l1078;
  5107. l1079:; G->pos= yypos1079; G->thunkpos= yythunkpos1079;
  5108. } if (!yymatchChar(G, '>')) goto l1075;
  5109. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5110. return 1;
  5111. l1075:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5112. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH5", G->buf+G->pos));
  5113. return 0;
  5114. }
  5115. YY_RULE(int) yy_HtmlBlockH4(GREG *G)
  5116. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5117. yyprintf((stderr, "%s\n", "HtmlBlockH4")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1080; if (!yy_LocMarker(G)) { goto l1080; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH4(G)) { goto l1080; }
  5118. l1081:;
  5119. { int yypos1082= G->pos, yythunkpos1082= G->thunkpos;
  5120. { int yypos1083= G->pos, yythunkpos1083= G->thunkpos; if (!yy_HtmlBlockH4(G)) { goto l1084; } goto l1083;
  5121. l1084:; G->pos= yypos1083; G->thunkpos= yythunkpos1083;
  5122. { int yypos1085= G->pos, yythunkpos1085= G->thunkpos; if (!yy_HtmlBlockCloseH4(G)) { goto l1085; } goto l1082;
  5123. l1085:; G->pos= yypos1085; G->thunkpos= yythunkpos1085;
  5124. } if (!yymatchDot(G)) goto l1082;
  5125. }
  5126. l1083:; goto l1081;
  5127. l1082:; G->pos= yypos1082; G->thunkpos= yythunkpos1082;
  5128. } if (!yy_HtmlBlockCloseH4(G)) { goto l1080; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1080; yyDo(G, yy_1_HtmlBlockH4, G->begin, G->end);
  5129. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH4", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5130. return 1;
  5131. l1080:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5132. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH4", G->buf+G->pos));
  5133. return 0;
  5134. }
  5135. YY_RULE(int) yy_HtmlBlockCloseH4(GREG *G)
  5136. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5137. yyprintf((stderr, "%s\n", "HtmlBlockCloseH4")); if (!yymatchChar(G, '<')) goto l1086; if (!yy_Spnl(G)) { goto l1086; } if (!yymatchChar(G, '/')) goto l1086;
  5138. { int yypos1087= G->pos, yythunkpos1087= G->thunkpos; if (!yymatchString(G, "h4")) goto l1088; goto l1087;
  5139. l1088:; G->pos= yypos1087; G->thunkpos= yythunkpos1087; if (!yymatchString(G, "H4")) goto l1086;
  5140. }
  5141. l1087:; if (!yy_Spnl(G)) { goto l1086; } if (!yymatchChar(G, '>')) goto l1086;
  5142. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5143. return 1;
  5144. l1086:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5145. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH4", G->buf+G->pos));
  5146. return 0;
  5147. }
  5148. YY_RULE(int) yy_HtmlBlockOpenH4(GREG *G)
  5149. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5150. yyprintf((stderr, "%s\n", "HtmlBlockOpenH4")); if (!yymatchChar(G, '<')) goto l1089; if (!yy_Spnl(G)) { goto l1089; }
  5151. { int yypos1090= G->pos, yythunkpos1090= G->thunkpos; if (!yymatchString(G, "h4")) goto l1091; goto l1090;
  5152. l1091:; G->pos= yypos1090; G->thunkpos= yythunkpos1090; if (!yymatchString(G, "H4")) goto l1089;
  5153. }
  5154. l1090:; if (!yy_Spnl(G)) { goto l1089; }
  5155. l1092:;
  5156. { int yypos1093= G->pos, yythunkpos1093= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1093; } goto l1092;
  5157. l1093:; G->pos= yypos1093; G->thunkpos= yythunkpos1093;
  5158. } if (!yymatchChar(G, '>')) goto l1089;
  5159. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5160. return 1;
  5161. l1089:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5162. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH4", G->buf+G->pos));
  5163. return 0;
  5164. }
  5165. YY_RULE(int) yy_HtmlBlockH3(GREG *G)
  5166. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5167. yyprintf((stderr, "%s\n", "HtmlBlockH3")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1094; if (!yy_LocMarker(G)) { goto l1094; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH3(G)) { goto l1094; }
  5168. l1095:;
  5169. { int yypos1096= G->pos, yythunkpos1096= G->thunkpos;
  5170. { int yypos1097= G->pos, yythunkpos1097= G->thunkpos; if (!yy_HtmlBlockH3(G)) { goto l1098; } goto l1097;
  5171. l1098:; G->pos= yypos1097; G->thunkpos= yythunkpos1097;
  5172. { int yypos1099= G->pos, yythunkpos1099= G->thunkpos; if (!yy_HtmlBlockCloseH3(G)) { goto l1099; } goto l1096;
  5173. l1099:; G->pos= yypos1099; G->thunkpos= yythunkpos1099;
  5174. } if (!yymatchDot(G)) goto l1096;
  5175. }
  5176. l1097:; goto l1095;
  5177. l1096:; G->pos= yypos1096; G->thunkpos= yythunkpos1096;
  5178. } if (!yy_HtmlBlockCloseH3(G)) { goto l1094; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1094; yyDo(G, yy_1_HtmlBlockH3, G->begin, G->end);
  5179. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH3", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5180. return 1;
  5181. l1094:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5182. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH3", G->buf+G->pos));
  5183. return 0;
  5184. }
  5185. YY_RULE(int) yy_HtmlBlockCloseH3(GREG *G)
  5186. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5187. yyprintf((stderr, "%s\n", "HtmlBlockCloseH3")); if (!yymatchChar(G, '<')) goto l1100; if (!yy_Spnl(G)) { goto l1100; } if (!yymatchChar(G, '/')) goto l1100;
  5188. { int yypos1101= G->pos, yythunkpos1101= G->thunkpos; if (!yymatchString(G, "h3")) goto l1102; goto l1101;
  5189. l1102:; G->pos= yypos1101; G->thunkpos= yythunkpos1101; if (!yymatchString(G, "H3")) goto l1100;
  5190. }
  5191. l1101:; if (!yy_Spnl(G)) { goto l1100; } if (!yymatchChar(G, '>')) goto l1100;
  5192. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5193. return 1;
  5194. l1100:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5195. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH3", G->buf+G->pos));
  5196. return 0;
  5197. }
  5198. YY_RULE(int) yy_HtmlBlockOpenH3(GREG *G)
  5199. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5200. yyprintf((stderr, "%s\n", "HtmlBlockOpenH3")); if (!yymatchChar(G, '<')) goto l1103; if (!yy_Spnl(G)) { goto l1103; }
  5201. { int yypos1104= G->pos, yythunkpos1104= G->thunkpos; if (!yymatchString(G, "h3")) goto l1105; goto l1104;
  5202. l1105:; G->pos= yypos1104; G->thunkpos= yythunkpos1104; if (!yymatchString(G, "H3")) goto l1103;
  5203. }
  5204. l1104:; if (!yy_Spnl(G)) { goto l1103; }
  5205. l1106:;
  5206. { int yypos1107= G->pos, yythunkpos1107= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1107; } goto l1106;
  5207. l1107:; G->pos= yypos1107; G->thunkpos= yythunkpos1107;
  5208. } if (!yymatchChar(G, '>')) goto l1103;
  5209. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5210. return 1;
  5211. l1103:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5212. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH3", G->buf+G->pos));
  5213. return 0;
  5214. }
  5215. YY_RULE(int) yy_HtmlBlockH2(GREG *G)
  5216. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5217. yyprintf((stderr, "%s\n", "HtmlBlockH2")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1108; if (!yy_LocMarker(G)) { goto l1108; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH2(G)) { goto l1108; }
  5218. l1109:;
  5219. { int yypos1110= G->pos, yythunkpos1110= G->thunkpos;
  5220. { int yypos1111= G->pos, yythunkpos1111= G->thunkpos; if (!yy_HtmlBlockH2(G)) { goto l1112; } goto l1111;
  5221. l1112:; G->pos= yypos1111; G->thunkpos= yythunkpos1111;
  5222. { int yypos1113= G->pos, yythunkpos1113= G->thunkpos; if (!yy_HtmlBlockCloseH2(G)) { goto l1113; } goto l1110;
  5223. l1113:; G->pos= yypos1113; G->thunkpos= yythunkpos1113;
  5224. } if (!yymatchDot(G)) goto l1110;
  5225. }
  5226. l1111:; goto l1109;
  5227. l1110:; G->pos= yypos1110; G->thunkpos= yythunkpos1110;
  5228. } if (!yy_HtmlBlockCloseH2(G)) { goto l1108; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1108; yyDo(G, yy_1_HtmlBlockH2, G->begin, G->end);
  5229. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5230. return 1;
  5231. l1108:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5232. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH2", G->buf+G->pos));
  5233. return 0;
  5234. }
  5235. YY_RULE(int) yy_HtmlBlockCloseH2(GREG *G)
  5236. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5237. yyprintf((stderr, "%s\n", "HtmlBlockCloseH2")); if (!yymatchChar(G, '<')) goto l1114; if (!yy_Spnl(G)) { goto l1114; } if (!yymatchChar(G, '/')) goto l1114;
  5238. { int yypos1115= G->pos, yythunkpos1115= G->thunkpos; if (!yymatchString(G, "h2")) goto l1116; goto l1115;
  5239. l1116:; G->pos= yypos1115; G->thunkpos= yythunkpos1115; if (!yymatchString(G, "H2")) goto l1114;
  5240. }
  5241. l1115:; if (!yy_Spnl(G)) { goto l1114; } if (!yymatchChar(G, '>')) goto l1114;
  5242. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5243. return 1;
  5244. l1114:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5245. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH2", G->buf+G->pos));
  5246. return 0;
  5247. }
  5248. YY_RULE(int) yy_HtmlBlockOpenH2(GREG *G)
  5249. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5250. yyprintf((stderr, "%s\n", "HtmlBlockOpenH2")); if (!yymatchChar(G, '<')) goto l1117; if (!yy_Spnl(G)) { goto l1117; }
  5251. { int yypos1118= G->pos, yythunkpos1118= G->thunkpos; if (!yymatchString(G, "h2")) goto l1119; goto l1118;
  5252. l1119:; G->pos= yypos1118; G->thunkpos= yythunkpos1118; if (!yymatchString(G, "H2")) goto l1117;
  5253. }
  5254. l1118:; if (!yy_Spnl(G)) { goto l1117; }
  5255. l1120:;
  5256. { int yypos1121= G->pos, yythunkpos1121= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1121; } goto l1120;
  5257. l1121:; G->pos= yypos1121; G->thunkpos= yythunkpos1121;
  5258. } if (!yymatchChar(G, '>')) goto l1117;
  5259. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5260. return 1;
  5261. l1117:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5262. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH2", G->buf+G->pos));
  5263. return 0;
  5264. }
  5265. YY_RULE(int) yy_HtmlBlockH1(GREG *G)
  5266. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5267. yyprintf((stderr, "%s\n", "HtmlBlockH1")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1122; if (!yy_LocMarker(G)) { goto l1122; } yyDo(G, yySet, -1, 0); if (!yy_HtmlBlockOpenH1(G)) { goto l1122; }
  5268. l1123:;
  5269. { int yypos1124= G->pos, yythunkpos1124= G->thunkpos;
  5270. { int yypos1125= G->pos, yythunkpos1125= G->thunkpos; if (!yy_HtmlBlockH1(G)) { goto l1126; } goto l1125;
  5271. l1126:; G->pos= yypos1125; G->thunkpos= yythunkpos1125;
  5272. { int yypos1127= G->pos, yythunkpos1127= G->thunkpos; if (!yy_HtmlBlockCloseH1(G)) { goto l1127; } goto l1124;
  5273. l1127:; G->pos= yypos1127; G->thunkpos= yythunkpos1127;
  5274. } if (!yymatchDot(G)) goto l1124;
  5275. }
  5276. l1125:; goto l1123;
  5277. l1124:; G->pos= yypos1124; G->thunkpos= yythunkpos1124;
  5278. } if (!yy_HtmlBlockCloseH1(G)) { goto l1122; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1122; yyDo(G, yy_1_HtmlBlockH1, G->begin, G->end);
  5279. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockH1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5280. return 1;
  5281. l1122:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5282. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockH1", G->buf+G->pos));
  5283. return 0;
  5284. }
  5285. YY_RULE(int) yy_HtmlBlockCloseH1(GREG *G)
  5286. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5287. yyprintf((stderr, "%s\n", "HtmlBlockCloseH1")); if (!yymatchChar(G, '<')) goto l1128; if (!yy_Spnl(G)) { goto l1128; } if (!yymatchChar(G, '/')) goto l1128;
  5288. { int yypos1129= G->pos, yythunkpos1129= G->thunkpos; if (!yymatchString(G, "h1")) goto l1130; goto l1129;
  5289. l1130:; G->pos= yypos1129; G->thunkpos= yythunkpos1129; if (!yymatchString(G, "H1")) goto l1128;
  5290. }
  5291. l1129:; if (!yy_Spnl(G)) { goto l1128; } if (!yymatchChar(G, '>')) goto l1128;
  5292. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5293. return 1;
  5294. l1128:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5295. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH1", G->buf+G->pos));
  5296. return 0;
  5297. }
  5298. YY_RULE(int) yy_HtmlBlockOpenH1(GREG *G)
  5299. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5300. yyprintf((stderr, "%s\n", "HtmlBlockOpenH1")); if (!yymatchChar(G, '<')) goto l1131; if (!yy_Spnl(G)) { goto l1131; }
  5301. { int yypos1132= G->pos, yythunkpos1132= G->thunkpos; if (!yymatchString(G, "h1")) goto l1133; goto l1132;
  5302. l1133:; G->pos= yypos1132; G->thunkpos= yythunkpos1132; if (!yymatchString(G, "H1")) goto l1131;
  5303. }
  5304. l1132:; if (!yy_Spnl(G)) { goto l1131; }
  5305. l1134:;
  5306. { int yypos1135= G->pos, yythunkpos1135= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1135; } goto l1134;
  5307. l1135:; G->pos= yypos1135; G->thunkpos= yythunkpos1135;
  5308. } if (!yymatchChar(G, '>')) goto l1131;
  5309. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5310. return 1;
  5311. l1131:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5312. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH1", G->buf+G->pos));
  5313. return 0;
  5314. }
  5315. YY_RULE(int) yy_HtmlBlockForm(GREG *G)
  5316. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5317. yyprintf((stderr, "%s\n", "HtmlBlockForm")); if (!yy_HtmlBlockOpenForm(G)) { goto l1136; }
  5318. l1137:;
  5319. { int yypos1138= G->pos, yythunkpos1138= G->thunkpos;
  5320. { int yypos1139= G->pos, yythunkpos1139= G->thunkpos; if (!yy_HtmlBlockForm(G)) { goto l1140; } goto l1139;
  5321. l1140:; G->pos= yypos1139; G->thunkpos= yythunkpos1139;
  5322. { int yypos1141= G->pos, yythunkpos1141= G->thunkpos; if (!yy_HtmlBlockCloseForm(G)) { goto l1141; } goto l1138;
  5323. l1141:; G->pos= yypos1141; G->thunkpos= yythunkpos1141;
  5324. } if (!yymatchDot(G)) goto l1138;
  5325. }
  5326. l1139:; goto l1137;
  5327. l1138:; G->pos= yypos1138; G->thunkpos= yythunkpos1138;
  5328. } if (!yy_HtmlBlockCloseForm(G)) { goto l1136; }
  5329. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5330. return 1;
  5331. l1136:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5332. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockForm", G->buf+G->pos));
  5333. return 0;
  5334. }
  5335. YY_RULE(int) yy_HtmlBlockCloseForm(GREG *G)
  5336. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5337. yyprintf((stderr, "%s\n", "HtmlBlockCloseForm")); if (!yymatchChar(G, '<')) goto l1142; if (!yy_Spnl(G)) { goto l1142; } if (!yymatchChar(G, '/')) goto l1142;
  5338. { int yypos1143= G->pos, yythunkpos1143= G->thunkpos; if (!yymatchString(G, "form")) goto l1144; goto l1143;
  5339. l1144:; G->pos= yypos1143; G->thunkpos= yythunkpos1143; if (!yymatchString(G, "FORM")) goto l1142;
  5340. }
  5341. l1143:; if (!yy_Spnl(G)) { goto l1142; } if (!yymatchChar(G, '>')) goto l1142;
  5342. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5343. return 1;
  5344. l1142:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5345. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseForm", G->buf+G->pos));
  5346. return 0;
  5347. }
  5348. YY_RULE(int) yy_HtmlBlockOpenForm(GREG *G)
  5349. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5350. yyprintf((stderr, "%s\n", "HtmlBlockOpenForm")); if (!yymatchChar(G, '<')) goto l1145; if (!yy_Spnl(G)) { goto l1145; }
  5351. { int yypos1146= G->pos, yythunkpos1146= G->thunkpos; if (!yymatchString(G, "form")) goto l1147; goto l1146;
  5352. l1147:; G->pos= yypos1146; G->thunkpos= yythunkpos1146; if (!yymatchString(G, "FORM")) goto l1145;
  5353. }
  5354. l1146:; if (!yy_Spnl(G)) { goto l1145; }
  5355. l1148:;
  5356. { int yypos1149= G->pos, yythunkpos1149= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1149; } goto l1148;
  5357. l1149:; G->pos= yypos1149; G->thunkpos= yythunkpos1149;
  5358. } if (!yymatchChar(G, '>')) goto l1145;
  5359. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5360. return 1;
  5361. l1145:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5362. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenForm", G->buf+G->pos));
  5363. return 0;
  5364. }
  5365. YY_RULE(int) yy_HtmlBlockFieldset(GREG *G)
  5366. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5367. yyprintf((stderr, "%s\n", "HtmlBlockFieldset")); if (!yy_HtmlBlockOpenFieldset(G)) { goto l1150; }
  5368. l1151:;
  5369. { int yypos1152= G->pos, yythunkpos1152= G->thunkpos;
  5370. { int yypos1153= G->pos, yythunkpos1153= G->thunkpos; if (!yy_HtmlBlockFieldset(G)) { goto l1154; } goto l1153;
  5371. l1154:; G->pos= yypos1153; G->thunkpos= yythunkpos1153;
  5372. { int yypos1155= G->pos, yythunkpos1155= G->thunkpos; if (!yy_HtmlBlockCloseFieldset(G)) { goto l1155; } goto l1152;
  5373. l1155:; G->pos= yypos1155; G->thunkpos= yythunkpos1155;
  5374. } if (!yymatchDot(G)) goto l1152;
  5375. }
  5376. l1153:; goto l1151;
  5377. l1152:; G->pos= yypos1152; G->thunkpos= yythunkpos1152;
  5378. } if (!yy_HtmlBlockCloseFieldset(G)) { goto l1150; }
  5379. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5380. return 1;
  5381. l1150:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5382. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockFieldset", G->buf+G->pos));
  5383. return 0;
  5384. }
  5385. YY_RULE(int) yy_HtmlBlockCloseFieldset(GREG *G)
  5386. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5387. yyprintf((stderr, "%s\n", "HtmlBlockCloseFieldset")); if (!yymatchChar(G, '<')) goto l1156; if (!yy_Spnl(G)) { goto l1156; } if (!yymatchChar(G, '/')) goto l1156;
  5388. { int yypos1157= G->pos, yythunkpos1157= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1158; goto l1157;
  5389. l1158:; G->pos= yypos1157; G->thunkpos= yythunkpos1157; if (!yymatchString(G, "FIELDSET")) goto l1156;
  5390. }
  5391. l1157:; if (!yy_Spnl(G)) { goto l1156; } if (!yymatchChar(G, '>')) goto l1156;
  5392. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5393. return 1;
  5394. l1156:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5395. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFieldset", G->buf+G->pos));
  5396. return 0;
  5397. }
  5398. YY_RULE(int) yy_HtmlBlockOpenFieldset(GREG *G)
  5399. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5400. yyprintf((stderr, "%s\n", "HtmlBlockOpenFieldset")); if (!yymatchChar(G, '<')) goto l1159; if (!yy_Spnl(G)) { goto l1159; }
  5401. { int yypos1160= G->pos, yythunkpos1160= G->thunkpos; if (!yymatchString(G, "fieldset")) goto l1161; goto l1160;
  5402. l1161:; G->pos= yypos1160; G->thunkpos= yythunkpos1160; if (!yymatchString(G, "FIELDSET")) goto l1159;
  5403. }
  5404. l1160:; if (!yy_Spnl(G)) { goto l1159; }
  5405. l1162:;
  5406. { int yypos1163= G->pos, yythunkpos1163= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1163; } goto l1162;
  5407. l1163:; G->pos= yypos1163; G->thunkpos= yythunkpos1163;
  5408. } if (!yymatchChar(G, '>')) goto l1159;
  5409. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5410. return 1;
  5411. l1159:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5412. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFieldset", G->buf+G->pos));
  5413. return 0;
  5414. }
  5415. YY_RULE(int) yy_HtmlBlockDl(GREG *G)
  5416. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5417. yyprintf((stderr, "%s\n", "HtmlBlockDl")); if (!yy_HtmlBlockOpenDl(G)) { goto l1164; }
  5418. l1165:;
  5419. { int yypos1166= G->pos, yythunkpos1166= G->thunkpos;
  5420. { int yypos1167= G->pos, yythunkpos1167= G->thunkpos; if (!yy_HtmlBlockDl(G)) { goto l1168; } goto l1167;
  5421. l1168:; G->pos= yypos1167; G->thunkpos= yythunkpos1167;
  5422. { int yypos1169= G->pos, yythunkpos1169= G->thunkpos; if (!yy_HtmlBlockCloseDl(G)) { goto l1169; } goto l1166;
  5423. l1169:; G->pos= yypos1169; G->thunkpos= yythunkpos1169;
  5424. } if (!yymatchDot(G)) goto l1166;
  5425. }
  5426. l1167:; goto l1165;
  5427. l1166:; G->pos= yypos1166; G->thunkpos= yythunkpos1166;
  5428. } if (!yy_HtmlBlockCloseDl(G)) { goto l1164; }
  5429. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5430. return 1;
  5431. l1164:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5432. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDl", G->buf+G->pos));
  5433. return 0;
  5434. }
  5435. YY_RULE(int) yy_HtmlBlockCloseDl(GREG *G)
  5436. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5437. yyprintf((stderr, "%s\n", "HtmlBlockCloseDl")); if (!yymatchChar(G, '<')) goto l1170; if (!yy_Spnl(G)) { goto l1170; } if (!yymatchChar(G, '/')) goto l1170;
  5438. { int yypos1171= G->pos, yythunkpos1171= G->thunkpos; if (!yymatchString(G, "dl")) goto l1172; goto l1171;
  5439. l1172:; G->pos= yypos1171; G->thunkpos= yythunkpos1171; if (!yymatchString(G, "DL")) goto l1170;
  5440. }
  5441. l1171:; if (!yy_Spnl(G)) { goto l1170; } if (!yymatchChar(G, '>')) goto l1170;
  5442. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5443. return 1;
  5444. l1170:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5445. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDl", G->buf+G->pos));
  5446. return 0;
  5447. }
  5448. YY_RULE(int) yy_HtmlBlockOpenDl(GREG *G)
  5449. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5450. yyprintf((stderr, "%s\n", "HtmlBlockOpenDl")); if (!yymatchChar(G, '<')) goto l1173; if (!yy_Spnl(G)) { goto l1173; }
  5451. { int yypos1174= G->pos, yythunkpos1174= G->thunkpos; if (!yymatchString(G, "dl")) goto l1175; goto l1174;
  5452. l1175:; G->pos= yypos1174; G->thunkpos= yythunkpos1174; if (!yymatchString(G, "DL")) goto l1173;
  5453. }
  5454. l1174:; if (!yy_Spnl(G)) { goto l1173; }
  5455. l1176:;
  5456. { int yypos1177= G->pos, yythunkpos1177= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1177; } goto l1176;
  5457. l1177:; G->pos= yypos1177; G->thunkpos= yythunkpos1177;
  5458. } if (!yymatchChar(G, '>')) goto l1173;
  5459. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5460. return 1;
  5461. l1173:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5462. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDl", G->buf+G->pos));
  5463. return 0;
  5464. }
  5465. YY_RULE(int) yy_HtmlBlockDiv(GREG *G)
  5466. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5467. yyprintf((stderr, "%s\n", "HtmlBlockDiv")); if (!yy_HtmlBlockOpenDiv(G)) { goto l1178; }
  5468. l1179:;
  5469. { int yypos1180= G->pos, yythunkpos1180= G->thunkpos;
  5470. { int yypos1181= G->pos, yythunkpos1181= G->thunkpos; if (!yy_HtmlBlockDiv(G)) { goto l1182; } goto l1181;
  5471. l1182:; G->pos= yypos1181; G->thunkpos= yythunkpos1181;
  5472. { int yypos1183= G->pos, yythunkpos1183= G->thunkpos; if (!yy_HtmlBlockCloseDiv(G)) { goto l1183; } goto l1180;
  5473. l1183:; G->pos= yypos1183; G->thunkpos= yythunkpos1183;
  5474. } if (!yymatchDot(G)) goto l1180;
  5475. }
  5476. l1181:; goto l1179;
  5477. l1180:; G->pos= yypos1180; G->thunkpos= yythunkpos1180;
  5478. } if (!yy_HtmlBlockCloseDiv(G)) { goto l1178; }
  5479. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5480. return 1;
  5481. l1178:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5482. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDiv", G->buf+G->pos));
  5483. return 0;
  5484. }
  5485. YY_RULE(int) yy_HtmlBlockCloseDiv(GREG *G)
  5486. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5487. yyprintf((stderr, "%s\n", "HtmlBlockCloseDiv")); if (!yymatchChar(G, '<')) goto l1184; if (!yy_Spnl(G)) { goto l1184; } if (!yymatchChar(G, '/')) goto l1184;
  5488. { int yypos1185= G->pos, yythunkpos1185= G->thunkpos; if (!yymatchString(G, "div")) goto l1186; goto l1185;
  5489. l1186:; G->pos= yypos1185; G->thunkpos= yythunkpos1185; if (!yymatchString(G, "DIV")) goto l1184;
  5490. }
  5491. l1185:; if (!yy_Spnl(G)) { goto l1184; } if (!yymatchChar(G, '>')) goto l1184;
  5492. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5493. return 1;
  5494. l1184:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5495. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDiv", G->buf+G->pos));
  5496. return 0;
  5497. }
  5498. YY_RULE(int) yy_HtmlBlockOpenDiv(GREG *G)
  5499. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5500. yyprintf((stderr, "%s\n", "HtmlBlockOpenDiv")); if (!yymatchChar(G, '<')) goto l1187; if (!yy_Spnl(G)) { goto l1187; }
  5501. { int yypos1188= G->pos, yythunkpos1188= G->thunkpos; if (!yymatchString(G, "div")) goto l1189; goto l1188;
  5502. l1189:; G->pos= yypos1188; G->thunkpos= yythunkpos1188; if (!yymatchString(G, "DIV")) goto l1187;
  5503. }
  5504. l1188:; if (!yy_Spnl(G)) { goto l1187; }
  5505. l1190:;
  5506. { int yypos1191= G->pos, yythunkpos1191= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1191; } goto l1190;
  5507. l1191:; G->pos= yypos1191; G->thunkpos= yythunkpos1191;
  5508. } if (!yymatchChar(G, '>')) goto l1187;
  5509. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5510. return 1;
  5511. l1187:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5512. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDiv", G->buf+G->pos));
  5513. return 0;
  5514. }
  5515. YY_RULE(int) yy_HtmlBlockDir(GREG *G)
  5516. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5517. yyprintf((stderr, "%s\n", "HtmlBlockDir")); if (!yy_HtmlBlockOpenDir(G)) { goto l1192; }
  5518. l1193:;
  5519. { int yypos1194= G->pos, yythunkpos1194= G->thunkpos;
  5520. { int yypos1195= G->pos, yythunkpos1195= G->thunkpos; if (!yy_HtmlBlockDir(G)) { goto l1196; } goto l1195;
  5521. l1196:; G->pos= yypos1195; G->thunkpos= yythunkpos1195;
  5522. { int yypos1197= G->pos, yythunkpos1197= G->thunkpos; if (!yy_HtmlBlockCloseDir(G)) { goto l1197; } goto l1194;
  5523. l1197:; G->pos= yypos1197; G->thunkpos= yythunkpos1197;
  5524. } if (!yymatchDot(G)) goto l1194;
  5525. }
  5526. l1195:; goto l1193;
  5527. l1194:; G->pos= yypos1194; G->thunkpos= yythunkpos1194;
  5528. } if (!yy_HtmlBlockCloseDir(G)) { goto l1192; }
  5529. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5530. return 1;
  5531. l1192:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5532. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockDir", G->buf+G->pos));
  5533. return 0;
  5534. }
  5535. YY_RULE(int) yy_HtmlBlockCloseDir(GREG *G)
  5536. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5537. yyprintf((stderr, "%s\n", "HtmlBlockCloseDir")); if (!yymatchChar(G, '<')) goto l1198; if (!yy_Spnl(G)) { goto l1198; } if (!yymatchChar(G, '/')) goto l1198;
  5538. { int yypos1199= G->pos, yythunkpos1199= G->thunkpos; if (!yymatchString(G, "dir")) goto l1200; goto l1199;
  5539. l1200:; G->pos= yypos1199; G->thunkpos= yythunkpos1199; if (!yymatchString(G, "DIR")) goto l1198;
  5540. }
  5541. l1199:; if (!yy_Spnl(G)) { goto l1198; } if (!yymatchChar(G, '>')) goto l1198;
  5542. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5543. return 1;
  5544. l1198:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5545. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDir", G->buf+G->pos));
  5546. return 0;
  5547. }
  5548. YY_RULE(int) yy_HtmlBlockOpenDir(GREG *G)
  5549. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5550. yyprintf((stderr, "%s\n", "HtmlBlockOpenDir")); if (!yymatchChar(G, '<')) goto l1201; if (!yy_Spnl(G)) { goto l1201; }
  5551. { int yypos1202= G->pos, yythunkpos1202= G->thunkpos; if (!yymatchString(G, "dir")) goto l1203; goto l1202;
  5552. l1203:; G->pos= yypos1202; G->thunkpos= yythunkpos1202; if (!yymatchString(G, "DIR")) goto l1201;
  5553. }
  5554. l1202:; if (!yy_Spnl(G)) { goto l1201; }
  5555. l1204:;
  5556. { int yypos1205= G->pos, yythunkpos1205= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1205; } goto l1204;
  5557. l1205:; G->pos= yypos1205; G->thunkpos= yythunkpos1205;
  5558. } if (!yymatchChar(G, '>')) goto l1201;
  5559. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5560. return 1;
  5561. l1201:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5562. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDir", G->buf+G->pos));
  5563. return 0;
  5564. }
  5565. YY_RULE(int) yy_HtmlBlockCenter(GREG *G)
  5566. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5567. yyprintf((stderr, "%s\n", "HtmlBlockCenter")); if (!yy_HtmlBlockOpenCenter(G)) { goto l1206; }
  5568. l1207:;
  5569. { int yypos1208= G->pos, yythunkpos1208= G->thunkpos;
  5570. { int yypos1209= G->pos, yythunkpos1209= G->thunkpos; if (!yy_HtmlBlockCenter(G)) { goto l1210; } goto l1209;
  5571. l1210:; G->pos= yypos1209; G->thunkpos= yythunkpos1209;
  5572. { int yypos1211= G->pos, yythunkpos1211= G->thunkpos; if (!yy_HtmlBlockCloseCenter(G)) { goto l1211; } goto l1208;
  5573. l1211:; G->pos= yypos1211; G->thunkpos= yythunkpos1211;
  5574. } if (!yymatchDot(G)) goto l1208;
  5575. }
  5576. l1209:; goto l1207;
  5577. l1208:; G->pos= yypos1208; G->thunkpos= yythunkpos1208;
  5578. } if (!yy_HtmlBlockCloseCenter(G)) { goto l1206; }
  5579. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5580. return 1;
  5581. l1206:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5582. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCenter", G->buf+G->pos));
  5583. return 0;
  5584. }
  5585. YY_RULE(int) yy_HtmlBlockCloseCenter(GREG *G)
  5586. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5587. yyprintf((stderr, "%s\n", "HtmlBlockCloseCenter")); if (!yymatchChar(G, '<')) goto l1212; if (!yy_Spnl(G)) { goto l1212; } if (!yymatchChar(G, '/')) goto l1212;
  5588. { int yypos1213= G->pos, yythunkpos1213= G->thunkpos; if (!yymatchString(G, "center")) goto l1214; goto l1213;
  5589. l1214:; G->pos= yypos1213; G->thunkpos= yythunkpos1213; if (!yymatchString(G, "CENTER")) goto l1212;
  5590. }
  5591. l1213:; if (!yy_Spnl(G)) { goto l1212; } if (!yymatchChar(G, '>')) goto l1212;
  5592. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5593. return 1;
  5594. l1212:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5595. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseCenter", G->buf+G->pos));
  5596. return 0;
  5597. }
  5598. YY_RULE(int) yy_HtmlBlockOpenCenter(GREG *G)
  5599. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5600. yyprintf((stderr, "%s\n", "HtmlBlockOpenCenter")); if (!yymatchChar(G, '<')) goto l1215; if (!yy_Spnl(G)) { goto l1215; }
  5601. { int yypos1216= G->pos, yythunkpos1216= G->thunkpos; if (!yymatchString(G, "center")) goto l1217; goto l1216;
  5602. l1217:; G->pos= yypos1216; G->thunkpos= yythunkpos1216; if (!yymatchString(G, "CENTER")) goto l1215;
  5603. }
  5604. l1216:; if (!yy_Spnl(G)) { goto l1215; }
  5605. l1218:;
  5606. { int yypos1219= G->pos, yythunkpos1219= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1219; } goto l1218;
  5607. l1219:; G->pos= yypos1219; G->thunkpos= yythunkpos1219;
  5608. } if (!yymatchChar(G, '>')) goto l1215;
  5609. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5610. return 1;
  5611. l1215:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5612. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenCenter", G->buf+G->pos));
  5613. return 0;
  5614. }
  5615. YY_RULE(int) yy_HtmlBlockBlockquote(GREG *G)
  5616. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5617. yyprintf((stderr, "%s\n", "HtmlBlockBlockquote")); if (!yy_HtmlBlockOpenBlockquote(G)) { goto l1220; }
  5618. l1221:;
  5619. { int yypos1222= G->pos, yythunkpos1222= G->thunkpos;
  5620. { int yypos1223= G->pos, yythunkpos1223= G->thunkpos; if (!yy_HtmlBlockBlockquote(G)) { goto l1224; } goto l1223;
  5621. l1224:; G->pos= yypos1223; G->thunkpos= yythunkpos1223;
  5622. { int yypos1225= G->pos, yythunkpos1225= G->thunkpos; if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1225; } goto l1222;
  5623. l1225:; G->pos= yypos1225; G->thunkpos= yythunkpos1225;
  5624. } if (!yymatchDot(G)) goto l1222;
  5625. }
  5626. l1223:; goto l1221;
  5627. l1222:; G->pos= yypos1222; G->thunkpos= yythunkpos1222;
  5628. } if (!yy_HtmlBlockCloseBlockquote(G)) { goto l1220; }
  5629. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5630. return 1;
  5631. l1220:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5632. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockBlockquote", G->buf+G->pos));
  5633. return 0;
  5634. }
  5635. YY_RULE(int) yy_HtmlBlockCloseBlockquote(GREG *G)
  5636. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5637. yyprintf((stderr, "%s\n", "HtmlBlockCloseBlockquote")); if (!yymatchChar(G, '<')) goto l1226; if (!yy_Spnl(G)) { goto l1226; } if (!yymatchChar(G, '/')) goto l1226;
  5638. { int yypos1227= G->pos, yythunkpos1227= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1228; goto l1227;
  5639. l1228:; G->pos= yypos1227; G->thunkpos= yythunkpos1227; if (!yymatchString(G, "BLOCKQUOTE")) goto l1226;
  5640. }
  5641. l1227:; if (!yy_Spnl(G)) { goto l1226; } if (!yymatchChar(G, '>')) goto l1226;
  5642. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5643. return 1;
  5644. l1226:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5645. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseBlockquote", G->buf+G->pos));
  5646. return 0;
  5647. }
  5648. YY_RULE(int) yy_HtmlBlockOpenBlockquote(GREG *G)
  5649. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5650. yyprintf((stderr, "%s\n", "HtmlBlockOpenBlockquote")); if (!yymatchChar(G, '<')) goto l1229; if (!yy_Spnl(G)) { goto l1229; }
  5651. { int yypos1230= G->pos, yythunkpos1230= G->thunkpos; if (!yymatchString(G, "blockquote")) goto l1231; goto l1230;
  5652. l1231:; G->pos= yypos1230; G->thunkpos= yythunkpos1230; if (!yymatchString(G, "BLOCKQUOTE")) goto l1229;
  5653. }
  5654. l1230:; if (!yy_Spnl(G)) { goto l1229; }
  5655. l1232:;
  5656. { int yypos1233= G->pos, yythunkpos1233= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1233; } goto l1232;
  5657. l1233:; G->pos= yypos1233; G->thunkpos= yythunkpos1233;
  5658. } if (!yymatchChar(G, '>')) goto l1229;
  5659. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5660. return 1;
  5661. l1229:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5662. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenBlockquote", G->buf+G->pos));
  5663. return 0;
  5664. }
  5665. YY_RULE(int) yy_HtmlBlockAddress(GREG *G)
  5666. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5667. yyprintf((stderr, "%s\n", "HtmlBlockAddress")); if (!yy_HtmlBlockOpenAddress(G)) { goto l1234; }
  5668. l1235:;
  5669. { int yypos1236= G->pos, yythunkpos1236= G->thunkpos;
  5670. { int yypos1237= G->pos, yythunkpos1237= G->thunkpos; if (!yy_HtmlBlockAddress(G)) { goto l1238; } goto l1237;
  5671. l1238:; G->pos= yypos1237; G->thunkpos= yythunkpos1237;
  5672. { int yypos1239= G->pos, yythunkpos1239= G->thunkpos; if (!yy_HtmlBlockCloseAddress(G)) { goto l1239; } goto l1236;
  5673. l1239:; G->pos= yypos1239; G->thunkpos= yythunkpos1239;
  5674. } if (!yymatchDot(G)) goto l1236;
  5675. }
  5676. l1237:; goto l1235;
  5677. l1236:; G->pos= yypos1236; G->thunkpos= yythunkpos1236;
  5678. } if (!yy_HtmlBlockCloseAddress(G)) { goto l1234; }
  5679. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5680. return 1;
  5681. l1234:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5682. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockAddress", G->buf+G->pos));
  5683. return 0;
  5684. }
  5685. YY_RULE(int) yy_HtmlBlockCloseAddress(GREG *G)
  5686. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5687. yyprintf((stderr, "%s\n", "HtmlBlockCloseAddress")); if (!yymatchChar(G, '<')) goto l1240; if (!yy_Spnl(G)) { goto l1240; } if (!yymatchChar(G, '/')) goto l1240;
  5688. { int yypos1241= G->pos, yythunkpos1241= G->thunkpos; if (!yymatchString(G, "address")) goto l1242; goto l1241;
  5689. l1242:; G->pos= yypos1241; G->thunkpos= yythunkpos1241; if (!yymatchString(G, "ADDRESS")) goto l1240;
  5690. }
  5691. l1241:; if (!yy_Spnl(G)) { goto l1240; } if (!yymatchChar(G, '>')) goto l1240;
  5692. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5693. return 1;
  5694. l1240:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5695. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseAddress", G->buf+G->pos));
  5696. return 0;
  5697. }
  5698. YY_RULE(int) yy_HtmlAttribute(GREG *G)
  5699. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5700. yyprintf((stderr, "%s\n", "HtmlAttribute"));
  5701. { int yypos1246= G->pos, yythunkpos1246= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1247; } goto l1246;
  5702. l1247:; G->pos= yypos1246; G->thunkpos= yythunkpos1246; if (!yymatchChar(G, '-')) goto l1243;
  5703. }
  5704. l1246:;
  5705. l1244:;
  5706. { int yypos1245= G->pos, yythunkpos1245= G->thunkpos;
  5707. { int yypos1248= G->pos, yythunkpos1248= G->thunkpos; if (!yy_AlphanumericAscii(G)) { goto l1249; } goto l1248;
  5708. l1249:; G->pos= yypos1248; G->thunkpos= yythunkpos1248; if (!yymatchChar(G, '-')) goto l1245;
  5709. }
  5710. l1248:; goto l1244;
  5711. l1245:; G->pos= yypos1245; G->thunkpos= yythunkpos1245;
  5712. } if (!yy_Spnl(G)) { goto l1243; }
  5713. { int yypos1250= G->pos, yythunkpos1250= G->thunkpos; if (!yymatchChar(G, '=')) goto l1250; if (!yy_Spnl(G)) { goto l1250; }
  5714. { int yypos1252= G->pos, yythunkpos1252= G->thunkpos; if (!yy_Quoted(G)) { goto l1253; } goto l1252;
  5715. l1253:; G->pos= yypos1252; G->thunkpos= yythunkpos1252;
  5716. { int yypos1256= G->pos, yythunkpos1256= G->thunkpos; if (!yymatchChar(G, '>')) goto l1256; goto l1250;
  5717. l1256:; G->pos= yypos1256; G->thunkpos= yythunkpos1256;
  5718. } if (!yy_Nonspacechar(G)) { goto l1250; }
  5719. l1254:;
  5720. { int yypos1255= G->pos, yythunkpos1255= G->thunkpos;
  5721. { int yypos1257= G->pos, yythunkpos1257= G->thunkpos; if (!yymatchChar(G, '>')) goto l1257; goto l1255;
  5722. l1257:; G->pos= yypos1257; G->thunkpos= yythunkpos1257;
  5723. } if (!yy_Nonspacechar(G)) { goto l1255; } goto l1254;
  5724. l1255:; G->pos= yypos1255; G->thunkpos= yythunkpos1255;
  5725. }
  5726. }
  5727. l1252:; goto l1251;
  5728. l1250:; G->pos= yypos1250; G->thunkpos= yythunkpos1250;
  5729. }
  5730. l1251:; if (!yy_Spnl(G)) { goto l1243; }
  5731. yyprintf((stderr, " ok %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5732. return 1;
  5733. l1243:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5734. yyprintf((stderr, " fail %s @ %s\n", "HtmlAttribute", G->buf+G->pos));
  5735. return 0;
  5736. }
  5737. YY_RULE(int) yy_HtmlBlockOpenAddress(GREG *G)
  5738. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5739. yyprintf((stderr, "%s\n", "HtmlBlockOpenAddress")); if (!yymatchChar(G, '<')) goto l1258; if (!yy_Spnl(G)) { goto l1258; }
  5740. { int yypos1259= G->pos, yythunkpos1259= G->thunkpos; if (!yymatchString(G, "address")) goto l1260; goto l1259;
  5741. l1260:; G->pos= yypos1259; G->thunkpos= yythunkpos1259; if (!yymatchString(G, "ADDRESS")) goto l1258;
  5742. }
  5743. l1259:; if (!yy_Spnl(G)) { goto l1258; }
  5744. l1261:;
  5745. { int yypos1262= G->pos, yythunkpos1262= G->thunkpos; if (!yy_HtmlAttribute(G)) { goto l1262; } goto l1261;
  5746. l1262:; G->pos= yypos1262; G->thunkpos= yythunkpos1262;
  5747. } if (!yymatchChar(G, '>')) goto l1258;
  5748. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5749. return 1;
  5750. l1258:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5751. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenAddress", G->buf+G->pos));
  5752. return 0;
  5753. }
  5754. YY_RULE(int) yy_OptionallyIndentedLine(GREG *G)
  5755. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5756. yyprintf((stderr, "%s\n", "OptionallyIndentedLine"));
  5757. { int yypos1264= G->pos, yythunkpos1264= G->thunkpos; if (!yy_Indent(G)) { goto l1264; } goto l1265;
  5758. l1264:; G->pos= yypos1264; G->thunkpos= yythunkpos1264;
  5759. }
  5760. l1265:; if (!yy_Line(G)) { goto l1263; }
  5761. yyprintf((stderr, " ok %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5762. return 1;
  5763. l1263:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5764. yyprintf((stderr, " fail %s @ %s\n", "OptionallyIndentedLine", G->buf+G->pos));
  5765. return 0;
  5766. }
  5767. YY_RULE(int) yy_Indent(GREG *G)
  5768. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5769. yyprintf((stderr, "%s\n", "Indent"));
  5770. { int yypos1267= G->pos, yythunkpos1267= G->thunkpos; if (!yymatchChar(G, '\t')) goto l1268; goto l1267;
  5771. l1268:; G->pos= yypos1267; G->thunkpos= yythunkpos1267; if (!yymatchString(G, " ")) goto l1266;
  5772. }
  5773. l1267:;
  5774. yyprintf((stderr, " ok %s @ %s\n", "Indent", G->buf+G->pos));
  5775. return 1;
  5776. l1266:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5777. yyprintf((stderr, " fail %s @ %s\n", "Indent", G->buf+G->pos));
  5778. return 0;
  5779. }
  5780. YY_RULE(int) yy_ListBlockLine(GREG *G)
  5781. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5782. yyprintf((stderr, "%s\n", "ListBlockLine"));
  5783. { int yypos1270= G->pos, yythunkpos1270= G->thunkpos; if (!yy_BlankLine(G)) { goto l1270; } goto l1269;
  5784. l1270:; G->pos= yypos1270; G->thunkpos= yythunkpos1270;
  5785. }
  5786. { int yypos1271= G->pos, yythunkpos1271= G->thunkpos;
  5787. { int yypos1272= G->pos, yythunkpos1272= G->thunkpos; if (!yy_Indent(G)) { goto l1272; } goto l1273;
  5788. l1272:; G->pos= yypos1272; G->thunkpos= yythunkpos1272;
  5789. }
  5790. l1273:;
  5791. { int yypos1274= G->pos, yythunkpos1274= G->thunkpos; if (!yy_Bullet(G)) { goto l1275; } goto l1274;
  5792. l1275:; G->pos= yypos1274; G->thunkpos= yythunkpos1274; if (!yy_Enumerator(G)) { goto l1271; }
  5793. }
  5794. l1274:; goto l1269;
  5795. l1271:; G->pos= yypos1271; G->thunkpos= yythunkpos1271;
  5796. }
  5797. { int yypos1276= G->pos, yythunkpos1276= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1276; } goto l1269;
  5798. l1276:; G->pos= yypos1276; G->thunkpos= yythunkpos1276;
  5799. } if (!yy_OptionallyIndentedLine(G)) { goto l1269; }
  5800. yyprintf((stderr, " ok %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5801. return 1;
  5802. l1269:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5803. yyprintf((stderr, " fail %s @ %s\n", "ListBlockLine", G->buf+G->pos));
  5804. return 0;
  5805. }
  5806. YY_RULE(int) yy_ListContinuationBlock(GREG *G)
  5807. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5808. yyprintf((stderr, "%s\n", "ListContinuationBlock")); if (!yy_StartList(G)) { goto l1277; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1277;
  5809. l1278:;
  5810. { int yypos1279= G->pos, yythunkpos1279= G->thunkpos; if (!yy_BlankLine(G)) { goto l1279; } goto l1278;
  5811. l1279:; G->pos= yypos1279; G->thunkpos= yythunkpos1279;
  5812. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1277; yyDo(G, yy_1_ListContinuationBlock, G->begin, G->end); if (!yy_Indent(G)) { goto l1277; } if (!yy_ListBlock(G)) { goto l1277; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end);
  5813. l1280:;
  5814. { int yypos1281= G->pos, yythunkpos1281= G->thunkpos; if (!yy_Indent(G)) { goto l1281; } if (!yy_ListBlock(G)) { goto l1281; } yyDo(G, yy_2_ListContinuationBlock, G->begin, G->end); goto l1280;
  5815. l1281:; G->pos= yypos1281; G->thunkpos= yythunkpos1281;
  5816. } yyDo(G, yy_3_ListContinuationBlock, G->begin, G->end);
  5817. yyprintf((stderr, " ok %s @ %s\n", "ListContinuationBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5818. return 1;
  5819. l1277:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5820. yyprintf((stderr, " fail %s @ %s\n", "ListContinuationBlock", G->buf+G->pos));
  5821. return 0;
  5822. }
  5823. YY_RULE(int) yy_ListBlock(GREG *G)
  5824. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5825. yyprintf((stderr, "%s\n", "ListBlock")); if (!yy_StartList(G)) { goto l1282; } yyDo(G, yySet, -1, 0);
  5826. { int yypos1283= G->pos, yythunkpos1283= G->thunkpos; if (!yy_BlankLine(G)) { goto l1283; } goto l1282;
  5827. l1283:; G->pos= yypos1283; G->thunkpos= yythunkpos1283;
  5828. } if (!yy_Line(G)) { goto l1282; } yyDo(G, yy_1_ListBlock, G->begin, G->end);
  5829. l1284:;
  5830. { int yypos1285= G->pos, yythunkpos1285= G->thunkpos; if (!yy_ListBlockLine(G)) { goto l1285; } yyDo(G, yy_2_ListBlock, G->begin, G->end); goto l1284;
  5831. l1285:; G->pos= yypos1285; G->thunkpos= yythunkpos1285;
  5832. } yyDo(G, yy_3_ListBlock, G->begin, G->end);
  5833. yyprintf((stderr, " ok %s @ %s\n", "ListBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5834. return 1;
  5835. l1282:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5836. yyprintf((stderr, " fail %s @ %s\n", "ListBlock", G->buf+G->pos));
  5837. return 0;
  5838. }
  5839. YY_RULE(int) yy_ListItem(GREG *G)
  5840. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5841. yyprintf((stderr, "%s\n", "ListItem"));
  5842. { int yypos1287= G->pos, yythunkpos1287= G->thunkpos; if (!yy_Bullet(G)) { goto l1288; } goto l1287;
  5843. l1288:; G->pos= yypos1287; G->thunkpos= yythunkpos1287; if (!yy_Enumerator(G)) { goto l1286; }
  5844. }
  5845. l1287:; if (!yy_StartList(G)) { goto l1286; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1286; } yyDo(G, yy_1_ListItem, G->begin, G->end);
  5846. l1289:;
  5847. { int yypos1290= G->pos, yythunkpos1290= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1290; } yyDo(G, yy_2_ListItem, G->begin, G->end); goto l1289;
  5848. l1290:; G->pos= yypos1290; G->thunkpos= yythunkpos1290;
  5849. } yyDo(G, yy_3_ListItem, G->begin, G->end);
  5850. yyprintf((stderr, " ok %s @ %s\n", "ListItem", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5851. return 1;
  5852. l1286:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5853. yyprintf((stderr, " fail %s @ %s\n", "ListItem", G->buf+G->pos));
  5854. return 0;
  5855. }
  5856. YY_RULE(int) yy_Enumerator(GREG *G)
  5857. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5858. yyprintf((stderr, "%s\n", "Enumerator")); if (!yy_NonindentSpace(G)) { goto l1291; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1291; 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 l1291;
  5859. l1292:;
  5860. { int yypos1293= G->pos, yythunkpos1293= 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 l1293; goto l1292;
  5861. l1293:; G->pos= yypos1293; G->thunkpos= yythunkpos1293;
  5862. } if (!yymatchChar(G, '.')) goto l1291; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1291; if (!yy_Spacechar(G)) { goto l1291; }
  5863. l1294:;
  5864. { int yypos1295= G->pos, yythunkpos1295= G->thunkpos; if (!yy_Spacechar(G)) { goto l1295; } goto l1294;
  5865. l1295:; G->pos= yypos1295; G->thunkpos= yythunkpos1295;
  5866. } yyDo(G, yy_1_Enumerator, G->begin, G->end);
  5867. yyprintf((stderr, " ok %s @ %s\n", "Enumerator", G->buf+G->pos));
  5868. return 1;
  5869. l1291:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5870. yyprintf((stderr, " fail %s @ %s\n", "Enumerator", G->buf+G->pos));
  5871. return 0;
  5872. }
  5873. YY_RULE(int) yy_ListItemTight(GREG *G)
  5874. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5875. yyprintf((stderr, "%s\n", "ListItemTight"));
  5876. { int yypos1297= G->pos, yythunkpos1297= G->thunkpos; if (!yy_Bullet(G)) { goto l1298; } goto l1297;
  5877. l1298:; G->pos= yypos1297; G->thunkpos= yythunkpos1297; if (!yy_Enumerator(G)) { goto l1296; }
  5878. }
  5879. l1297:; if (!yy_StartList(G)) { goto l1296; } yyDo(G, yySet, -1, 0); if (!yy_ListBlock(G)) { goto l1296; } yyDo(G, yy_1_ListItemTight, G->begin, G->end);
  5880. l1299:;
  5881. { int yypos1300= G->pos, yythunkpos1300= G->thunkpos;
  5882. { int yypos1301= G->pos, yythunkpos1301= G->thunkpos; if (!yy_BlankLine(G)) { goto l1301; } goto l1300;
  5883. l1301:; G->pos= yypos1301; G->thunkpos= yythunkpos1301;
  5884. } if (!yy_ListContinuationBlock(G)) { goto l1300; } yyDo(G, yy_2_ListItemTight, G->begin, G->end); goto l1299;
  5885. l1300:; G->pos= yypos1300; G->thunkpos= yythunkpos1300;
  5886. }
  5887. { int yypos1302= G->pos, yythunkpos1302= G->thunkpos; if (!yy_ListContinuationBlock(G)) { goto l1302; } goto l1296;
  5888. l1302:; G->pos= yypos1302; G->thunkpos= yythunkpos1302;
  5889. } yyDo(G, yy_3_ListItemTight, G->begin, G->end);
  5890. yyprintf((stderr, " ok %s @ %s\n", "ListItemTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5891. return 1;
  5892. l1296:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5893. yyprintf((stderr, " fail %s @ %s\n", "ListItemTight", G->buf+G->pos));
  5894. return 0;
  5895. }
  5896. YY_RULE(int) yy_ListLoose(GREG *G)
  5897. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 2, 0);
  5898. yyprintf((stderr, "%s\n", "ListLoose")); if (!yy_StartList(G)) { goto l1303; } yyDo(G, yySet, -2, 0); if (!yy_ListItem(G)) { goto l1303; } yyDo(G, yySet, -1, 0);
  5899. l1306:;
  5900. { int yypos1307= G->pos, yythunkpos1307= G->thunkpos; if (!yy_BlankLine(G)) { goto l1307; } goto l1306;
  5901. l1307:; G->pos= yypos1307; G->thunkpos= yythunkpos1307;
  5902. } yyDo(G, yy_1_ListLoose, G->begin, G->end);
  5903. l1304:;
  5904. { int yypos1305= G->pos, yythunkpos1305= G->thunkpos; if (!yy_ListItem(G)) { goto l1305; } yyDo(G, yySet, -1, 0);
  5905. l1308:;
  5906. { int yypos1309= G->pos, yythunkpos1309= G->thunkpos; if (!yy_BlankLine(G)) { goto l1309; } goto l1308;
  5907. l1309:; G->pos= yypos1309; G->thunkpos= yythunkpos1309;
  5908. } yyDo(G, yy_1_ListLoose, G->begin, G->end); goto l1304;
  5909. l1305:; G->pos= yypos1305; G->thunkpos= yythunkpos1305;
  5910. } yyDo(G, yy_2_ListLoose, G->begin, G->end);
  5911. yyprintf((stderr, " ok %s @ %s\n", "ListLoose", G->buf+G->pos)); yyDo(G, yyPop, 2, 0);
  5912. return 1;
  5913. l1303:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5914. yyprintf((stderr, " fail %s @ %s\n", "ListLoose", G->buf+G->pos));
  5915. return 0;
  5916. }
  5917. YY_RULE(int) yy_ListTight(GREG *G)
  5918. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  5919. yyprintf((stderr, "%s\n", "ListTight")); if (!yy_StartList(G)) { goto l1310; } yyDo(G, yySet, -1, 0); if (!yy_ListItemTight(G)) { goto l1310; } yyDo(G, yy_1_ListTight, G->begin, G->end);
  5920. l1311:;
  5921. { int yypos1312= G->pos, yythunkpos1312= G->thunkpos; if (!yy_ListItemTight(G)) { goto l1312; } yyDo(G, yy_1_ListTight, G->begin, G->end); goto l1311;
  5922. l1312:; G->pos= yypos1312; G->thunkpos= yythunkpos1312;
  5923. }
  5924. l1313:;
  5925. { int yypos1314= G->pos, yythunkpos1314= G->thunkpos; if (!yy_BlankLine(G)) { goto l1314; } goto l1313;
  5926. l1314:; G->pos= yypos1314; G->thunkpos= yythunkpos1314;
  5927. }
  5928. { int yypos1315= G->pos, yythunkpos1315= G->thunkpos;
  5929. { int yypos1316= G->pos, yythunkpos1316= G->thunkpos; if (!yy_Bullet(G)) { goto l1317; } goto l1316;
  5930. l1317:; G->pos= yypos1316; G->thunkpos= yythunkpos1316; if (!yy_Enumerator(G)) { goto l1315; }
  5931. }
  5932. l1316:; goto l1310;
  5933. l1315:; G->pos= yypos1315; G->thunkpos= yythunkpos1315;
  5934. } yyDo(G, yy_2_ListTight, G->begin, G->end);
  5935. yyprintf((stderr, " ok %s @ %s\n", "ListTight", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  5936. return 1;
  5937. l1310:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5938. yyprintf((stderr, " fail %s @ %s\n", "ListTight", G->buf+G->pos));
  5939. return 0;
  5940. }
  5941. YY_RULE(int) yy_Bullet(GREG *G)
  5942. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5943. yyprintf((stderr, "%s\n", "Bullet"));
  5944. { int yypos1319= G->pos, yythunkpos1319= G->thunkpos; if (!yy_HorizontalRule(G)) { goto l1319; } goto l1318;
  5945. l1319:; G->pos= yypos1319; G->thunkpos= yythunkpos1319;
  5946. } if (!yy_NonindentSpace(G)) { goto l1318; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1318;
  5947. { int yypos1320= G->pos, yythunkpos1320= G->thunkpos; if (!yymatchChar(G, '+')) goto l1321; goto l1320;
  5948. l1321:; G->pos= yypos1320; G->thunkpos= yythunkpos1320; if (!yymatchChar(G, '*')) goto l1322; goto l1320;
  5949. l1322:; G->pos= yypos1320; G->thunkpos= yythunkpos1320; if (!yymatchChar(G, '-')) goto l1318;
  5950. }
  5951. l1320:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1318; if (!yy_Spacechar(G)) { goto l1318; }
  5952. l1323:;
  5953. { int yypos1324= G->pos, yythunkpos1324= G->thunkpos; if (!yy_Spacechar(G)) { goto l1324; } goto l1323;
  5954. l1324:; G->pos= yypos1324; G->thunkpos= yythunkpos1324;
  5955. } yyDo(G, yy_1_Bullet, G->begin, G->end);
  5956. yyprintf((stderr, " ok %s @ %s\n", "Bullet", G->buf+G->pos));
  5957. return 1;
  5958. l1318:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5959. yyprintf((stderr, " fail %s @ %s\n", "Bullet", G->buf+G->pos));
  5960. return 0;
  5961. }
  5962. YY_RULE(int) yy_TableCell(GREG *G)
  5963. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5964. yyprintf((stderr, "%s\n", "TableCell")); if (!yy_Sp(G)) { goto l1325; }
  5965. l1326:;
  5966. { int yypos1327= G->pos, yythunkpos1327= G->thunkpos;
  5967. { int yypos1328= G->pos, yythunkpos1328= G->thunkpos; if (!yymatchChar(G, '|')) goto l1328; goto l1327;
  5968. l1328:; G->pos= yypos1328; G->thunkpos= yythunkpos1328;
  5969. }
  5970. { int yypos1329= G->pos, yythunkpos1329= G->thunkpos; if (!yy_Newline(G)) { goto l1329; } goto l1327;
  5971. l1329:; G->pos= yypos1329; G->thunkpos= yythunkpos1329;
  5972. } if (!yy_Inline(G)) { goto l1327; } goto l1326;
  5973. l1327:; G->pos= yypos1327; G->thunkpos= yythunkpos1327;
  5974. } if (!yy_TableBorder(G)) { goto l1325; }
  5975. yyprintf((stderr, " ok %s @ %s\n", "TableCell", G->buf+G->pos));
  5976. return 1;
  5977. l1325:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5978. yyprintf((stderr, " fail %s @ %s\n", "TableCell", G->buf+G->pos));
  5979. return 0;
  5980. }
  5981. YY_RULE(int) yy_TableBorder(GREG *G)
  5982. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5983. yyprintf((stderr, "%s\n", "TableBorder")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1330; if (!yymatchChar(G, '|')) goto l1330; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1330; yyDo(G, yy_1_TableBorder, G->begin, G->end);
  5984. yyprintf((stderr, " ok %s @ %s\n", "TableBorder", G->buf+G->pos));
  5985. return 1;
  5986. l1330:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  5987. yyprintf((stderr, " fail %s @ %s\n", "TableBorder", G->buf+G->pos));
  5988. return 0;
  5989. }
  5990. YY_RULE(int) yy_TableLine(GREG *G)
  5991. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  5992. yyprintf((stderr, "%s\n", "TableLine")); if (!yy_TableBorder(G)) { goto l1331; } if (!yy_TableCell(G)) { goto l1331; }
  5993. l1332:;
  5994. { int yypos1333= G->pos, yythunkpos1333= G->thunkpos; if (!yy_TableCell(G)) { goto l1333; } goto l1332;
  5995. l1333:; G->pos= yypos1333; G->thunkpos= yythunkpos1333;
  5996. } if (!yy_Sp(G)) { goto l1331; } if (!yy_Newline(G)) { goto l1331; }
  5997. yyprintf((stderr, " ok %s @ %s\n", "TableLine", G->buf+G->pos));
  5998. return 1;
  5999. l1331:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6000. yyprintf((stderr, " fail %s @ %s\n", "TableLine", G->buf+G->pos));
  6001. return 0;
  6002. }
  6003. YY_RULE(int) yy_TableDelimiter(GREG *G)
  6004. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6005. yyprintf((stderr, "%s\n", "TableDelimiter")); if (!yy_TableBorder(G)) { goto l1334; } if (!yy_Sp(G)) { goto l1334; }
  6006. { int yypos1337= G->pos, yythunkpos1337= G->thunkpos; if (!yymatchChar(G, ':')) goto l1337; goto l1338;
  6007. l1337:; G->pos= yypos1337; G->thunkpos= yythunkpos1337;
  6008. }
  6009. l1338:; if (!yymatchChar(G, '-')) goto l1334;
  6010. l1339:;
  6011. { int yypos1340= G->pos, yythunkpos1340= G->thunkpos; if (!yymatchChar(G, '-')) goto l1340; goto l1339;
  6012. l1340:; G->pos= yypos1340; G->thunkpos= yythunkpos1340;
  6013. }
  6014. { int yypos1341= G->pos, yythunkpos1341= G->thunkpos; if (!yymatchChar(G, ':')) goto l1341; goto l1342;
  6015. l1341:; G->pos= yypos1341; G->thunkpos= yythunkpos1341;
  6016. }
  6017. l1342:; if (!yy_Sp(G)) { goto l1334; } if (!yy_TableBorder(G)) { goto l1334; }
  6018. l1335:;
  6019. { int yypos1336= G->pos, yythunkpos1336= G->thunkpos; if (!yy_Sp(G)) { goto l1336; }
  6020. { int yypos1343= G->pos, yythunkpos1343= G->thunkpos; if (!yymatchChar(G, ':')) goto l1343; goto l1344;
  6021. l1343:; G->pos= yypos1343; G->thunkpos= yythunkpos1343;
  6022. }
  6023. l1344:; if (!yymatchChar(G, '-')) goto l1336;
  6024. l1345:;
  6025. { int yypos1346= G->pos, yythunkpos1346= G->thunkpos; if (!yymatchChar(G, '-')) goto l1346; goto l1345;
  6026. l1346:; G->pos= yypos1346; G->thunkpos= yythunkpos1346;
  6027. }
  6028. { int yypos1347= G->pos, yythunkpos1347= G->thunkpos; if (!yymatchChar(G, ':')) goto l1347; goto l1348;
  6029. l1347:; G->pos= yypos1347; G->thunkpos= yythunkpos1347;
  6030. }
  6031. l1348:; if (!yy_Sp(G)) { goto l1336; } if (!yy_TableBorder(G)) { goto l1336; } goto l1335;
  6032. l1336:; G->pos= yypos1336; G->thunkpos= yythunkpos1336;
  6033. } if (!yy_Sp(G)) { goto l1334; } if (!yy_Newline(G)) { goto l1334; }
  6034. yyprintf((stderr, " ok %s @ %s\n", "TableDelimiter", G->buf+G->pos));
  6035. return 1;
  6036. l1334:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6037. yyprintf((stderr, " fail %s @ %s\n", "TableDelimiter", G->buf+G->pos));
  6038. return 0;
  6039. }
  6040. YY_RULE(int) yy_TableHeader(GREG *G)
  6041. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6042. yyprintf((stderr, "%s\n", "TableHeader")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1349; if (!yy_LocMarker(G)) { goto l1349; } yyDo(G, yySet, -1, 0); if (!yy_TableLine(G)) { goto l1349; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1349; yyDo(G, yy_1_TableHeader, G->begin, G->end);
  6043. yyprintf((stderr, " ok %s @ %s\n", "TableHeader", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6044. return 1;
  6045. l1349:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6046. yyprintf((stderr, " fail %s @ %s\n", "TableHeader", G->buf+G->pos));
  6047. return 0;
  6048. }
  6049. YY_RULE(int) yy_InlineEquationMultiple(GREG *G)
  6050. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6051. yyprintf((stderr, "%s\n", "InlineEquationMultiple"));
  6052. { int yypos1351= G->pos, yythunkpos1351= G->thunkpos; if (!yymatchChar(G, '$')) goto l1351; goto l1350;
  6053. l1351:; G->pos= yypos1351; G->thunkpos= yythunkpos1351;
  6054. } if (!yy_Nonspacechar(G)) { goto l1350; }
  6055. { int yypos1354= G->pos, yythunkpos1354= G->thunkpos; if (!yymatchChar(G, '$')) goto l1354; goto l1350;
  6056. l1354:; G->pos= yypos1354; G->thunkpos= yythunkpos1354;
  6057. }
  6058. { int yypos1355= G->pos, yythunkpos1355= G->thunkpos; if (!yy_Newline(G)) { goto l1355; } goto l1350;
  6059. l1355:; G->pos= yypos1355; G->thunkpos= yythunkpos1355;
  6060. } if (!yymatchDot(G)) goto l1350;
  6061. l1352:;
  6062. { int yypos1353= G->pos, yythunkpos1353= G->thunkpos;
  6063. { int yypos1356= G->pos, yythunkpos1356= G->thunkpos; if (!yymatchChar(G, '$')) goto l1356; goto l1353;
  6064. l1356:; G->pos= yypos1356; G->thunkpos= yythunkpos1356;
  6065. }
  6066. { int yypos1357= G->pos, yythunkpos1357= G->thunkpos; if (!yy_Newline(G)) { goto l1357; } goto l1353;
  6067. l1357:; G->pos= yypos1357; G->thunkpos= yythunkpos1357;
  6068. } if (!yymatchDot(G)) goto l1353; goto l1352;
  6069. l1353:; G->pos= yypos1353; G->thunkpos= yythunkpos1353;
  6070. } if (!yymatchChar(G, '$')) goto l1350; yyText(G, G->begin, G->end); if (!( IEP_POST )) goto l1350;
  6071. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  6072. return 1;
  6073. l1350:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6074. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationMultiple", G->buf+G->pos));
  6075. return 0;
  6076. }
  6077. YY_RULE(int) yy_InlineEquationSingle(GREG *G)
  6078. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6079. yyprintf((stderr, "%s\n", "InlineEquationSingle"));
  6080. { int yypos1359= G->pos, yythunkpos1359= G->thunkpos; if (!yymatchChar(G, '$')) goto l1359; goto l1358;
  6081. l1359:; G->pos= yypos1359; G->thunkpos= yythunkpos1359;
  6082. }
  6083. { int yypos1360= G->pos, yythunkpos1360= G->thunkpos; if (!yymatchChar(G, '\\')) goto l1360; goto l1358;
  6084. l1360:; G->pos= yypos1360; G->thunkpos= yythunkpos1360;
  6085. } if (!yy_Nonspacechar(G)) { goto l1358; } if (!yymatchChar(G, '$')) goto l1358;
  6086. yyprintf((stderr, " ok %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  6087. return 1;
  6088. l1358:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6089. yyprintf((stderr, " fail %s @ %s\n", "InlineEquationSingle", G->buf+G->pos));
  6090. return 0;
  6091. }
  6092. YY_RULE(int) yy_InlineEquation(GREG *G)
  6093. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6094. yyprintf((stderr, "%s\n", "InlineEquation")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1361; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1361; if (!yymatchChar(G, '$')) goto l1361; yyText(G, G->begin, G->end); if (!( IEP_PRE )) goto l1361;
  6095. { int yypos1362= G->pos, yythunkpos1362= G->thunkpos; if (!yy_InlineEquationSingle(G)) { goto l1363; } goto l1362;
  6096. l1363:; G->pos= yypos1362; G->thunkpos= yythunkpos1362; if (!yy_InlineEquationMultiple(G)) { goto l1361; }
  6097. }
  6098. l1362:;
  6099. { int yypos1364= G->pos, yythunkpos1364= 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 l1364; goto l1361;
  6100. l1364:; G->pos= yypos1364; G->thunkpos= yythunkpos1364;
  6101. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1361; yyDo(G, yy_1_InlineEquation, G->begin, G->end);
  6102. yyprintf((stderr, " ok %s @ %s\n", "InlineEquation", G->buf+G->pos));
  6103. return 1;
  6104. l1361:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6105. yyprintf((stderr, " fail %s @ %s\n", "InlineEquation", G->buf+G->pos));
  6106. return 0;
  6107. }
  6108. YY_RULE(int) yy_Nonspacechar(GREG *G)
  6109. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6110. yyprintf((stderr, "%s\n", "Nonspacechar"));
  6111. { int yypos1366= G->pos, yythunkpos1366= G->thunkpos; if (!yy_Spacechar(G)) { goto l1366; } goto l1365;
  6112. l1366:; G->pos= yypos1366; G->thunkpos= yythunkpos1366;
  6113. }
  6114. { int yypos1367= G->pos, yythunkpos1367= G->thunkpos; if (!yy_Newline(G)) { goto l1367; } goto l1365;
  6115. l1367:; G->pos= yypos1367; G->thunkpos= yythunkpos1367;
  6116. } if (!yymatchDot(G)) goto l1365;
  6117. yyprintf((stderr, " ok %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  6118. return 1;
  6119. l1365:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6120. yyprintf((stderr, " fail %s @ %s\n", "Nonspacechar", G->buf+G->pos));
  6121. return 0;
  6122. }
  6123. YY_RULE(int) yy_DisplayFormulaRawMark(GREG *G)
  6124. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6125. yyprintf((stderr, "%s\n", "DisplayFormulaRawMark"));
  6126. { int yypos1371= G->pos, yythunkpos1371= G->thunkpos; if (!yymatchChar(G, '{')) goto l1371; goto l1368;
  6127. l1371:; G->pos= yypos1371; G->thunkpos= yythunkpos1371;
  6128. }
  6129. { int yypos1372= G->pos, yythunkpos1372= G->thunkpos; if (!yymatchChar(G, '}')) goto l1372; goto l1368;
  6130. l1372:; G->pos= yypos1372; G->thunkpos= yythunkpos1372;
  6131. } if (!yy_Nonspacechar(G)) { goto l1368; }
  6132. l1369:;
  6133. { int yypos1370= G->pos, yythunkpos1370= G->thunkpos;
  6134. { int yypos1373= G->pos, yythunkpos1373= G->thunkpos; if (!yymatchChar(G, '{')) goto l1373; goto l1370;
  6135. l1373:; G->pos= yypos1373; G->thunkpos= yythunkpos1373;
  6136. }
  6137. { int yypos1374= G->pos, yythunkpos1374= G->thunkpos; if (!yymatchChar(G, '}')) goto l1374; goto l1370;
  6138. l1374:; G->pos= yypos1374; G->thunkpos= yythunkpos1374;
  6139. } if (!yy_Nonspacechar(G)) { goto l1370; } goto l1369;
  6140. l1370:; G->pos= yypos1370; G->thunkpos= yythunkpos1370;
  6141. }
  6142. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRawMark", G->buf+G->pos));
  6143. return 1;
  6144. l1368:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6145. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRawMark", G->buf+G->pos));
  6146. return 0;
  6147. }
  6148. YY_RULE(int) yy_DisplayFormulaRawEnd(GREG *G)
  6149. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6150. yyprintf((stderr, "%s\n", "DisplayFormulaRawEnd")); if (!yymatchString(G, "\\end")) goto l1375; if (!yymatchChar(G, '{')) goto l1375; if (!yy_DisplayFormulaRawMark(G)) { goto l1375; } if (!yymatchChar(G, '}')) goto l1375;
  6151. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRawEnd", G->buf+G->pos));
  6152. return 1;
  6153. l1375:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6154. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRawEnd", G->buf+G->pos));
  6155. return 0;
  6156. }
  6157. YY_RULE(int) yy_Spnl(GREG *G)
  6158. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6159. yyprintf((stderr, "%s\n", "Spnl")); if (!yy_Sp(G)) { goto l1376; }
  6160. { int yypos1377= G->pos, yythunkpos1377= G->thunkpos; if (!yy_Newline(G)) { goto l1377; } if (!yy_Sp(G)) { goto l1377; } goto l1378;
  6161. l1377:; G->pos= yypos1377; G->thunkpos= yythunkpos1377;
  6162. }
  6163. l1378:;
  6164. yyprintf((stderr, " ok %s @ %s\n", "Spnl", G->buf+G->pos));
  6165. return 1;
  6166. l1376:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6167. yyprintf((stderr, " fail %s @ %s\n", "Spnl", G->buf+G->pos));
  6168. return 0;
  6169. }
  6170. YY_RULE(int) yy_DisplayFormulaRawStart(GREG *G)
  6171. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6172. yyprintf((stderr, "%s\n", "DisplayFormulaRawStart")); if (!yymatchString(G, "\\begin")) goto l1379; if (!yymatchChar(G, '{')) goto l1379; if (!yy_DisplayFormulaRawMark(G)) { goto l1379; } if (!yymatchChar(G, '}')) goto l1379;
  6173. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRawStart", G->buf+G->pos));
  6174. return 1;
  6175. l1379:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6176. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRawStart", G->buf+G->pos));
  6177. return 0;
  6178. }
  6179. YY_RULE(int) yy_FormulaNumber(GREG *G)
  6180. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6181. yyprintf((stderr, "%s\n", "FormulaNumber")); if (!yymatchChar(G, '(')) goto l1380;
  6182. { int yypos1383= G->pos, yythunkpos1383= G->thunkpos; if (!yymatchChar(G, ')')) goto l1383; goto l1380;
  6183. l1383:; G->pos= yypos1383; G->thunkpos= yythunkpos1383;
  6184. }
  6185. { int yypos1384= G->pos, yythunkpos1384= G->thunkpos; if (!yymatchChar(G, '$')) goto l1384; goto l1380;
  6186. l1384:; G->pos= yypos1384; G->thunkpos= yythunkpos1384;
  6187. }
  6188. { int yypos1385= G->pos, yythunkpos1385= G->thunkpos; if (!yy_Newline(G)) { goto l1385; } goto l1380;
  6189. l1385:; G->pos= yypos1385; G->thunkpos= yythunkpos1385;
  6190. } if (!yymatchDot(G)) goto l1380;
  6191. l1381:;
  6192. { int yypos1382= G->pos, yythunkpos1382= G->thunkpos;
  6193. { int yypos1386= G->pos, yythunkpos1386= G->thunkpos; if (!yymatchChar(G, ')')) goto l1386; goto l1382;
  6194. l1386:; G->pos= yypos1386; G->thunkpos= yythunkpos1386;
  6195. }
  6196. { int yypos1387= G->pos, yythunkpos1387= G->thunkpos; if (!yymatchChar(G, '$')) goto l1387; goto l1382;
  6197. l1387:; G->pos= yypos1387; G->thunkpos= yythunkpos1387;
  6198. }
  6199. { int yypos1388= G->pos, yythunkpos1388= G->thunkpos; if (!yy_Newline(G)) { goto l1388; } goto l1382;
  6200. l1388:; G->pos= yypos1388; G->thunkpos= yythunkpos1388;
  6201. } if (!yymatchDot(G)) goto l1382; goto l1381;
  6202. l1382:; G->pos= yypos1382; G->thunkpos= yythunkpos1382;
  6203. } if (!yymatchChar(G, ')')) goto l1380;
  6204. yyprintf((stderr, " ok %s @ %s\n", "FormulaNumber", G->buf+G->pos));
  6205. return 1;
  6206. l1380:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6207. yyprintf((stderr, " fail %s @ %s\n", "FormulaNumber", G->buf+G->pos));
  6208. return 0;
  6209. }
  6210. YY_RULE(int) yy_DisplayFormulaRaw(GREG *G)
  6211. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6212. yyprintf((stderr, "%s\n", "DisplayFormulaRaw")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH_RAW) )) goto l1389; if (!yy_NonindentSpace(G)) { goto l1389; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1389; if (!yy_DisplayFormulaRawStart(G)) { goto l1389; } yyText(G, G->begin, G->end); if (!( start_dfr() )) goto l1389; if (!yy_Spnl(G)) { goto l1389; }
  6213. l1390:;
  6214. { int yypos1391= G->pos, yythunkpos1391= G->thunkpos;
  6215. { int yypos1392= G->pos, yythunkpos1392= G->thunkpos; if (!yy_DisplayFormulaRawStart(G)) { goto l1393; } yyText(G, G->begin, G->end); if (!( inc_dfr() )) goto l1393; goto l1392;
  6216. l1393:; G->pos= yypos1392; G->thunkpos= yythunkpos1392; 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; goto l1392;
  6217. l1394:; G->pos= yypos1392; G->thunkpos= yythunkpos1392;
  6218. { int yypos1395= G->pos, yythunkpos1395= G->thunkpos; if (!yy_DisplayFormulaRawEnd(G)) { goto l1395; } goto l1391;
  6219. l1395:; G->pos= yypos1395; G->thunkpos= yythunkpos1395;
  6220. }
  6221. { int yypos1396= G->pos, yythunkpos1396= G->thunkpos; if (!yy_DisplayFormulaRawStart(G)) { goto l1396; } goto l1391;
  6222. l1396:; G->pos= yypos1396; G->thunkpos= yythunkpos1396;
  6223. }
  6224. { int yypos1397= G->pos, yythunkpos1397= G->thunkpos; if (!yy_Newline(G)) { goto l1397; } if (!yy_Newline(G)) { goto l1397; }
  6225. l1398:;
  6226. { int yypos1399= G->pos, yythunkpos1399= G->thunkpos; if (!yy_Newline(G)) { goto l1399; } goto l1398;
  6227. l1399:; G->pos= yypos1399; G->thunkpos= yythunkpos1399;
  6228. } goto l1391;
  6229. l1397:; G->pos= yypos1397; G->thunkpos= yythunkpos1397;
  6230. } if (!yymatchDot(G)) goto l1391;
  6231. }
  6232. l1392:; goto l1390;
  6233. l1391:; G->pos= yypos1391; G->thunkpos= yythunkpos1391;
  6234. } yyText(G, G->begin, G->end); if (!( !nested_dfr() )) goto l1389; if (!yy_DisplayFormulaRawEnd(G)) { goto l1389; } yyText(G, G->begin, G->end); if (!( dec_dfr() )) goto l1389; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1389; if (!yy_Sp(G)) { goto l1389; } if (!yy_Newline(G)) { goto l1389; } yyDo(G, yy_1_DisplayFormulaRaw, G->begin, G->end);
  6235. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaRaw", G->buf+G->pos));
  6236. return 1;
  6237. l1389:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6238. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaRaw", G->buf+G->pos));
  6239. return 0;
  6240. }
  6241. YY_RULE(int) yy_DisplayFormulaDollar(GREG *G)
  6242. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6243. yyprintf((stderr, "%s\n", "DisplayFormulaDollar")); if (!yy_NonindentSpace(G)) { goto l1400; } yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1400; if (!yymatchString(G, "$$")) goto l1400;
  6244. l1401:;
  6245. { int yypos1402= G->pos, yythunkpos1402= G->thunkpos;
  6246. { int yypos1403= G->pos, yythunkpos1403= G->thunkpos; if (!yymatchString(G, "$$")) goto l1403; goto l1402;
  6247. l1403:; G->pos= yypos1403; G->thunkpos= yythunkpos1403;
  6248. } if (!yymatchDot(G)) goto l1402; goto l1401;
  6249. l1402:; G->pos= yypos1402; G->thunkpos= yythunkpos1402;
  6250. } if (!yymatchString(G, "$$")) goto l1400; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1400; if (!yy_Sp(G)) { goto l1400; }
  6251. { int yypos1404= G->pos, yythunkpos1404= G->thunkpos; if (!yy_FormulaNumber(G)) { goto l1404; } goto l1405;
  6252. l1404:; G->pos= yypos1404; G->thunkpos= yythunkpos1404;
  6253. }
  6254. l1405:; if (!yy_Sp(G)) { goto l1400; } if (!yy_Newline(G)) { goto l1400; } yyDo(G, yy_1_DisplayFormulaDollar, G->begin, G->end);
  6255. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormulaDollar", G->buf+G->pos));
  6256. return 1;
  6257. l1400:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6258. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormulaDollar", G->buf+G->pos));
  6259. return 0;
  6260. }
  6261. YY_RULE(int) yy_FencedCodeBlockTidle(GREG *G)
  6262. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6263. yyprintf((stderr, "%s\n", "FencedCodeBlockTidle")); if (!yy_FencedCodeBlockStartTidle(G)) { goto l1406; }
  6264. l1407:;
  6265. { int yypos1408= G->pos, yythunkpos1408= G->thunkpos; if (!yy_FencedCodeBlockChunkTidle(G)) { goto l1408; } goto l1407;
  6266. l1408:; G->pos= yypos1408; G->thunkpos= yythunkpos1408;
  6267. } if (!yy_FencedCodeBlockEndTidle(G)) { goto l1406; }
  6268. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockTidle", G->buf+G->pos));
  6269. return 1;
  6270. l1406:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6271. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockTidle", G->buf+G->pos));
  6272. return 0;
  6273. }
  6274. YY_RULE(int) yy_FencedCodeBlockTick(GREG *G)
  6275. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6276. yyprintf((stderr, "%s\n", "FencedCodeBlockTick")); if (!yy_FencedCodeBlockStartTick(G)) { goto l1409; }
  6277. l1410:;
  6278. { int yypos1411= G->pos, yythunkpos1411= G->thunkpos; if (!yy_FencedCodeBlockChunkTick(G)) { goto l1411; } goto l1410;
  6279. l1411:; G->pos= yypos1411; G->thunkpos= yythunkpos1411;
  6280. } if (!yy_FencedCodeBlockEndTick(G)) { goto l1409; }
  6281. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockTick", G->buf+G->pos));
  6282. return 1;
  6283. l1409:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6284. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockTick", G->buf+G->pos));
  6285. return 0;
  6286. }
  6287. YY_RULE(int) yy_FencedCodeBlockEndTidle(GREG *G)
  6288. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6289. yyprintf((stderr, "%s\n", "FencedCodeBlockEndTidle")); if (!yymatchString(G, "~~~")) goto l1412;
  6290. l1413:;
  6291. { int yypos1414= G->pos, yythunkpos1414= G->thunkpos; if (!yy_Spacechar(G)) { goto l1414; } goto l1413;
  6292. l1414:; G->pos= yypos1414; G->thunkpos= yythunkpos1414;
  6293. } if (!yy_Newline(G)) { goto l1412; }
  6294. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockEndTidle", G->buf+G->pos));
  6295. return 1;
  6296. l1412:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6297. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockEndTidle", G->buf+G->pos));
  6298. return 0;
  6299. }
  6300. YY_RULE(int) yy_FencedCodeBlockChunkTidle(GREG *G)
  6301. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6302. yyprintf((stderr, "%s\n", "FencedCodeBlockChunkTidle"));
  6303. { int yypos1416= G->pos, yythunkpos1416= G->thunkpos; if (!yy_FencedCodeBlockEndTidle(G)) { goto l1416; } goto l1415;
  6304. l1416:; G->pos= yypos1416; G->thunkpos= yythunkpos1416;
  6305. }
  6306. l1417:;
  6307. { int yypos1418= G->pos, yythunkpos1418= G->thunkpos;
  6308. { int yypos1419= G->pos, yythunkpos1419= G->thunkpos; if (!yy_Newline(G)) { goto l1419; } goto l1418;
  6309. l1419:; G->pos= yypos1419; G->thunkpos= yythunkpos1419;
  6310. } if (!yymatchDot(G)) goto l1418; goto l1417;
  6311. l1418:; G->pos= yypos1418; G->thunkpos= yythunkpos1418;
  6312. } if (!yy_Newline(G)) { goto l1415; }
  6313. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockChunkTidle", G->buf+G->pos));
  6314. return 1;
  6315. l1415:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6316. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockChunkTidle", G->buf+G->pos));
  6317. return 0;
  6318. }
  6319. YY_RULE(int) yy_FencedCodeBlockStartTidle(GREG *G)
  6320. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6321. yyprintf((stderr, "%s\n", "FencedCodeBlockStartTidle")); if (!yymatchString(G, "~~~")) goto l1420;
  6322. l1421:;
  6323. { int yypos1422= G->pos, yythunkpos1422= G->thunkpos;
  6324. { int yypos1423= G->pos, yythunkpos1423= G->thunkpos; if (!yy_Newline(G)) { goto l1423; } goto l1422;
  6325. l1423:; G->pos= yypos1423; G->thunkpos= yythunkpos1423;
  6326. }
  6327. { int yypos1424= G->pos, yythunkpos1424= G->thunkpos; if (!yymatchChar(G, '~')) goto l1424; goto l1422;
  6328. l1424:; G->pos= yypos1424; G->thunkpos= yythunkpos1424;
  6329. } if (!yymatchDot(G)) goto l1422; goto l1421;
  6330. l1422:; G->pos= yypos1422; G->thunkpos= yythunkpos1422;
  6331. } if (!yy_Newline(G)) { goto l1420; }
  6332. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStartTidle", G->buf+G->pos));
  6333. return 1;
  6334. l1420:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6335. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStartTidle", G->buf+G->pos));
  6336. return 0;
  6337. }
  6338. YY_RULE(int) yy_Spacechar(GREG *G)
  6339. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6340. yyprintf((stderr, "%s\n", "Spacechar"));
  6341. { int yypos1426= G->pos, yythunkpos1426= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1427; goto l1426;
  6342. l1427:; G->pos= yypos1426; G->thunkpos= yythunkpos1426; if (!yymatchChar(G, '\t')) goto l1425;
  6343. }
  6344. l1426:;
  6345. yyprintf((stderr, " ok %s @ %s\n", "Spacechar", G->buf+G->pos));
  6346. return 1;
  6347. l1425:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6348. yyprintf((stderr, " fail %s @ %s\n", "Spacechar", G->buf+G->pos));
  6349. return 0;
  6350. }
  6351. YY_RULE(int) yy_FencedCodeBlockEndTick(GREG *G)
  6352. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6353. yyprintf((stderr, "%s\n", "FencedCodeBlockEndTick")); if (!yymatchString(G, "```")) goto l1428;
  6354. l1429:;
  6355. { int yypos1430= G->pos, yythunkpos1430= G->thunkpos; if (!yy_Spacechar(G)) { goto l1430; } goto l1429;
  6356. l1430:; G->pos= yypos1430; G->thunkpos= yythunkpos1430;
  6357. } if (!yy_Newline(G)) { goto l1428; }
  6358. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockEndTick", G->buf+G->pos));
  6359. return 1;
  6360. l1428:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6361. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockEndTick", G->buf+G->pos));
  6362. return 0;
  6363. }
  6364. YY_RULE(int) yy_FencedCodeBlockChunkTick(GREG *G)
  6365. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6366. yyprintf((stderr, "%s\n", "FencedCodeBlockChunkTick"));
  6367. { int yypos1432= G->pos, yythunkpos1432= G->thunkpos; if (!yy_FencedCodeBlockEndTick(G)) { goto l1432; } goto l1431;
  6368. l1432:; G->pos= yypos1432; G->thunkpos= yythunkpos1432;
  6369. }
  6370. l1433:;
  6371. { int yypos1434= G->pos, yythunkpos1434= G->thunkpos;
  6372. { int yypos1435= G->pos, yythunkpos1435= G->thunkpos; if (!yy_Newline(G)) { goto l1435; } goto l1434;
  6373. l1435:; G->pos= yypos1435; G->thunkpos= yythunkpos1435;
  6374. } if (!yymatchDot(G)) goto l1434; goto l1433;
  6375. l1434:; G->pos= yypos1434; G->thunkpos= yythunkpos1434;
  6376. } if (!yy_Newline(G)) { goto l1431; }
  6377. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockChunkTick", G->buf+G->pos));
  6378. return 1;
  6379. l1431:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6380. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockChunkTick", G->buf+G->pos));
  6381. return 0;
  6382. }
  6383. YY_RULE(int) yy_FencedCodeBlockStartTick(GREG *G)
  6384. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6385. yyprintf((stderr, "%s\n", "FencedCodeBlockStartTick")); if (!yymatchString(G, "```")) goto l1436;
  6386. l1437:;
  6387. { int yypos1438= G->pos, yythunkpos1438= G->thunkpos;
  6388. { int yypos1439= G->pos, yythunkpos1439= G->thunkpos; if (!yy_Newline(G)) { goto l1439; } goto l1438;
  6389. l1439:; G->pos= yypos1439; G->thunkpos= yythunkpos1439;
  6390. }
  6391. { int yypos1440= G->pos, yythunkpos1440= G->thunkpos; if (!yymatchChar(G, '`')) goto l1440; goto l1438;
  6392. l1440:; G->pos= yypos1440; G->thunkpos= yythunkpos1440;
  6393. } if (!yymatchDot(G)) goto l1438; goto l1437;
  6394. l1438:; G->pos= yypos1438; G->thunkpos= yythunkpos1438;
  6395. } if (!yy_Newline(G)) { goto l1436; }
  6396. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlockStartTick", G->buf+G->pos));
  6397. return 1;
  6398. l1436:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6399. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlockStartTick", G->buf+G->pos));
  6400. return 0;
  6401. }
  6402. YY_RULE(int) yy_VerbatimChunk(GREG *G)
  6403. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6404. yyprintf((stderr, "%s\n", "VerbatimChunk"));
  6405. l1442:;
  6406. { int yypos1443= G->pos, yythunkpos1443= G->thunkpos; if (!yy_BlankLine(G)) { goto l1443; } goto l1442;
  6407. l1443:; G->pos= yypos1443; G->thunkpos= yythunkpos1443;
  6408. } if (!yy_NonblankIndentedLine(G)) { goto l1441; }
  6409. l1444:;
  6410. { int yypos1445= G->pos, yythunkpos1445= G->thunkpos; if (!yy_NonblankIndentedLine(G)) { goto l1445; } goto l1444;
  6411. l1445:; G->pos= yypos1445; G->thunkpos= yythunkpos1445;
  6412. }
  6413. yyprintf((stderr, " ok %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6414. return 1;
  6415. l1441:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6416. yyprintf((stderr, " fail %s @ %s\n", "VerbatimChunk", G->buf+G->pos));
  6417. return 0;
  6418. }
  6419. YY_RULE(int) yy_IndentedLine(GREG *G)
  6420. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6421. yyprintf((stderr, "%s\n", "IndentedLine")); if (!yy_Indent(G)) { goto l1446; } if (!yy_Line(G)) { goto l1446; }
  6422. yyprintf((stderr, " ok %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6423. return 1;
  6424. l1446:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6425. yyprintf((stderr, " fail %s @ %s\n", "IndentedLine", G->buf+G->pos));
  6426. return 0;
  6427. }
  6428. YY_RULE(int) yy_NonblankIndentedLine(GREG *G)
  6429. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6430. yyprintf((stderr, "%s\n", "NonblankIndentedLine"));
  6431. { int yypos1448= G->pos, yythunkpos1448= G->thunkpos; if (!yy_BlankLine(G)) { goto l1448; } goto l1447;
  6432. l1448:; G->pos= yypos1448; G->thunkpos= yythunkpos1448;
  6433. } if (!yy_IndentedLine(G)) { goto l1447; }
  6434. yyprintf((stderr, " ok %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6435. return 1;
  6436. l1447:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6437. yyprintf((stderr, " fail %s @ %s\n", "NonblankIndentedLine", G->buf+G->pos));
  6438. return 0;
  6439. }
  6440. YY_RULE(int) yy_Line(GREG *G)
  6441. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6442. yyprintf((stderr, "%s\n", "Line")); if (!yy_RawLine(G)) { goto l1449; } yyDo(G, yy_1_Line, G->begin, G->end);
  6443. yyprintf((stderr, " ok %s @ %s\n", "Line", G->buf+G->pos));
  6444. return 1;
  6445. l1449:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6446. yyprintf((stderr, " fail %s @ %s\n", "Line", G->buf+G->pos));
  6447. return 0;
  6448. }
  6449. YY_RULE(int) yy_StartList(GREG *G)
  6450. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6451. yyprintf((stderr, "%s\n", "StartList"));
  6452. { int yypos1451= G->pos, yythunkpos1451= G->thunkpos; if (!yymatchDot(G)) goto l1450; G->pos= yypos1451; G->thunkpos= yythunkpos1451;
  6453. } yyDo(G, yy_1_StartList, G->begin, G->end);
  6454. yyprintf((stderr, " ok %s @ %s\n", "StartList", G->buf+G->pos));
  6455. return 1;
  6456. l1450:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6457. yyprintf((stderr, " fail %s @ %s\n", "StartList", G->buf+G->pos));
  6458. return 0;
  6459. }
  6460. YY_RULE(int) yy_BlockQuoteRaw(GREG *G)
  6461. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6462. yyprintf((stderr, "%s\n", "BlockQuoteRaw")); if (!yy_StartList(G)) { goto l1452; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1452; if (!yymatchChar(G, '>')) goto l1452;
  6463. { int yypos1455= G->pos, yythunkpos1455= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1455; goto l1456;
  6464. l1455:; G->pos= yypos1455; G->thunkpos= yythunkpos1455;
  6465. }
  6466. l1456:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1452; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1452; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6467. l1457:;
  6468. { int yypos1458= G->pos, yythunkpos1458= G->thunkpos;
  6469. { int yypos1459= G->pos, yythunkpos1459= G->thunkpos; if (!yymatchChar(G, '>')) goto l1459; goto l1458;
  6470. l1459:; G->pos= yypos1459; G->thunkpos= yythunkpos1459;
  6471. }
  6472. { int yypos1460= G->pos, yythunkpos1460= G->thunkpos; if (!yy_BlankLine(G)) { goto l1460; } goto l1458;
  6473. l1460:; G->pos= yypos1460; G->thunkpos= yythunkpos1460;
  6474. } if (!yy_Line(G)) { goto l1458; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1457;
  6475. l1458:; G->pos= yypos1458; G->thunkpos= yythunkpos1458;
  6476. }
  6477. l1461:;
  6478. { int yypos1462= G->pos, yythunkpos1462= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1462; if (!yy_BlankLine(G)) { goto l1462; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1462; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1461;
  6479. l1462:; G->pos= yypos1462; G->thunkpos= yythunkpos1462;
  6480. }
  6481. l1453:;
  6482. { int yypos1454= G->pos, yythunkpos1454= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1454; if (!yymatchChar(G, '>')) goto l1454;
  6483. { int yypos1463= G->pos, yythunkpos1463= G->thunkpos; if (!yymatchChar(G, ' ')) goto l1463; goto l1464;
  6484. l1463:; G->pos= yypos1463; G->thunkpos= yythunkpos1463;
  6485. }
  6486. l1464:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1454; yyDo(G, yy_1_BlockQuoteRaw, G->begin, G->end); if (!yy_Line(G)) { goto l1454; } yyDo(G, yy_2_BlockQuoteRaw, G->begin, G->end);
  6487. l1465:;
  6488. { int yypos1466= G->pos, yythunkpos1466= G->thunkpos;
  6489. { int yypos1467= G->pos, yythunkpos1467= G->thunkpos; if (!yymatchChar(G, '>')) goto l1467; goto l1466;
  6490. l1467:; G->pos= yypos1467; G->thunkpos= yythunkpos1467;
  6491. }
  6492. { int yypos1468= G->pos, yythunkpos1468= G->thunkpos; if (!yy_BlankLine(G)) { goto l1468; } goto l1466;
  6493. l1468:; G->pos= yypos1468; G->thunkpos= yythunkpos1468;
  6494. } if (!yy_Line(G)) { goto l1466; } yyDo(G, yy_3_BlockQuoteRaw, G->begin, G->end); goto l1465;
  6495. l1466:; G->pos= yypos1466; G->thunkpos= yythunkpos1466;
  6496. }
  6497. l1469:;
  6498. { int yypos1470= G->pos, yythunkpos1470= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1470; if (!yy_BlankLine(G)) { goto l1470; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1470; yyDo(G, yy_4_BlockQuoteRaw, G->begin, G->end); goto l1469;
  6499. l1470:; G->pos= yypos1470; G->thunkpos= yythunkpos1470;
  6500. } goto l1453;
  6501. l1454:; G->pos= yypos1454; G->thunkpos= yythunkpos1454;
  6502. } yyDo(G, yy_5_BlockQuoteRaw, G->begin, G->end);
  6503. yyprintf((stderr, " ok %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6504. return 1;
  6505. l1452:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6506. yyprintf((stderr, " fail %s @ %s\n", "BlockQuoteRaw", G->buf+G->pos));
  6507. return 0;
  6508. }
  6509. YY_RULE(int) yy_Endline(GREG *G)
  6510. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6511. yyprintf((stderr, "%s\n", "Endline"));
  6512. { int yypos1472= G->pos, yythunkpos1472= G->thunkpos; if (!yy_LineBreak(G)) { goto l1473; } goto l1472;
  6513. l1473:; G->pos= yypos1472; G->thunkpos= yythunkpos1472; if (!yy_TerminalEndline(G)) { goto l1474; } goto l1472;
  6514. l1474:; G->pos= yypos1472; G->thunkpos= yythunkpos1472; if (!yy_NormalEndline(G)) { goto l1471; }
  6515. }
  6516. l1472:;
  6517. yyprintf((stderr, " ok %s @ %s\n", "Endline", G->buf+G->pos));
  6518. return 1;
  6519. l1471:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6520. yyprintf((stderr, " fail %s @ %s\n", "Endline", G->buf+G->pos));
  6521. return 0;
  6522. }
  6523. YY_RULE(int) yy_RawLine(GREG *G)
  6524. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6525. yyprintf((stderr, "%s\n", "RawLine"));
  6526. { int yypos1476= G->pos, yythunkpos1476= G->thunkpos; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1477;
  6527. l1478:;
  6528. { int yypos1479= G->pos, yythunkpos1479= G->thunkpos;
  6529. { int yypos1480= G->pos, yythunkpos1480= G->thunkpos; if (!yymatchChar(G, '\r')) goto l1480; goto l1479;
  6530. l1480:; G->pos= yypos1480; G->thunkpos= yythunkpos1480;
  6531. }
  6532. { int yypos1481= G->pos, yythunkpos1481= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1481; goto l1479;
  6533. l1481:; G->pos= yypos1481; G->thunkpos= yythunkpos1481;
  6534. } if (!yymatchDot(G)) goto l1479; goto l1478;
  6535. l1479:; G->pos= yypos1479; G->thunkpos= yythunkpos1479;
  6536. } if (!yy_Newline(G)) { goto l1477; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1477; goto l1476;
  6537. l1477:; G->pos= yypos1476; G->thunkpos= yythunkpos1476; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1475; if (!yymatchDot(G)) goto l1475;
  6538. l1482:;
  6539. { int yypos1483= G->pos, yythunkpos1483= G->thunkpos; if (!yymatchDot(G)) goto l1483; goto l1482;
  6540. l1483:; G->pos= yypos1483; G->thunkpos= yythunkpos1483;
  6541. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1475; if (!yy_Eof(G)) { goto l1475; }
  6542. }
  6543. l1476:; yyDo(G, yy_1_RawLine, G->begin, G->end);
  6544. yyprintf((stderr, " ok %s @ %s\n", "RawLine", G->buf+G->pos));
  6545. return 1;
  6546. l1475:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6547. yyprintf((stderr, " fail %s @ %s\n", "RawLine", G->buf+G->pos));
  6548. return 0;
  6549. }
  6550. YY_RULE(int) yy_SetextBottom2(GREG *G)
  6551. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6552. yyprintf((stderr, "%s\n", "SetextBottom2")); if (!yymatchChar(G, '-')) goto l1484;
  6553. l1485:;
  6554. { int yypos1486= G->pos, yythunkpos1486= G->thunkpos; if (!yymatchChar(G, '-')) goto l1486; goto l1485;
  6555. l1486:; G->pos= yypos1486; G->thunkpos= yythunkpos1486;
  6556. } if (!yy_Newline(G)) { goto l1484; }
  6557. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6558. return 1;
  6559. l1484:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6560. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom2", G->buf+G->pos));
  6561. return 0;
  6562. }
  6563. YY_RULE(int) yy_SetextBottom1(GREG *G)
  6564. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6565. yyprintf((stderr, "%s\n", "SetextBottom1")); if (!yymatchChar(G, '=')) goto l1487;
  6566. l1488:;
  6567. { int yypos1489= G->pos, yythunkpos1489= G->thunkpos; if (!yymatchChar(G, '=')) goto l1489; goto l1488;
  6568. l1489:; G->pos= yypos1489; G->thunkpos= yythunkpos1489;
  6569. } if (!yy_Newline(G)) { goto l1487; }
  6570. yyprintf((stderr, " ok %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6571. return 1;
  6572. l1487:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6573. yyprintf((stderr, " fail %s @ %s\n", "SetextBottom1", G->buf+G->pos));
  6574. return 0;
  6575. }
  6576. YY_RULE(int) yy_SetextHeading2(GREG *G)
  6577. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6578. yyprintf((stderr, "%s\n", "SetextHeading2"));
  6579. { int yypos1491= G->pos, yythunkpos1491= G->thunkpos; if (!yy_RawLine(G)) { goto l1490; } if (!yy_SetextBottom2(G)) { goto l1490; } G->pos= yypos1491; G->thunkpos= yythunkpos1491;
  6580. } if (!yy_LocMarker(G)) { goto l1490; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1490;
  6581. { int yypos1494= G->pos, yythunkpos1494= G->thunkpos; if (!yy_Endline(G)) { goto l1494; } goto l1490;
  6582. l1494:; G->pos= yypos1494; G->thunkpos= yythunkpos1494;
  6583. } if (!yy_Inline(G)) { goto l1490; }
  6584. l1492:;
  6585. { int yypos1493= G->pos, yythunkpos1493= G->thunkpos;
  6586. { int yypos1495= G->pos, yythunkpos1495= G->thunkpos; if (!yy_Endline(G)) { goto l1495; } goto l1493;
  6587. l1495:; G->pos= yypos1495; G->thunkpos= yythunkpos1495;
  6588. } if (!yy_Inline(G)) { goto l1493; } goto l1492;
  6589. l1493:; G->pos= yypos1493; G->thunkpos= yythunkpos1493;
  6590. } if (!yy_Sp(G)) { goto l1490; } if (!yy_Newline(G)) { goto l1490; } if (!yy_SetextBottom2(G)) { goto l1490; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1490; yyDo(G, yy_1_SetextHeading2, G->begin, G->end);
  6591. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading2", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6592. return 1;
  6593. l1490:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6594. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading2", G->buf+G->pos));
  6595. return 0;
  6596. }
  6597. YY_RULE(int) yy_SetextHeading1(GREG *G)
  6598. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6599. yyprintf((stderr, "%s\n", "SetextHeading1"));
  6600. { int yypos1497= G->pos, yythunkpos1497= G->thunkpos; if (!yy_RawLine(G)) { goto l1496; } if (!yy_SetextBottom1(G)) { goto l1496; } G->pos= yypos1497; G->thunkpos= yythunkpos1497;
  6601. } if (!yy_LocMarker(G)) { goto l1496; } yyDo(G, yySet, -1, 0); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1496;
  6602. { int yypos1500= G->pos, yythunkpos1500= G->thunkpos; if (!yy_Endline(G)) { goto l1500; } goto l1496;
  6603. l1500:; G->pos= yypos1500; G->thunkpos= yythunkpos1500;
  6604. } if (!yy_Inline(G)) { goto l1496; }
  6605. l1498:;
  6606. { int yypos1499= G->pos, yythunkpos1499= G->thunkpos;
  6607. { int yypos1501= G->pos, yythunkpos1501= G->thunkpos; if (!yy_Endline(G)) { goto l1501; } goto l1499;
  6608. l1501:; G->pos= yypos1501; G->thunkpos= yythunkpos1501;
  6609. } if (!yy_Inline(G)) { goto l1499; } goto l1498;
  6610. l1499:; G->pos= yypos1499; G->thunkpos= yythunkpos1499;
  6611. } if (!yy_Sp(G)) { goto l1496; } if (!yy_Newline(G)) { goto l1496; } if (!yy_SetextBottom1(G)) { goto l1496; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1496; yyDo(G, yy_1_SetextHeading1, G->begin, G->end);
  6612. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading1", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6613. return 1;
  6614. l1496:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6615. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading1", G->buf+G->pos));
  6616. return 0;
  6617. }
  6618. YY_RULE(int) yy_SetextHeading(GREG *G)
  6619. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6620. yyprintf((stderr, "%s\n", "SetextHeading"));
  6621. { int yypos1503= G->pos, yythunkpos1503= G->thunkpos; if (!yy_SetextHeading1(G)) { goto l1504; } goto l1503;
  6622. l1504:; G->pos= yypos1503; G->thunkpos= yythunkpos1503; if (!yy_SetextHeading2(G)) { goto l1502; }
  6623. }
  6624. l1503:;
  6625. yyprintf((stderr, " ok %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6626. return 1;
  6627. l1502:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6628. yyprintf((stderr, " fail %s @ %s\n", "SetextHeading", G->buf+G->pos));
  6629. return 0;
  6630. }
  6631. YY_RULE(int) yy_Space(GREG *G)
  6632. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6633. yyprintf((stderr, "%s\n", "Space")); if (!yy_Spacechar(G)) { goto l1505; }
  6634. l1506:;
  6635. { int yypos1507= G->pos, yythunkpos1507= G->thunkpos; if (!yy_Spacechar(G)) { goto l1507; } goto l1506;
  6636. l1507:; G->pos= yypos1507; G->thunkpos= yythunkpos1507;
  6637. }
  6638. yyprintf((stderr, " ok %s @ %s\n", "Space", G->buf+G->pos));
  6639. return 1;
  6640. l1505:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6641. yyprintf((stderr, " fail %s @ %s\n", "Space", G->buf+G->pos));
  6642. return 0;
  6643. }
  6644. YY_RULE(int) yy_AtxHeading(GREG *G)
  6645. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6646. yyprintf((stderr, "%s\n", "AtxHeading")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1508; if (!yy_AtxStart(G)) { goto l1508; } yyDo(G, yySet, -1, 0); if (!yy_Space(G)) { goto l1508; } if (!yy_AtxInline(G)) { goto l1508; }
  6647. l1509:;
  6648. { int yypos1510= G->pos, yythunkpos1510= G->thunkpos; if (!yy_AtxInline(G)) { goto l1510; } goto l1509;
  6649. l1510:; G->pos= yypos1510; G->thunkpos= yythunkpos1510;
  6650. }
  6651. { int yypos1511= G->pos, yythunkpos1511= G->thunkpos; if (!yy_Sp(G)) { goto l1511; }
  6652. l1513:;
  6653. { int yypos1514= G->pos, yythunkpos1514= G->thunkpos; if (!yymatchChar(G, '#')) goto l1514; goto l1513;
  6654. l1514:; G->pos= yypos1514; G->thunkpos= yythunkpos1514;
  6655. } if (!yy_Sp(G)) { goto l1511; } goto l1512;
  6656. l1511:; G->pos= yypos1511; G->thunkpos= yythunkpos1511;
  6657. }
  6658. l1512:; if (!yy_Newline(G)) { goto l1508; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1508; yyDo(G, yy_1_AtxHeading, G->begin, G->end);
  6659. yyprintf((stderr, " ok %s @ %s\n", "AtxHeading", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6660. return 1;
  6661. l1508:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6662. yyprintf((stderr, " fail %s @ %s\n", "AtxHeading", G->buf+G->pos));
  6663. return 0;
  6664. }
  6665. YY_RULE(int) yy_AtxStart(GREG *G)
  6666. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6667. yyprintf((stderr, "%s\n", "AtxStart")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1515;
  6668. { int yypos1516= G->pos, yythunkpos1516= G->thunkpos; if (!yymatchString(G, "######")) goto l1517; goto l1516;
  6669. l1517:; G->pos= yypos1516; G->thunkpos= yythunkpos1516; if (!yymatchString(G, "#####")) goto l1518; goto l1516;
  6670. l1518:; G->pos= yypos1516; G->thunkpos= yythunkpos1516; if (!yymatchString(G, "####")) goto l1519; goto l1516;
  6671. l1519:; G->pos= yypos1516; G->thunkpos= yythunkpos1516; if (!yymatchString(G, "###")) goto l1520; goto l1516;
  6672. l1520:; G->pos= yypos1516; G->thunkpos= yythunkpos1516; if (!yymatchString(G, "##")) goto l1521; goto l1516;
  6673. l1521:; G->pos= yypos1516; G->thunkpos= yythunkpos1516; if (!yymatchChar(G, '#')) goto l1515;
  6674. }
  6675. l1516:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1515; yyDo(G, yy_1_AtxStart, G->begin, G->end);
  6676. yyprintf((stderr, " ok %s @ %s\n", "AtxStart", G->buf+G->pos));
  6677. return 1;
  6678. l1515:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6679. yyprintf((stderr, " fail %s @ %s\n", "AtxStart", G->buf+G->pos));
  6680. return 0;
  6681. }
  6682. YY_RULE(int) yy_Inline(GREG *G)
  6683. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6684. yyprintf((stderr, "%s\n", "Inline"));
  6685. { int yypos1523= G->pos, yythunkpos1523= G->thunkpos; if (!yy_Str(G)) { goto l1524; } goto l1523;
  6686. l1524:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Endline(G)) { goto l1525; } goto l1523;
  6687. l1525:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_UlOrStarLine(G)) { goto l1526; } goto l1523;
  6688. l1526:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Space(G)) { goto l1527; } goto l1523;
  6689. l1527:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Strong(G)) { goto l1528; } goto l1523;
  6690. l1528:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Emph(G)) { goto l1529; } goto l1523;
  6691. l1529:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Strike(G)) { goto l1530; } goto l1523;
  6692. l1530:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Image(G)) { goto l1531; } goto l1523;
  6693. l1531:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Link(G)) { goto l1532; } goto l1523;
  6694. l1532:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_NoteReference(G)) { goto l1533; } goto l1523;
  6695. l1533:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_InlineNote(G)) { goto l1534; } goto l1523;
  6696. l1534:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Code(G)) { goto l1535; } goto l1523;
  6697. l1535:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_InlineEquation(G)) { goto l1536; } goto l1523;
  6698. l1536:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Mark(G)) { goto l1537; } goto l1523;
  6699. l1537:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_RawHtml(G)) { goto l1538; } goto l1523;
  6700. l1538:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Entity(G)) { goto l1539; } goto l1523;
  6701. l1539:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_EscapedChar(G)) { goto l1540; } goto l1523;
  6702. l1540:; G->pos= yypos1523; G->thunkpos= yythunkpos1523; if (!yy_Symbol(G)) { goto l1522; }
  6703. }
  6704. l1523:;
  6705. yyprintf((stderr, " ok %s @ %s\n", "Inline", G->buf+G->pos));
  6706. return 1;
  6707. l1522:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6708. yyprintf((stderr, " fail %s @ %s\n", "Inline", G->buf+G->pos));
  6709. return 0;
  6710. }
  6711. YY_RULE(int) yy_Sp(GREG *G)
  6712. {
  6713. yyprintf((stderr, "%s\n", "Sp"));
  6714. l1542:;
  6715. { int yypos1543= G->pos, yythunkpos1543= G->thunkpos; if (!yy_Spacechar(G)) { goto l1543; } goto l1542;
  6716. l1543:; G->pos= yypos1543; G->thunkpos= yythunkpos1543;
  6717. }
  6718. yyprintf((stderr, " ok %s @ %s\n", "Sp", G->buf+G->pos));
  6719. return 1;
  6720. }
  6721. YY_RULE(int) yy_AtxInline(GREG *G)
  6722. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6723. yyprintf((stderr, "%s\n", "AtxInline"));
  6724. { int yypos1545= G->pos, yythunkpos1545= G->thunkpos; if (!yy_Newline(G)) { goto l1545; } goto l1544;
  6725. l1545:; G->pos= yypos1545; G->thunkpos= yythunkpos1545;
  6726. }
  6727. { int yypos1546= G->pos, yythunkpos1546= G->thunkpos; if (!yy_Sp(G)) { goto l1546; }
  6728. l1547:;
  6729. { int yypos1548= G->pos, yythunkpos1548= G->thunkpos; if (!yymatchChar(G, '#')) goto l1548; goto l1547;
  6730. l1548:; G->pos= yypos1548; G->thunkpos= yythunkpos1548;
  6731. } if (!yy_Sp(G)) { goto l1546; } if (!yy_Newline(G)) { goto l1546; } goto l1544;
  6732. l1546:; G->pos= yypos1546; G->thunkpos= yythunkpos1546;
  6733. } if (!yy_Inline(G)) { goto l1544; }
  6734. yyprintf((stderr, " ok %s @ %s\n", "AtxInline", G->buf+G->pos));
  6735. return 1;
  6736. l1544:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6737. yyprintf((stderr, " fail %s @ %s\n", "AtxInline", G->buf+G->pos));
  6738. return 0;
  6739. }
  6740. YY_RULE(int) yy_Inlines(GREG *G)
  6741. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6742. yyprintf((stderr, "%s\n", "Inlines"));
  6743. { int yypos1552= G->pos, yythunkpos1552= G->thunkpos;
  6744. { int yypos1554= G->pos, yythunkpos1554= G->thunkpos; if (!yy_Endline(G)) { goto l1554; } goto l1553;
  6745. l1554:; G->pos= yypos1554; G->thunkpos= yythunkpos1554;
  6746. } if (!yy_Inline(G)) { goto l1553; } goto l1552;
  6747. l1553:; G->pos= yypos1552; G->thunkpos= yythunkpos1552; if (!yy_Endline(G)) { goto l1549; }
  6748. { int yypos1555= G->pos, yythunkpos1555= G->thunkpos; if (!yy_Inline(G)) { goto l1549; } G->pos= yypos1555; G->thunkpos= yythunkpos1555;
  6749. }
  6750. }
  6751. l1552:;
  6752. l1550:;
  6753. { int yypos1551= G->pos, yythunkpos1551= G->thunkpos;
  6754. { int yypos1556= G->pos, yythunkpos1556= G->thunkpos;
  6755. { int yypos1558= G->pos, yythunkpos1558= G->thunkpos; if (!yy_Endline(G)) { goto l1558; } goto l1557;
  6756. l1558:; G->pos= yypos1558; G->thunkpos= yythunkpos1558;
  6757. } if (!yy_Inline(G)) { goto l1557; } goto l1556;
  6758. l1557:; G->pos= yypos1556; G->thunkpos= yythunkpos1556; if (!yy_Endline(G)) { goto l1551; }
  6759. { int yypos1559= G->pos, yythunkpos1559= G->thunkpos; if (!yy_Inline(G)) { goto l1551; } G->pos= yypos1559; G->thunkpos= yythunkpos1559;
  6760. }
  6761. }
  6762. l1556:; goto l1550;
  6763. l1551:; G->pos= yypos1551; G->thunkpos= yythunkpos1551;
  6764. }
  6765. { int yypos1560= G->pos, yythunkpos1560= G->thunkpos; if (!yy_Endline(G)) { goto l1560; } goto l1561;
  6766. l1560:; G->pos= yypos1560; G->thunkpos= yythunkpos1560;
  6767. }
  6768. l1561:;
  6769. yyprintf((stderr, " ok %s @ %s\n", "Inlines", G->buf+G->pos));
  6770. return 1;
  6771. l1549:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6772. yyprintf((stderr, " fail %s @ %s\n", "Inlines", G->buf+G->pos));
  6773. return 0;
  6774. }
  6775. YY_RULE(int) yy_NonindentSpace(GREG *G)
  6776. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6777. yyprintf((stderr, "%s\n", "NonindentSpace"));
  6778. { int yypos1563= G->pos, yythunkpos1563= G->thunkpos; if (!yymatchString(G, " ")) goto l1564; goto l1563;
  6779. l1564:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yymatchString(G, " ")) goto l1565; goto l1563;
  6780. l1565:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yymatchChar(G, ' ')) goto l1566; goto l1563;
  6781. l1566:; G->pos= yypos1563; G->thunkpos= yythunkpos1563; if (!yymatchString(G, "")) goto l1562;
  6782. }
  6783. l1563:;
  6784. yyprintf((stderr, " ok %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6785. return 1;
  6786. l1562:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6787. yyprintf((stderr, " fail %s @ %s\n", "NonindentSpace", G->buf+G->pos));
  6788. return 0;
  6789. }
  6790. YY_RULE(int) yy_Plain(GREG *G)
  6791. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6792. yyprintf((stderr, "%s\n", "Plain")); if (!yy_Inlines(G)) { goto l1567; }
  6793. yyprintf((stderr, " ok %s @ %s\n", "Plain", G->buf+G->pos));
  6794. return 1;
  6795. l1567:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6796. yyprintf((stderr, " fail %s @ %s\n", "Plain", G->buf+G->pos));
  6797. return 0;
  6798. }
  6799. YY_RULE(int) yy_Para(GREG *G)
  6800. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6801. yyprintf((stderr, "%s\n", "Para")); if (!yy_NonindentSpace(G)) { goto l1568; } if (!yy_Inlines(G)) { goto l1568; } if (!yy_BlankLine(G)) { goto l1568; }
  6802. l1569:;
  6803. { int yypos1570= G->pos, yythunkpos1570= G->thunkpos; if (!yy_BlankLine(G)) { goto l1570; } goto l1569;
  6804. l1570:; G->pos= yypos1570; G->thunkpos= yythunkpos1570;
  6805. }
  6806. yyprintf((stderr, " ok %s @ %s\n", "Para", G->buf+G->pos));
  6807. return 1;
  6808. l1568:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6809. yyprintf((stderr, " fail %s @ %s\n", "Para", G->buf+G->pos));
  6810. return 0;
  6811. }
  6812. YY_RULE(int) yy_StyleBlock(GREG *G)
  6813. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6814. yyprintf((stderr, "%s\n", "StyleBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1571; if (!yy_LocMarker(G)) { goto l1571; } yyDo(G, yySet, -1, 0); if (!yy_InStyleTags(G)) { goto l1571; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1571;
  6815. l1572:;
  6816. { int yypos1573= G->pos, yythunkpos1573= G->thunkpos; if (!yy_BlankLine(G)) { goto l1573; } goto l1572;
  6817. l1573:; G->pos= yypos1573; G->thunkpos= yythunkpos1573;
  6818. } yyDo(G, yy_1_StyleBlock, G->begin, G->end);
  6819. yyprintf((stderr, " ok %s @ %s\n", "StyleBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6820. return 1;
  6821. l1571:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6822. yyprintf((stderr, " fail %s @ %s\n", "StyleBlock", G->buf+G->pos));
  6823. return 0;
  6824. }
  6825. YY_RULE(int) yy_HtmlBlock(GREG *G)
  6826. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6827. yyprintf((stderr, "%s\n", "HtmlBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1574; if (!yy_LocMarker(G)) { goto l1574; } yyDo(G, yySet, -1, 0);
  6828. { int yypos1575= G->pos, yythunkpos1575= G->thunkpos; if (!yy_HtmlBlockInTags(G)) { goto l1576; } goto l1575;
  6829. l1576:; G->pos= yypos1575; G->thunkpos= yythunkpos1575; if (!yy_HtmlComment(G)) { goto l1577; } goto l1575;
  6830. l1577:; G->pos= yypos1575; G->thunkpos= yythunkpos1575; if (!yy_HtmlBlockSelfClosing(G)) { goto l1574; }
  6831. }
  6832. l1575:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1574; if (!yy_BlankLine(G)) { goto l1574; }
  6833. l1578:;
  6834. { int yypos1579= G->pos, yythunkpos1579= G->thunkpos; if (!yy_BlankLine(G)) { goto l1579; } goto l1578;
  6835. l1579:; G->pos= yypos1579; G->thunkpos= yythunkpos1579;
  6836. } yyDo(G, yy_1_HtmlBlock, G->begin, G->end);
  6837. yyprintf((stderr, " ok %s @ %s\n", "HtmlBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6838. return 1;
  6839. l1574:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6840. yyprintf((stderr, " fail %s @ %s\n", "HtmlBlock", G->buf+G->pos));
  6841. return 0;
  6842. }
  6843. YY_RULE(int) yy_Table(GREG *G)
  6844. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6845. yyprintf((stderr, "%s\n", "Table")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_TABLE) )) goto l1580; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1580; if (!yy_LocMarker(G)) { goto l1580; } yyDo(G, yySet, -1, 0); if (!yy_TableHeader(G)) { goto l1580; } if (!yy_TableDelimiter(G)) { goto l1580; }
  6846. l1581:;
  6847. { int yypos1582= G->pos, yythunkpos1582= G->thunkpos; if (!yy_TableLine(G)) { goto l1582; } goto l1581;
  6848. l1582:; G->pos= yypos1582; G->thunkpos= yythunkpos1582;
  6849. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1580; yyDo(G, yy_1_Table, G->begin, G->end);
  6850. yyprintf((stderr, " ok %s @ %s\n", "Table", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6851. return 1;
  6852. l1580:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6853. yyprintf((stderr, " fail %s @ %s\n", "Table", G->buf+G->pos));
  6854. return 0;
  6855. }
  6856. YY_RULE(int) yy_BulletList(GREG *G)
  6857. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6858. yyprintf((stderr, "%s\n", "BulletList"));
  6859. { int yypos1584= G->pos, yythunkpos1584= G->thunkpos; if (!yy_Bullet(G)) { goto l1583; } G->pos= yypos1584; G->thunkpos= yythunkpos1584;
  6860. }
  6861. { int yypos1585= G->pos, yythunkpos1585= G->thunkpos; if (!yy_ListTight(G)) { goto l1586; } goto l1585;
  6862. l1586:; G->pos= yypos1585; G->thunkpos= yythunkpos1585; if (!yy_ListLoose(G)) { goto l1583; }
  6863. }
  6864. l1585:;
  6865. yyprintf((stderr, " ok %s @ %s\n", "BulletList", G->buf+G->pos));
  6866. return 1;
  6867. l1583:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6868. yyprintf((stderr, " fail %s @ %s\n", "BulletList", G->buf+G->pos));
  6869. return 0;
  6870. }
  6871. YY_RULE(int) yy_OrderedList(GREG *G)
  6872. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6873. yyprintf((stderr, "%s\n", "OrderedList"));
  6874. { int yypos1588= G->pos, yythunkpos1588= G->thunkpos; if (!yy_Enumerator(G)) { goto l1587; } G->pos= yypos1588; G->thunkpos= yythunkpos1588;
  6875. }
  6876. { int yypos1589= G->pos, yythunkpos1589= G->thunkpos; if (!yy_ListTight(G)) { goto l1590; } goto l1589;
  6877. l1590:; G->pos= yypos1589; G->thunkpos= yythunkpos1589; if (!yy_ListLoose(G)) { goto l1587; }
  6878. }
  6879. l1589:;
  6880. yyprintf((stderr, " ok %s @ %s\n", "OrderedList", G->buf+G->pos));
  6881. return 1;
  6882. l1587:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6883. yyprintf((stderr, " fail %s @ %s\n", "OrderedList", G->buf+G->pos));
  6884. return 0;
  6885. }
  6886. YY_RULE(int) yy_Heading(GREG *G)
  6887. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6888. yyprintf((stderr, "%s\n", "Heading"));
  6889. { int yypos1592= G->pos, yythunkpos1592= G->thunkpos; if (!yy_SetextHeading(G)) { goto l1593; } goto l1592;
  6890. l1593:; G->pos= yypos1592; G->thunkpos= yythunkpos1592; if (!yy_AtxHeading(G)) { goto l1591; }
  6891. }
  6892. l1592:;
  6893. yyprintf((stderr, " ok %s @ %s\n", "Heading", G->buf+G->pos));
  6894. return 1;
  6895. l1591:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6896. yyprintf((stderr, " fail %s @ %s\n", "Heading", G->buf+G->pos));
  6897. return 0;
  6898. }
  6899. YY_RULE(int) yy_HorizontalRule(GREG *G)
  6900. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6901. yyprintf((stderr, "%s\n", "HorizontalRule")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1594; if (!yy_NonindentSpace(G)) { goto l1594; }
  6902. { int yypos1595= G->pos, yythunkpos1595= G->thunkpos; if (!yymatchChar(G, '*')) goto l1596; if (!yy_Sp(G)) { goto l1596; } if (!yymatchChar(G, '*')) goto l1596; if (!yy_Sp(G)) { goto l1596; } if (!yymatchChar(G, '*')) goto l1596;
  6903. l1597:;
  6904. { int yypos1598= G->pos, yythunkpos1598= G->thunkpos; if (!yy_Sp(G)) { goto l1598; } if (!yymatchChar(G, '*')) goto l1598; goto l1597;
  6905. l1598:; G->pos= yypos1598; G->thunkpos= yythunkpos1598;
  6906. } goto l1595;
  6907. l1596:; G->pos= yypos1595; G->thunkpos= yythunkpos1595; if (!yymatchChar(G, '-')) goto l1599; if (!yy_Sp(G)) { goto l1599; } if (!yymatchChar(G, '-')) goto l1599; if (!yy_Sp(G)) { goto l1599; } if (!yymatchChar(G, '-')) goto l1599;
  6908. l1600:;
  6909. { int yypos1601= G->pos, yythunkpos1601= G->thunkpos; if (!yy_Sp(G)) { goto l1601; } if (!yymatchChar(G, '-')) goto l1601; goto l1600;
  6910. l1601:; G->pos= yypos1601; G->thunkpos= yythunkpos1601;
  6911. } goto l1595;
  6912. l1599:; G->pos= yypos1595; G->thunkpos= yythunkpos1595; if (!yymatchChar(G, '_')) goto l1594; if (!yy_Sp(G)) { goto l1594; } if (!yymatchChar(G, '_')) goto l1594; if (!yy_Sp(G)) { goto l1594; } if (!yymatchChar(G, '_')) goto l1594;
  6913. l1602:;
  6914. { int yypos1603= G->pos, yythunkpos1603= G->thunkpos; if (!yy_Sp(G)) { goto l1603; } if (!yymatchChar(G, '_')) goto l1603; goto l1602;
  6915. l1603:; G->pos= yypos1603; G->thunkpos= yythunkpos1603;
  6916. }
  6917. }
  6918. l1595:; if (!yy_Sp(G)) { goto l1594; } if (!yy_Newline(G)) { goto l1594; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1594; yyDo(G, yy_1_HorizontalRule, G->begin, G->end);
  6919. yyprintf((stderr, " ok %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6920. return 1;
  6921. l1594:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6922. yyprintf((stderr, " fail %s @ %s\n", "HorizontalRule", G->buf+G->pos));
  6923. return 0;
  6924. }
  6925. YY_RULE(int) yy_Reference(GREG *G)
  6926. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 3, 0);
  6927. yyprintf((stderr, "%s\n", "Reference")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1604; if (!yy_LocMarker(G)) { goto l1604; } yyDo(G, yySet, -3, 0); if (!yy_NonindentSpace(G)) { goto l1604; }
  6928. { int yypos1605= G->pos, yythunkpos1605= G->thunkpos; if (!yymatchString(G, "[]")) goto l1605; goto l1604;
  6929. l1605:; G->pos= yypos1605; G->thunkpos= yythunkpos1605;
  6930. } if (!yy_Label(G)) { goto l1604; } yyDo(G, yySet, -2, 0); if (!yymatchChar(G, ':')) goto l1604; if (!yy_Spnl(G)) { goto l1604; } if (!yy_RefSrc(G)) { goto l1604; } yyDo(G, yySet, -1, 0); if (!yy_RefTitle(G)) { goto l1604; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1604; if (!yy_BlankLine(G)) { goto l1604; }
  6931. l1606:;
  6932. { int yypos1607= G->pos, yythunkpos1607= G->thunkpos; if (!yy_BlankLine(G)) { goto l1607; } goto l1606;
  6933. l1607:; G->pos= yypos1607; G->thunkpos= yythunkpos1607;
  6934. } yyDo(G, yy_1_Reference, G->begin, G->end);
  6935. yyprintf((stderr, " ok %s @ %s\n", "Reference", G->buf+G->pos)); yyDo(G, yyPop, 3, 0);
  6936. return 1;
  6937. l1604:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6938. yyprintf((stderr, " fail %s @ %s\n", "Reference", G->buf+G->pos));
  6939. return 0;
  6940. }
  6941. YY_RULE(int) yy_Note(GREG *G)
  6942. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6943. yyprintf((stderr, "%s\n", "Note")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_NOTES) )) goto l1608; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1608; if (!yy_LocMarker(G)) { goto l1608; } yyDo(G, yySet, -1, 0); if (!yy_NonindentSpace(G)) { goto l1608; } if (!yy_RawNoteReference(G)) { goto l1608; } if (!yymatchChar(G, ':')) goto l1608; if (!yy_Sp(G)) { goto l1608; } if (!yy_RawNoteBlock(G)) { goto l1608; }
  6944. l1609:;
  6945. { int yypos1610= G->pos, yythunkpos1610= G->thunkpos;
  6946. { int yypos1611= G->pos, yythunkpos1611= G->thunkpos; if (!yy_Indent(G)) { goto l1610; } G->pos= yypos1611; G->thunkpos= yythunkpos1611;
  6947. } if (!yy_RawNoteBlock(G)) { goto l1610; } goto l1609;
  6948. l1610:; G->pos= yypos1610; G->thunkpos= yythunkpos1610;
  6949. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1608; yyDo(G, yy_1_Note, G->begin, G->end);
  6950. yyprintf((stderr, " ok %s @ %s\n", "Note", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6951. return 1;
  6952. l1608:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6953. yyprintf((stderr, " fail %s @ %s\n", "Note", G->buf+G->pos));
  6954. return 0;
  6955. }
  6956. YY_RULE(int) yy_DisplayFormula(GREG *G)
  6957. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  6958. yyprintf((stderr, "%s\n", "DisplayFormula")); yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_MATH) )) goto l1612;
  6959. { int yypos1613= G->pos, yythunkpos1613= G->thunkpos; if (!yy_DisplayFormulaDollar(G)) { goto l1614; } goto l1613;
  6960. l1614:; G->pos= yypos1613; G->thunkpos= yythunkpos1613; if (!yy_DisplayFormulaRaw(G)) { goto l1612; }
  6961. }
  6962. l1613:;
  6963. yyprintf((stderr, " ok %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  6964. return 1;
  6965. l1612:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6966. yyprintf((stderr, " fail %s @ %s\n", "DisplayFormula", G->buf+G->pos));
  6967. return 0;
  6968. }
  6969. YY_RULE(int) yy_FencedCodeBlock(GREG *G)
  6970. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6971. yyprintf((stderr, "%s\n", "FencedCodeBlock")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1615; if (!yy_LocMarker(G)) { goto l1615; } yyDo(G, yySet, -1, 0);
  6972. { int yypos1616= G->pos, yythunkpos1616= G->thunkpos; if (!yy_FencedCodeBlockTick(G)) { goto l1617; } goto l1616;
  6973. l1617:; G->pos= yypos1616; G->thunkpos= yythunkpos1616; if (!yy_FencedCodeBlockTidle(G)) { goto l1615; }
  6974. }
  6975. l1616:; yyText(G, G->begin, G->end); if (!(YY_END)) goto l1615; yyDo(G, yy_1_FencedCodeBlock, G->begin, G->end);
  6976. yyprintf((stderr, " ok %s @ %s\n", "FencedCodeBlock", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6977. return 1;
  6978. l1615:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6979. yyprintf((stderr, " fail %s @ %s\n", "FencedCodeBlock", G->buf+G->pos));
  6980. return 0;
  6981. }
  6982. YY_RULE(int) yy_Verbatim(GREG *G)
  6983. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6984. yyprintf((stderr, "%s\n", "Verbatim")); yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1618; if (!yy_LocMarker(G)) { goto l1618; } yyDo(G, yySet, -1, 0); if (!yy_VerbatimChunk(G)) { goto l1618; }
  6985. l1619:;
  6986. { int yypos1620= G->pos, yythunkpos1620= G->thunkpos; if (!yy_VerbatimChunk(G)) { goto l1620; } goto l1619;
  6987. l1620:; G->pos= yypos1620; G->thunkpos= yythunkpos1620;
  6988. } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1618; yyDo(G, yy_1_Verbatim, G->begin, G->end);
  6989. yyprintf((stderr, " ok %s @ %s\n", "Verbatim", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6990. return 1;
  6991. l1618:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  6992. yyprintf((stderr, " fail %s @ %s\n", "Verbatim", G->buf+G->pos));
  6993. return 0;
  6994. }
  6995. YY_RULE(int) yy_BlockQuote(GREG *G)
  6996. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  6997. yyprintf((stderr, "%s\n", "BlockQuote")); if (!yy_BlockQuoteRaw(G)) { goto l1621; } yyDo(G, yySet, -1, 0); yyDo(G, yy_1_BlockQuote, G->begin, G->end);
  6998. yyprintf((stderr, " ok %s @ %s\n", "BlockQuote", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  6999. return 1;
  7000. l1621:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7001. yyprintf((stderr, " fail %s @ %s\n", "BlockQuote", G->buf+G->pos));
  7002. return 0;
  7003. }
  7004. YY_RULE(int) yy_BlankLine(GREG *G)
  7005. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7006. yyprintf((stderr, "%s\n", "BlankLine")); if (!yy_Sp(G)) { goto l1622; } if (!yy_Newline(G)) { goto l1622; }
  7007. yyprintf((stderr, " ok %s @ %s\n", "BlankLine", G->buf+G->pos));
  7008. return 1;
  7009. l1622:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7010. yyprintf((stderr, " fail %s @ %s\n", "BlankLine", G->buf+G->pos));
  7011. return 0;
  7012. }
  7013. YY_RULE(int) yy_FrontMatterEndMark(GREG *G)
  7014. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7015. yyprintf((stderr, "%s\n", "FrontMatterEndMark"));
  7016. { int yypos1624= G->pos, yythunkpos1624= G->thunkpos; if (!yymatchString(G, "---")) goto l1625; goto l1624;
  7017. l1625:; G->pos= yypos1624; G->thunkpos= yythunkpos1624; if (!yymatchString(G, "...")) goto l1623;
  7018. }
  7019. l1624:;
  7020. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  7021. return 1;
  7022. l1623:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7023. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterEndMark", G->buf+G->pos));
  7024. return 0;
  7025. }
  7026. YY_RULE(int) yy_FrontMatterBlock(GREG *G)
  7027. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7028. yyprintf((stderr, "%s\n", "FrontMatterBlock"));
  7029. { int yypos1627= G->pos, yythunkpos1627= G->thunkpos; if (!yy_FrontMatterEndMark(G)) { goto l1627; } goto l1626;
  7030. l1627:; G->pos= yypos1627; G->thunkpos= yythunkpos1627;
  7031. }
  7032. l1628:;
  7033. { int yypos1629= G->pos, yythunkpos1629= G->thunkpos;
  7034. { int yypos1630= G->pos, yythunkpos1630= G->thunkpos; if (!yy_Newline(G)) { goto l1630; } goto l1629;
  7035. l1630:; G->pos= yypos1630; G->thunkpos= yythunkpos1630;
  7036. } if (!yymatchDot(G)) goto l1629; goto l1628;
  7037. l1629:; G->pos= yypos1629; G->thunkpos= yythunkpos1629;
  7038. } if (!yy_Newline(G)) { goto l1626; }
  7039. yyprintf((stderr, " ok %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  7040. return 1;
  7041. l1626:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7042. yyprintf((stderr, " fail %s @ %s\n", "FrontMatterBlock", G->buf+G->pos));
  7043. return 0;
  7044. }
  7045. YY_RULE(int) yy_Newline(GREG *G)
  7046. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7047. yyprintf((stderr, "%s\n", "Newline"));
  7048. { int yypos1632= G->pos, yythunkpos1632= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1633; goto l1632;
  7049. l1633:; G->pos= yypos1632; G->thunkpos= yythunkpos1632; if (!yymatchChar(G, '\r')) goto l1631;
  7050. { int yypos1634= G->pos, yythunkpos1634= G->thunkpos; if (!yymatchChar(G, '\n')) goto l1634; goto l1635;
  7051. l1634:; G->pos= yypos1634; G->thunkpos= yythunkpos1634;
  7052. }
  7053. l1635:;
  7054. }
  7055. l1632:;
  7056. yyprintf((stderr, " ok %s @ %s\n", "Newline", G->buf+G->pos));
  7057. return 1;
  7058. l1631:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7059. yyprintf((stderr, " fail %s @ %s\n", "Newline", G->buf+G->pos));
  7060. return 0;
  7061. }
  7062. YY_RULE(int) yy_LocMarker(GREG *G)
  7063. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7064. yyprintf((stderr, "%s\n", "LocMarker"));
  7065. { int yypos1637= G->pos, yythunkpos1637= G->thunkpos; if (!yymatchDot(G)) goto l1636; G->pos= yypos1637; G->thunkpos= yythunkpos1637;
  7066. } yyDo(G, yy_1_LocMarker, G->begin, G->end);
  7067. yyprintf((stderr, " ok %s @ %s\n", "LocMarker", G->buf+G->pos));
  7068. return 1;
  7069. l1636:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7070. yyprintf((stderr, " fail %s @ %s\n", "LocMarker", G->buf+G->pos));
  7071. return 0;
  7072. }
  7073. YY_RULE(int) yy_Block(GREG *G)
  7074. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7075. yyprintf((stderr, "%s\n", "Block"));
  7076. l1639:;
  7077. { int yypos1640= G->pos, yythunkpos1640= G->thunkpos; if (!yy_BlankLine(G)) { goto l1640; } goto l1639;
  7078. l1640:; G->pos= yypos1640; G->thunkpos= yythunkpos1640;
  7079. }
  7080. { int yypos1641= G->pos, yythunkpos1641= G->thunkpos; if (!yy_BlockQuote(G)) { goto l1642; } goto l1641;
  7081. l1642:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Verbatim(G)) { goto l1643; } goto l1641;
  7082. l1643:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_FencedCodeBlock(G)) { goto l1644; } goto l1641;
  7083. l1644:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_DisplayFormula(G)) { goto l1645; } goto l1641;
  7084. l1645:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Note(G)) { goto l1646; } goto l1641;
  7085. l1646:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Reference(G)) { goto l1647; } goto l1641;
  7086. l1647:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_HorizontalRule(G)) { goto l1648; } goto l1641;
  7087. l1648:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Heading(G)) { goto l1649; } goto l1641;
  7088. l1649:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_OrderedList(G)) { goto l1650; } goto l1641;
  7089. l1650:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_BulletList(G)) { goto l1651; } goto l1641;
  7090. l1651:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Table(G)) { goto l1652; } goto l1641;
  7091. l1652:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_HtmlBlock(G)) { goto l1653; } goto l1641;
  7092. l1653:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_StyleBlock(G)) { goto l1654; } goto l1641;
  7093. l1654:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Para(G)) { goto l1655; } goto l1641;
  7094. l1655:; G->pos= yypos1641; G->thunkpos= yythunkpos1641; if (!yy_Plain(G)) { goto l1638; }
  7095. }
  7096. l1641:;
  7097. yyprintf((stderr, " ok %s @ %s\n", "Block", G->buf+G->pos));
  7098. return 1;
  7099. l1638:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7100. yyprintf((stderr, " fail %s @ %s\n", "Block", G->buf+G->pos));
  7101. return 0;
  7102. }
  7103. YY_RULE(int) yy_FrontMatter(GREG *G)
  7104. { int yypos0= G->pos, yythunkpos0= G->thunkpos; yyDo(G, yyPush, 1, 0);
  7105. yyprintf((stderr, "%s\n", "FrontMatter")); if (!yy_LocMarker(G)) { goto l1656; } yyDo(G, yySet, -1, 0);
  7106. { int yypos1657= G->pos, yythunkpos1657= G->thunkpos; yyText(G, G->begin, G->end); if (!( EXT(pmh_EXT_FRONTMATTER) )) goto l1657; yyText(G, G->begin, G->end); if (!(YY_BEGIN)) goto l1657; if (!yymatchString(G, "---")) goto l1657; if (!yy_Newline(G)) { goto l1657; }
  7107. l1659:;
  7108. { int yypos1660= G->pos, yythunkpos1660= G->thunkpos; if (!yy_FrontMatterBlock(G)) { goto l1660; } goto l1659;
  7109. l1660:; G->pos= yypos1660; G->thunkpos= yythunkpos1660;
  7110. } if (!yy_FrontMatterEndMark(G)) { goto l1657; } if (!yy_Newline(G)) { goto l1657; } yyText(G, G->begin, G->end); if (!(YY_END)) goto l1657; yyDo(G, yy_1_FrontMatter, G->begin, G->end); goto l1658;
  7111. l1657:; G->pos= yypos1657; G->thunkpos= yythunkpos1657;
  7112. }
  7113. l1658:;
  7114. yyprintf((stderr, " ok %s @ %s\n", "FrontMatter", G->buf+G->pos)); yyDo(G, yyPop, 1, 0);
  7115. return 1;
  7116. l1656:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7117. yyprintf((stderr, " fail %s @ %s\n", "FrontMatter", G->buf+G->pos));
  7118. return 0;
  7119. }
  7120. YY_RULE(int) yy_Doc(GREG *G)
  7121. { int yypos0= G->pos, yythunkpos0= G->thunkpos;
  7122. yyprintf((stderr, "%s\n", "Doc")); if (!yy_FrontMatter(G)) { goto l1661; }
  7123. l1662:;
  7124. { int yypos1663= G->pos, yythunkpos1663= G->thunkpos; if (!yy_Block(G)) { goto l1663; } goto l1662;
  7125. l1663:; G->pos= yypos1663; G->thunkpos= yythunkpos1663;
  7126. }
  7127. yyprintf((stderr, " ok %s @ %s\n", "Doc", G->buf+G->pos));
  7128. return 1;
  7129. l1661:; G->pos= yypos0; G->thunkpos= yythunkpos0;
  7130. yyprintf((stderr, " fail %s @ %s\n", "Doc", G->buf+G->pos));
  7131. return 0;
  7132. }
  7133. #ifndef YY_PART
  7134. typedef int (*yyrule)(GREG *G);
  7135. YY_PARSE(int) YY_NAME(parse_from)(GREG *G, yyrule yystart)
  7136. {
  7137. int yyok;
  7138. if (!G->buflen)
  7139. {
  7140. G->buflen= YY_BUFFER_START_SIZE;
  7141. G->buf= (char *)YY_ALLOC(G->buflen, G->data);
  7142. G->textlen= YY_BUFFER_START_SIZE;
  7143. G->text= (char *)YY_ALLOC(G->textlen, G->data);
  7144. G->thunkslen= YY_STACK_SIZE;
  7145. G->thunks= (yythunk *)YY_ALLOC(sizeof(yythunk) * G->thunkslen, G->data);
  7146. G->valslen= YY_STACK_SIZE;
  7147. G->vals= (YYSTYPE*)YY_ALLOC(sizeof(YYSTYPE) * G->valslen, G->data);
  7148. G->begin= G->end= G->pos= G->limit= G->thunkpos= 0;
  7149. }
  7150. G->pos = 0;
  7151. G->begin= G->end= G->pos;
  7152. G->thunkpos= 0;
  7153. G->val= G->vals;
  7154. yyok= yystart(G);
  7155. if (yyok) yyDone(G);
  7156. yyCommit(G);
  7157. return yyok;
  7158. (void)yyrefill(NULL);
  7159. (void)yymatchDot(NULL);
  7160. (void)yymatchChar(NULL, 0);
  7161. (void)yymatchString(NULL, NULL);
  7162. (void)yymatchClass(NULL, NULL);
  7163. (void)yyDo(NULL, NULL, 0, 0);
  7164. (void)yyText(NULL, 0, 0);
  7165. (void)yyDone(NULL);
  7166. (void)yyCommit(NULL);
  7167. (void)yyAccept(NULL, 0);
  7168. (void)yyPush(NULL, NULL, 0, NULL, NULL);
  7169. (void)yyPop(NULL, NULL, 0, NULL, NULL);
  7170. (void)yySet(NULL, NULL, 0, NULL, NULL);
  7171. }
  7172. YY_PARSE(int) YY_NAME(parse)(GREG *G)
  7173. {
  7174. return YY_NAME(parse_from)(G, yy_Doc);
  7175. }
  7176. YY_PARSE(GREG *) YY_NAME(parse_new)(YY_XTYPE data)
  7177. {
  7178. GREG *G = (GREG *)YY_CALLOC(1, sizeof(GREG), G->data);
  7179. G->data = data;
  7180. return G;
  7181. }
  7182. YY_PARSE(void) YY_NAME(parse_free)(GREG *G)
  7183. {
  7184. YY_FREE(G->buf);
  7185. YY_FREE(G->text);
  7186. YY_FREE(G->thunks);
  7187. YY_FREE(G->vals);
  7188. YY_FREE(G);
  7189. }
  7190. #endif
  7191. /* PEG Markdown Highlight
  7192. * Copyright 2011-2016 Ali Rantakari -- http://hasseg.org
  7193. * Licensed under the GPL2+ and MIT licenses (see LICENSE for more info).
  7194. *
  7195. * pmh_parser_foot.c
  7196. *
  7197. * Code to be appended to the end of the parser code generated from the
  7198. * PEG grammar.
  7199. */
  7200. static void _parse(parser_data *p_data, yyrule start_rule)
  7201. {
  7202. GREG *g = YY_NAME(parse_new)(p_data);
  7203. if (start_rule == NULL)
  7204. YY_NAME(parse)(g);
  7205. else
  7206. YY_NAME(parse_from)(g, start_rule);
  7207. YY_NAME(parse_free)(g);
  7208. pmh_PRINTF("\n\n");
  7209. }
  7210. static void parse_markdown(parser_data *p_data)
  7211. {
  7212. pmh_PRINTF("\nPARSING DOCUMENT: ");
  7213. _parse(p_data, NULL);
  7214. }
  7215. static void parse_references(parser_data *p_data)
  7216. {
  7217. pmh_PRINTF("\nPARSING REFERENCES: ");
  7218. p_data->parsing_only_references = true;
  7219. _parse(p_data, yy_References);
  7220. p_data->parsing_only_references = false;
  7221. p_data->references = p_data->head_elems[pmh_REFERENCE];
  7222. p_data->head_elems[pmh_REFERENCE] = NULL;
  7223. }