12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374 |
- (* Yacc parser template (TP Yacc V3.0), V1.2 6-17-91 AG *)
- (* global definitions: *)
- program h2pas;
- (*
- Copyright (c) 1998-2000 by Florian Klaempfl
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- ****************************************************************************)
- {$message TODO: warning Unit types is only needed due to issue 7910}
- uses
- SysUtils,types, classes,
- h2poptions,scan,converu,h2plexlib,h2pyacclib;
- type
- YYSTYPE = presobject;
- const
- SHORT_STR = 'shortint';
- USHORT_STR = 'byte';
- //C++ SHORT types usually map to the small types
- SMALL_STR = 'smallint';
- USMALL_STR = 'word';
- INT_STR = 'longint';
- UINT_STR = 'dword';
- CHAR_STR = 'char';
- UCHAR_STR = USHORT_STR; { should we use byte or char for 'unsigned char' ?? }
- INT64_STR = 'int64';
- QWORD_STR = 'qword';
- FLOAT_STR = 'single';
- WCHAR_STR = 'widechar';
- {ctypes strings}
- const
- cint8_STR = 'cint8';
- cuint8_STR = 'cuint8';
- cchar_STR = 'cchar';
- cschar_STR = 'cschar';
- cuchar_STR = 'cuchar';
- cint16_STR = 'cint16';
- cuint16_STR = 'cuint16';
- cshort_STR = 'cshort';
- csshort_STR = 'csshort';
- cushort_STR = 'cushort';
- cint32_STR = 'cint32';
- cuint32_STR = 'cuint32';
- cint_STR = 'cint';
- csint_STR = 'csint';
- cuint_STR = 'cuint';
- csigned_STR = 'csigned';
- cunsigned_STR = 'cunsigned';
- cint64_STR = 'cint64';
- cuint64_STR = 'cuint64';
- clonglong_STR = 'clonglong';
- cslonglong_STR = 'cslonglong';
- culonglong_STR = 'culonglong';
- cbool_STR = 'cbool';
- clong_STR = 'clong';
- cslong_STR = 'cslong';
- culong_STR = 'culong';
- cfloat_STR = 'cfloat';
- cdouble_STR = 'cdouble';
- clongdouble_STR = 'clongdouble';
- const
- MAX_CTYPESARRAY = 25;
- CTypesArray : array [0..MAX_CTYPESARRAY] of string =
- (cint8_STR, cuint8_STR,
- cchar_STR, cschar_STR, cuchar_STR,
- cint16_STR, cuint16_STR,
- cshort_STR, csshort_STR, cushort_STR,
- csigned_STR, cunsigned_STR,
- cint32_STR, cuint32_STR, cint_STR,
- csint_STR, cuint_STR,
- cint64_STR, cuint64_STR,
- clonglong_STR, cslonglong_STR, culonglong_STR,
- cbool_STR,
- clong_STR, cslong_STR, culong_STR);
- var
- hp,ph : presobject;
- implemfile : text; (* file for implementation headers extern procs *)
- IsExtern : boolean;
- NeedEllipsisOverload : boolean;
- must_write_packed_field : boolean;
- tempfile : text;
- No_pop : boolean;
- s,TN,PN : String;
- pointerprefix: boolean;
- freedynlibproc,
- loaddynlibproc : tstringlist;
- (* $ define yydebug
- compile with -dYYDEBUG to get debugging info *)
- const
- (* number of a?b:c construction in one define *)
- if_nb : longint = 0;
- is_packed : boolean = false;
- is_procvar : boolean = false;
- var space_array : array [0..255] of byte;
- space_index : byte;
- { Used when PPointers is used - pointer type definitions }
- PTypeList : TStringList;
- procedure shift(space_number : byte);
- var
- i : byte;
- begin
- space_array[space_index]:=space_number;
- inc(space_index);
- for i:=1 to space_number do
- aktspace:=aktspace+' ';
- end;
- procedure popshift;
- begin
- dec(space_index);
- if space_index<0 then
- internalerror(20);
- delete(aktspace,1,space_array[space_index]);
- end;
- function str(i : longint) : string;
- var
- s : string;
- begin
- system.str(i,s);
- str:=s;
- end;
- function hexstr(i : cardinal) : string;
- const
- HexTbl : array[0..15] of char='0123456789ABCDEF';
- var
- str : string;
- begin
- str:='';
- while i<>0 do
- begin
- str:=hextbl[i and $F]+str;
- i:=i shr 4;
- end;
- if str='' then str:='0';
- hexstr:='$'+str;
- end;
- function uppercase(s : string) : string;
- var
- i : byte;
- begin
- for i:=1 to length(s) do
- s[i]:=UpCase(s[i]);
- uppercase:=s;
- end;
- procedure write_type_specifier(var outfile:text; p : presobject);forward;
- procedure write_p_a_def(var outfile:text; p,simple_type : presobject);forward;
- procedure write_ifexpr(var outfile:text; p : presobject);forward;
- procedure write_funexpr(var outfile:text; p : presobject);forward;
- procedure yymsg(const msg : string);
- begin
- writeln('line ',line_no,': ',msg);
- end;
- { This converts pascal reserved words to
- the correct syntax.
- }
- function FixId(const s:string):string;
- const
- maxtokens = 14;
- reservedid: array[1..maxtokens] of string[14] =
- (
- 'CLASS',
- 'DISPOSE',
- 'FUNCTION',
- 'FALSE',
- 'LABEL',
- 'NEW',
- 'PROPERTY',
- 'PROCEDURE',
- 'RECORD',
- 'REPEAT',
- 'STRING',
- 'TYPE',
- 'TRUE',
- 'UNTIL'
- );
- var
- b : boolean;
- up : string;
- i: integer;
- begin
- if s='' then
- begin
- FixId:='';
- exit;
- end;
- b:=false;
- up:=Uppercase(s);
- for i:=1 to maxtokens do
- begin
- if up=reservedid[i] then
- begin
- b:=true;
- break;
- end;
- end;
- if b then
- FixId:='_'+s
- else
- FixId:=s;
- end;
- function TypeName(const s:string):string;
- var
- i : longint;
- begin
- i:=1;
- if RemoveUnderScore and (length(s)>1) and (s[1]='_') then
- i:=2;
- if PrependTypes then
- TypeName:='T'+Copy(s,i,255)
- else
- TypeName:=Copy(s,i,255);
- end;
- function IsACType(const s : String) : Boolean;
- var i : Integer;
- begin
- IsACType := True;
- for i := 0 to MAX_CTYPESARRAY do
- begin
- if s = CTypesArray[i] then
- begin
- Exit;
- end;
- end;
- IsACType := False;
- end;
- function PointerName(const s:string):string;
- var
- i : longint;
- begin
- if UseCTypesUnit then
- begin
- if IsACType(s) then
- begin
- PointerName := 'p'+s;
- exit;
- end;
- end;
- i:=1;
- if RemoveUnderScore and (length(s)>1) and (s[1]='_') then
- i:=2;
- if UsePPointers then
- begin
- PointerName:='P'+Copy(s,i,255);
- PTypeList.Add(PointerName);
- end
- else
- PointerName:=Copy(s,i,255);
- if PointerPrefix then
- PTypeList.Add('P'+s);
- end;
- procedure write_packed_fields_info(var outfile:text; p : presobject; ph : string);
- var
- hp1,hp2,hp3 : presobject;
- is_sized : boolean;
- line : string;
- flag_index : longint;
- name : pchar;
- ps : byte;
- begin
- { write out the tempfile created }
- close(tempfile);
- reset(tempfile);
- is_sized:=false;
- flag_index:=0;
- writeln(outfile);
- writeln(outfile,aktspace,'const');
- shift(2);
- while not eof(tempfile) do
- begin
- readln(tempfile,line);
- ps:=pos('&',line);
- if ps>0 then
- line:=copy(line,1,ps-1)+ph+'_'+copy(line,ps+1,255);
- writeln(outfile,aktspace,line);
- end;
- writeln(outfile);
- close(tempfile);
- rewrite(tempfile);
- popshift;
- (* walk through all members *)
- hp1 := p^.p1;
- while assigned(hp1) do
- begin
- (* hp2 is t_memberdec *)
- hp2:=hp1^.p1;
- (* hp3 is t_declist *)
- hp3:=hp2^.p2;
- while assigned(hp3) do
- begin
- if assigned(hp3^.p1^.p3) and
- (hp3^.p1^.p3^.typ = t_size_specifier) then
- begin
- is_sized:=true;
- name:=hp3^.p1^.p2^.p;
- { get function in interface }
- write(outfile,aktspace,'function ',name);
- write(outfile,'(var a : ',ph,') : ');
- shift(2);
- write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1);
- writeln(outfile,';');
- popshift;
- { get function in implementation }
- write(implemfile,aktspace,'function ',name);
- write(implemfile,'(var a : ',ph,') : ');
- if not compactmode then
- shift(2);
- write_p_a_def(implemfile,hp3^.p1^.p1,hp2^.p1);
- writeln(implemfile,';');
- writeln(implemfile,aktspace,'begin');
- shift(2);
- write(implemfile,aktspace,name,':=(a.flag',flag_index);
- writeln(implemfile,' and bm_',ph,'_',name,') shr bp_',ph,'_',name,';');
- popshift;
- writeln(implemfile,aktspace,'end;');
- if not compactmode then
- popshift;
- writeln(implemfile,'');
- { set function in interface }
- write(outfile,aktspace,'procedure set_',name);
- write(outfile,'(var a : ',ph,'; __',name,' : ');
- shift(2);
- write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1);
- writeln(outfile,');');
- popshift;
- { set function in implementation }
- write(implemfile,aktspace,'procedure set_',name);
- write(implemfile,'(var a : ',ph,'; __',name,' : ');
- if not compactmode then
- shift(2);
- write_p_a_def(implemfile,hp3^.p1^.p1,hp2^.p1);
- writeln(implemfile,');');
- writeln(implemfile,aktspace,'begin');
- shift(2);
- write(implemfile,aktspace,'a.flag',flag_index,':=');
- write(implemfile,'a.flag',flag_index,' or ');
- writeln(implemfile,'((__',name,' shl bp_',ph,'_',name,') and bm_',ph,'_',name,');');
- popshift;
- writeln(implemfile,aktspace,'end;');
- if not compactmode then
- popshift;
- writeln(implemfile,'');
- end
- else if is_sized then
- begin
- is_sized:=false;
- inc(flag_index);
- end;
- hp3:=hp3^.next;
- end;
- hp1:=hp1^.next;
- end;
- must_write_packed_field:=false;
- block_type:=bt_no;
- end;
- procedure write_expr(var outfile:text; p : presobject);
- begin
- if assigned(p) then
- begin
- case p^.typ of
- t_id,
- t_ifexpr :
- write(outfile,FixId(p^.p));
- t_funexprlist :
- write_funexpr(outfile,p);
- t_exprlist :
- begin
- if assigned(p^.p1) then
- write_expr(outfile,p^.p1);
- if assigned(p^.next) then
- begin
- write(', ');
- write_expr(outfile,p^.next);
- end;
- end;
- t_preop : begin
- write(outfile,p^.p,'(');
- write_expr(outfile,p^.p1);
- write(outfile,')');
- flush(outfile);
- end;
- t_typespec : begin
- write_type_specifier(outfile,p^.p1);
- write(outfile,'(');
- write_expr(outfile,p^.p2);
- write(outfile,')');
- flush(outfile);
- end;
- t_bop : begin
- if p^.p1^.typ<>t_id then
- write(outfile,'(');
- write_expr(outfile,p^.p1);
- if p^.p1^.typ<>t_id then
- write(outfile,')');
- write(outfile,p^.p);
- if p^.p2^.typ<>t_id then
- write(outfile,'(');
- write_expr(outfile,p^.p2);
- if p^.p2^.typ<>t_id then
- write(outfile,')');
- flush(outfile);
- end;
- t_arrayop :
- begin
- write_expr(outfile,p^.p1);
- write(outfile,p^.p,'[');
- write_expr(outfile,p^.p2);
- write(outfile,']');
- flush(outfile);
- end;
- t_callop :
- begin
- write_expr(outfile,p^.p1);
- write(outfile,p^.p,'(');
- write_expr(outfile,p^.p2);
- write(outfile,')');
- flush(outfile);
- end;
- else
- begin
- writeln(ord(p^.typ));
- internalerror(2);
- end;
- end;
- end;
- end;
- procedure write_ifexpr(var outfile:text; p : presobject);
- begin
- flush(outfile);
- write(outfile,'if ');
- write_expr(outfile,p^.p1);
- writeln(outfile,' then');
- write(outfile,aktspace,' ');
- write(outfile,p^.p);
- write(outfile,':=');
- write_expr(outfile,p^.p2);
- writeln(outfile);
- writeln(outfile,aktspace,'else');
- write(outfile,aktspace,' ');
- write(outfile,p^.p);
- write(outfile,':=');
- write_expr(outfile,p^.p3);
- writeln(outfile,';');
- write(outfile,aktspace);
- flush(outfile);
- end;
- procedure write_all_ifexpr(var outfile:text; p : presobject);
- begin
- if assigned(p) then
- begin
- case p^.typ of
- t_id :;
- t_preop :
- write_all_ifexpr(outfile,p^.p1);
- t_callop,
- t_arrayop,
- t_bop :
- begin
- write_all_ifexpr(outfile,p^.p1);
- write_all_ifexpr(outfile,p^.p2);
- end;
- t_ifexpr :
- begin
- write_all_ifexpr(outfile,p^.p1);
- write_all_ifexpr(outfile,p^.p2);
- write_all_ifexpr(outfile,p^.p3);
- write_ifexpr(outfile,p);
- end;
- t_typespec :
- write_all_ifexpr(outfile,p^.p2);
- t_funexprlist,
- t_exprlist :
- begin
- if assigned(p^.p1) then
- write_all_ifexpr(outfile,p^.p1);
- if assigned(p^.next) then
- write_all_ifexpr(outfile,p^.next);
- end
- else
- internalerror(6);
- end;
- end;
- end;
- procedure write_funexpr(var outfile:text; p : presobject);
- var
- i : longint;
- begin
- if assigned(p) then
- begin
- case p^.typ of
- t_ifexpr :
- write(outfile,p^.p);
- t_exprlist :
- begin
- write_expr(outfile,p^.p1);
- if assigned(p^.next) then
- begin
- write(outfile,',');
- write_funexpr(outfile,p^.next);
- end
- end;
- t_funcname :
- begin
- if if_nb>0 then
- begin
- writeln(outfile,aktspace,'var');
- write(outfile,aktspace,' ');
- for i:=1 to if_nb do
- begin
- write(outfile,'if_local',i);
- if i<if_nb then
- write(outfile,', ')
- else
- writeln(outfile,' : longint;');
- end;
- writeln(outfile,aktspace,'(* result types are not known *)');
- if_nb:=0;
- end;
- writeln(outfile,aktspace,'begin');
- shift(2);
- write(outfile,aktspace);
- write_all_ifexpr(outfile,p^.p2);
- write_expr(outfile,p^.p1);
- write(outfile,':=');
- write_funexpr(outfile,p^.p2);
- writeln(outfile,';');
- popshift;
- writeln(outfile,aktspace,'end;');
- if not compactmode then
- popshift;
- flush(outfile);
- end;
- t_funexprlist :
- begin
- if assigned(p^.p3) then
- begin
- write_type_specifier(outfile,p^.p3);
- write(outfile,'(');
- end;
- if assigned(p^.p1) then
- write_funexpr(outfile,p^.p1);
- if assigned(p^.p2) then
- begin
- write(outfile,'(');
- write_funexpr(outfile,p^.p2);
- write(outfile,')');
- end;
- if assigned(p^.p3) then
- write(outfile,')');
- end
- else internalerror(5);
- end;
- end;
- end;
- function ellipsisarg : presobject;
- begin
- ellipsisarg:=new(presobject,init_two(t_arg,nil,nil));
- end;
- const
- (* if in args *dname is replaced by pdname *)
- in_args : boolean = false;
- typedef_level : longint = 0;
- (* writes an argument list, where p is t_arglist *)
- procedure write_args(var outfile:text; p : presobject);
- var
- len,para : longint;
- old_in_args : boolean;
- varpara : boolean;
- lastp : presobject;
- hs : string;
- begin
- NeedEllipsisOverload:=false;
- para:=1;
- len:=0;
- lastp:=nil;
- old_in_args:=in_args;
- in_args:=true;
- write(outfile,'(');
- shift(2);
- (* walk through all arguments *)
- (* p must be of type t_arglist *)
- while assigned(p) do
- begin
- if p^.typ<>t_arglist then
- internalerror(10);
- (* is ellipsis ? *)
- if not assigned(p^.p1^.p1) and
- not assigned(p^.p1^.next) then
- begin
- write(outfile,'args:array of const');
- (* if variable number of args we must allways pop *)
- no_pop:=false;
- (* Needs 2 declarations, also one without args, becuase
- in C you can omit the second parameter. Default parameter
- doesn't help as that isn't possible with array of const *)
- NeedEllipsisOverload:=true;
- (* Remove this para *)
- if assigned(lastp) then
- lastp^.next:=nil;
- dispose(p,done);
- (* leave the loop as p isnot valid anymore *)
- break;
- end
- (* we need to correct this in the pp file after *)
- else
- begin
- (* generate a call by reference parameter ? *)
- // varpara:=usevarparas and
- // assigned(p^.p1^.p2^.p1) and
- // (p^.p1^.p2^.p1^.typ in [t_addrdef,t_pointerdef]) and
- // assigned(p^.p1^.p2^.p1^.p1) and
- // (p^.p1^.p2^.p1^.p1^.typ<>t_procdef);
- varpara:=usevarparas and
- assigned(p^.p1^.p1) and
- (p^.p1^.p1^.typ in [t_addrdef,t_pointerdef]) and
- assigned(p^.p1^.p1^.p1) and
- (p^.p1^.p1^.p1^.typ<>t_procdef);
- (* do not do it for char pointer !! *)
- (* para : pchar; and var para : char; are *)
- (* completely different in pascal *)
- (* here we exclude all typename containing char *)
- (* is this a good method ?? *)
- if varpara and
- (p^.p1^.p1^.typ=t_pointerdef) and
- (p^.p1^.p1^.p1^.typ=t_id) and
- (pos('CHAR',uppercase(p^.p1^.p1^.p1^.str))<>0) then
- varpara:=false;
- if varpara then
- begin
- write(outfile,'var ');
- inc(len,4);
- end;
- (* write new parameter name *)
- if assigned(p^.p1^.p2^.p2) then
- begin
- hs:=FixId(p^.p1^.p2^.p2^.p);
- write(outfile,hs);
- inc(len,length(hs));
- end
- else
- begin
- If removeUnderscore then
- begin
- Write (outfile,'para',para);
- inc(Len,5);
- end
- else
- begin
- write(outfile,'_para',para);
- inc(Len,6);
- end;
- end;
- write(outfile,':');
- if varpara then
- begin
- write_p_a_def(outfile,p^.p1^.p2^.p1,p^.p1^.p1^.p1);
- end
- else
- write_p_a_def(outfile,p^.p1^.p2^.p1,p^.p1^.p1);
- end;
- lastp:=p;
- p:=p^.next;
- if assigned(p) then
- begin
- write(outfile,'; ');
- { if len>40 then : too complicated to compute }
- if (para mod 5) = 0 then
- begin
- writeln(outfile);
- write(outfile,aktspace);
- end;
- end;
- inc(para);
- end;
- write(outfile,')');
- flush(outfile);
- in_args:=old_in_args;
- popshift;
- end;
- procedure write_p_a_def(var outfile:text; p,simple_type : presobject);
- var
- i : longint;
- error : integer;
- pointerwritten,
- constant : boolean;
- begin
- if not(assigned(p)) then
- begin
- write_type_specifier(outfile,simple_type);
- exit;
- end;
- case p^.typ of
- t_pointerdef : begin
- (* procedure variable ? *)
- if assigned(p^.p1) and (p^.p1^.typ=t_procdef) then
- begin
- is_procvar:=true;
- (* distinguish between procedure and function *)
- if (simple_type^.typ=t_void) and (p^.p1^.p1=nil) then
- begin
- write(outfile,'procedure ');
- shift(10);
- (* write arguments *)
- if assigned(p^.p1^.p2) then
- write_args(outfile,p^.p1^.p2);
- flush(outfile);
- popshift;
- end
- else
- begin
- write(outfile,'function ');
- shift(9);
- (* write arguments *)
- if assigned(p^.p1^.p2) then
- write_args(outfile,p^.p1^.p2);
- write(outfile,':');
- flush(outfile);
- write_p_a_def(outfile,p^.p1^.p1,simple_type);
- popshift;
- end
- end
- else
- begin
- (* generate "pointer" ? *)
- if (simple_type^.typ=t_void) and (p^.p1=nil) then
- begin
- write(outfile,'pointer');
- flush(outfile);
- end
- else
- begin
- pointerwritten:=false;
- if (p^.p1=nil) and UsePPointers then
- begin
- if (simple_type^.typ=t_id) then
- begin
- write(outfile,PointerName(simple_type^.p));
- pointerwritten:=true;
- end
- { structure }
- else if (simple_type^.typ in [t_uniondef,t_structdef]) and
- (simple_type^.p1=nil) and (simple_type^.p2^.typ=t_id) then
- begin
- write(outfile,PointerName(simple_type^.p2^.p));
- pointerwritten:=true;
- end;
- end;
- if not pointerwritten then
- begin
- if in_args then
- begin
- write(outfile,'P');
- pointerprefix:=true;
- end
- else
- write(outfile,'^');
- write_p_a_def(outfile,p^.p1,simple_type);
- pointerprefix:=false;
- end;
- end;
- end;
- end;
- t_arraydef : begin
- constant:=false;
- if assigned(p^.p2) then
- begin
- if p^.p2^.typ=t_id then
- begin
- val(p^.p2^.str,i,error);
- if error=0 then
- begin
- dec(i);
- constant:=true;
- end;
- end;
- if not constant then
- begin
- write(outfile,'array[0..(');
- write_expr(outfile,p^.p2);
- write(outfile,')-1] of ');
- end
- else
- begin
- write(outfile,'array[0..',i,'] of ');
- end;
- end
- else
- begin
- (* open array *)
- write(outfile,'array of ');
- end;
- flush(outfile);
- write_p_a_def(outfile,p^.p1,simple_type);
- end;
- else internalerror(1);
- end;
- end;
- procedure write_type_specifier(var outfile:text; p : presobject);
- var
- hp1,hp2,hp3,lastexpr : presobject;
- i,l,w : longint;
- error : integer;
- current_power,
- mask : cardinal;
- flag_index : longint;
- current_level : byte;
- pointerwritten,
- is_sized : boolean;
- begin
- case p^.typ of
- t_id :
- begin
- if pointerprefix then
- if UseCtypesUnit then
- begin
- if not IsACType(p^.p) then
- begin
- PTypeList.Add('P'+p^.str);
- end;
- end
- else
- PTypeList.Add('P'+p^.str);
- if p^.intname then
- write(outfile,p^.p)
- else
- write(outfile,TypeName(p^.p));
- end;
- { what can we do with void defs ? }
- t_void :
- write(outfile,'pointer');
- t_pointerdef :
- begin
- pointerwritten:=false;
- if (p^.p1^.typ=t_void) then
- begin
- write(outfile,'pointer');
- pointerwritten:=true;
- end
- else
- if UsePPointers then
- begin
- if (p^.p1^.typ=t_id) then
- begin
- write(outfile,PointerName(p^.p1^.p));
- pointerwritten:=true;
- end
- { structure }
- else if (p^.p1^.typ in [t_uniondef,t_structdef]) and
- (p^.p1^.p1=nil) and (p^.p1^.p2^.typ=t_id) then
- begin
- write(outfile,PointerName(p^.p1^.p2^.p));
- pointerwritten:=true;
- end;
- end;
- if not pointerwritten then
- begin
- if in_args then
- begin
- if UseCTypesUnit and (IsACType(p^.p1^.p)=False) then
- write(outfile,'P')
- else
- write(outfile,'p');
- pointerprefix:=true;
- end
- else
- begin
- if UseCTypesUnit and (IsACType(p^.p1^.p)=False) then
- write(outfile,'^')
- else
- write(outfile,'p');
- end;
- write_type_specifier(outfile,p^.p1);
- pointerprefix:=false;
- end;
- end;
- t_enumdef :
- begin
- if (typedef_level>1) and (p^.p1=nil) and
- (p^.p2^.typ=t_id) then
- begin
- if pointerprefix then
- if UseCTypesUnit and (IsACType( p^.p2^.p )=False) then
- PTypeList.Add('P'+p^.p2^.str);
- write(outfile,p^.p2^.p);
- end
- else
- if not EnumToConst then
- begin
- write(outfile,'(');
- hp1:=p^.p1;
- w:=length(aktspace);
- while assigned(hp1) do
- begin
- write(outfile,hp1^.p1^.p);
- if assigned(hp1^.p2) then
- begin
- write(outfile,' := ');
- write_expr(outfile,hp1^.p2);
- w:=w+6;(* strlen(hp1^.p); *)
- end;
- w:=w+length(hp1^.p1^.str);
- hp1:=hp1^.next;
- if assigned(hp1) then
- write(outfile,',');
- if w>40 then
- begin
- writeln(outfile);
- write(outfile,aktspace);
- w:=length(aktspace);
- end;
- flush(outfile);
- end;
- write(outfile,')');
- flush(outfile);
- end
- else
- begin
- Writeln (outfile,' Longint;');
- hp1:=p^.p1;
- l:=0;
- lastexpr:=nil;
- Writeln (outfile,copy(aktspace,1,length(aktspace)-2),'Const');
- while assigned(hp1) do
- begin
- write (outfile,aktspace,hp1^.p1^.p,' = ');
- if assigned(hp1^.p2) then
- begin
- write_expr(outfile,hp1^.p2);
- writeln(outfile,';');
- lastexpr:=hp1^.p2;
- if lastexpr^.typ=t_id then
- begin
- val(lastexpr^.str,l,error);
- if error=0 then
- begin
- inc(l);
- lastexpr:=nil;
- end
- else
- l:=1;
- end
- else
- l:=1;
- end
- else
- begin
- if assigned(lastexpr) then
- begin
- write(outfile,'(');
- write_expr(outfile,lastexpr);
- writeln(outfile,')+',l,';');
- end
- else
- writeln (outfile,l,';');
- inc(l);
- end;
- hp1:=hp1^.next;
- flush(outfile);
- end;
- block_type:=bt_const;
- end;
- end;
- t_structdef :
- begin
- inc(typedef_level);
- flag_index:=-1;
- is_sized:=false;
- current_level:=0;
- if ((in_args) or (typedef_level>1)) and
- (p^.p1=nil) and (p^.p2^.typ=t_id) then
- begin
- if pointerprefix then
- if UseCTypesUnit and (IsACType(p^.p2^.str)=false) then
- PTypeList.Add('P'+p^.p2^.str);
- write(outfile,TypeName(p^.p2^.p));
- end
- else
- begin
- if packrecords then
- writeln(outfile,'packed record')
- else
- writeln(outfile,'record');
- shift(2);
- hp1:=p^.p1;
- (* walk through all members *)
- while assigned(hp1) do
- begin
- (* hp2 is t_memberdec *)
- hp2:=hp1^.p1;
- (* hp3 is t_declist *)
- hp3:=hp2^.p2;
- while assigned(hp3) do
- begin
- if not assigned(hp3^.p1^.p3) or
- (hp3^.p1^.p3^.typ <> t_size_specifier) then
- begin
- if is_sized then
- begin
- if current_level <= 16 then
- writeln(outfile,'word;')
- else if current_level <= 32 then
- writeln(outfile,'longint;')
- else
- internalerror(11);
- is_sized:=false;
- end;
- write(outfile,aktspace,FixId(hp3^.p1^.p2^.p));
- write(outfile,' : ');
- shift(2);
- write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1);
- popshift;
- end;
- { size specifier or default value ? }
- if assigned(hp3^.p1^.p3) then
- begin
- { we could use mask to implement this }
- { because we need to respect the positions }
- if hp3^.p1^.p3^.typ = t_size_specifier then
- begin
- if not is_sized then
- begin
- current_power:=1;
- current_level:=0;
- inc(flag_index);
- write(outfile,aktspace,'flag',flag_index,' : ');
- end;
- must_write_packed_field:=true;
- is_sized:=true;
- { can it be something else than a constant ? }
- { it can be a macro !! }
- if hp3^.p1^.p3^.p1^.typ=t_id then
- begin
- val(hp3^.p1^.p3^.p1^.str,l,error);
- if error=0 then
- begin
- mask:=0;
- for i:=1 to l do
- begin
- inc(mask,current_power);
- current_power:=current_power*2;
- end;
- write(tempfile,'bm_&',hp3^.p1^.p2^.p);
- writeln(tempfile,' = ',hexstr(mask),';');
- write(tempfile,'bp_&',hp3^.p1^.p2^.p);
- writeln(tempfile,' = ',current_level,';');
- current_level:=current_level + l;
- { go to next flag if 31 }
- if current_level = 32 then
- begin
- write(outfile,'longint');
- is_sized:=false;
- end;
- end;
- end;
- end
- else if hp3^.p1^.p3^.typ = t_default_value then
- begin
- write(outfile,'{=');
- write_expr(outfile,hp3^.p1^.p3^.p1);
- write(outfile,' ignored}');
- end;
- end;
- if not is_sized then
- begin
- if is_procvar then
- begin
- if not no_pop then
- begin
- write(outfile,';cdecl');
- no_pop:=true;
- end;
- is_procvar:=false;
- end;
- writeln(outfile,';');
- end;
- hp3:=hp3^.next;
- end;
- hp1:=hp1^.next;
- end;
- if is_sized then
- begin
- if current_level <= 16 then
- writeln(outfile,'word;')
- else if current_level <= 32 then
- writeln(outfile,'longint;')
- else
- internalerror(11);
- is_sized:=false;
- end;
- popshift;
- write(outfile,aktspace,'end');
- flush(outfile);
- end;
- dec(typedef_level);
- end;
- t_uniondef :
- begin
- inc(typedef_level);
- if (typedef_level>1) and (p^.p1=nil) and
- (p^.p2^.typ=t_id) then
- begin
- write(outfile,p^.p2^.p);
- end
- else
- begin
- inc(typedef_level);
- if packrecords then
- writeln(outfile,'packed record')
- else
- writeln(outfile,'record');
- shift(2);
- writeln(outfile,aktspace,'case longint of');
- shift(2);
- l:=0;
- hp1:=p^.p1;
- (* walk through all members *)
- while assigned(hp1) do
- begin
- (* hp2 is t_memberdec *)
- hp2:=hp1^.p1;
- (* hp3 is t_declist *)
- hp3:=hp2^.p2;
- while assigned(hp3) do
- begin
- write(outfile,aktspace,l,' : ( ');
- write(outfile,FixId(hp3^.p1^.p2^.p),' : ');
- shift(2);
- write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1);
- popshift;
- writeln(outfile,' );');
- hp3:=hp3^.next;
- inc(l);
- end;
- hp1:=hp1^.next;
- end;
- popshift;
- write(outfile,aktspace,'end');
- popshift;
- flush(outfile);
- dec(typedef_level);
- end;
- dec(typedef_level);
- end;
- else
- internalerror(3);
- end;
- end;
- procedure write_def_params(var outfile:text; p : presobject);
- var
- hp1 : presobject;
- begin
- case p^.typ of
- t_enumdef : begin
- hp1:=p^.p1;
- while assigned(hp1) do
- begin
- write(outfile,FixId(hp1^.p1^.p));
- hp1:=hp1^.next;
- if assigned(hp1) then
- write(outfile,',')
- else
- write(outfile);
- flush(outfile);
- end;
- flush(outfile);
- end;
- else internalerror(4);
- end;
- end;
- procedure write_statement_block(var outfile:text; p : presobject);
- begin
- writeln(outfile,aktspace,'begin');
- while assigned(p) do
- begin
- shift(2);
- if assigned(p^.p1) then
- begin
- case p^.p1^.typ of
- t_whilenode:
- begin
- write(outfile,aktspace,'while ');
- write_expr(outfile,p^.p1^.p1);
- writeln(outfile,' do');
- shift(2);
- write_statement_block(outfile,p^.p1^.p2);
- popshift;
- end;
- else
- begin
- write(outfile,aktspace);
- write_expr(outfile,p^.p1);
- writeln(outfile,';');
- end;
- end;
- end;
- p:=p^.next;
- popshift;
- end;
- writeln(outfile,aktspace,'end;');
- end;
- const _WHILE = 257;
- const _FOR = 258;
- const _DO = 259;
- const _GOTO = 260;
- const _CONTINUE = 261;
- const _BREAK = 262;
- const TYPEDEF = 263;
- const DEFINE = 264;
- const COLON = 265;
- const SEMICOLON = 266;
- const COMMA = 267;
- const LKLAMMER = 268;
- const RKLAMMER = 269;
- const LECKKLAMMER = 270;
- const RECKKLAMMER = 271;
- const LGKLAMMER = 272;
- const RGKLAMMER = 273;
- const STRUCT = 274;
- const UNION = 275;
- const ENUM = 276;
- const ID = 277;
- const NUMBER = 278;
- const CSTRING = 279;
- const SHORT = 280;
- const UNSIGNED = 281;
- const LONG = 282;
- const INT = 283;
- const FLOAT = 284;
- const _CHAR = 285;
- const VOID = 286;
- const _CONST = 287;
- const _FAR = 288;
- const _HUGE = 289;
- const _NEAR = 290;
- const NEW_LINE = 291;
- const SPACE_DEFINE = 292;
- const EXTERN = 293;
- const STDCALL = 294;
- const CDECL = 295;
- const CALLBACK = 296;
- const PASCAL = 297;
- const WINAPI = 298;
- const APIENTRY = 299;
- const WINGDIAPI = 300;
- const SYS_TRAP = 301;
- const _PACKED = 302;
- const ELLIPSIS = 303;
- const _ASSIGN = 304;
- const R_AND = 305;
- const EQUAL = 306;
- const UNEQUAL = 307;
- const GT = 308;
- const LT = 309;
- const GTE = 310;
- const LTE = 311;
- const QUESTIONMARK = 312;
- const _OR = 313;
- const _AND = 314;
- const _PLUS = 315;
- const MINUS = 316;
- const _SHR = 317;
- const _SHL = 318;
- const STAR = 319;
- const _SLASH = 320;
- const _NOT = 321;
- const PSTAR = 322;
- const P_AND = 323;
- const POINT = 324;
- const DEREF = 325;
- const STICK = 326;
- const SIGNED = 327;
- const INT8 = 328;
- const INT16 = 329;
- const INT32 = 330;
- const INT64 = 331;
- var yylval : YYSType;
- function yylex : Integer; forward;
- function yyparse : Integer;
- var yystate, yysp, yyn : Integer;
- yys : array [1..yymaxdepth] of Integer;
- yyv : array [1..yymaxdepth] of YYSType;
- yyval : YYSType;
- procedure yyaction ( yyruleno : Integer );
- (* local definitions: *)
- begin
- (* actions: *)
- case yyruleno of
- 1 : begin
- yyval := yyv[yysp-0];
- end;
- 2 : begin
-
- yyval:=nil;
-
- end;
- 3 : begin
-
- yyval:=nil;
-
- end;
- 4 : begin
-
- writeln(outfile,'(* error ');
- writeln(outfile,yyline);
-
- end;
- 5 : begin
- if yydebug then writeln('declaration reduced at line ',line_no);
- if yydebug then writeln(outfile,'(* declaration reduced *)');
-
- end;
- 6 : begin
- if yydebug then writeln('define declaration reduced at line ',line_no);
- if yydebug then writeln(outfile,'(* define declaration reduced *)');
-
- end;
- 7 : begin
- if yydebug then writeln('declaration reduced at line ',line_no);
-
- end;
- 8 : begin
- if yydebug then writeln('define declaration reduced at line ',line_no);
-
- end;
- 9 : begin
- yyval:=new(presobject,init_id('extern'));
- end;
- 10 : begin
- yyval:=new(presobject,init_id('intern'));
- end;
- 11 : begin
- yyval:=new(presobject,init_id('no_pop'));
- end;
- 12 : begin
- yyval:=new(presobject,init_id('cdecl'));
- end;
- 13 : begin
- yyval:=new(presobject,init_id('no_pop'));
- end;
- 14 : begin
- yyval:=new(presobject,init_id('no_pop'));
- end;
- 15 : begin
- yyval:=new(presobject,init_id('no_pop'));
- end;
- 16 : begin
- yyval:=new(presobject,init_id('no_pop'));
- end;
- 17 : begin
- yyval:=new(presobject,init_id('no_pop'));
- end;
- 18 : begin
- yyval:=nil
- end;
- 19 : begin
- yyval:=yyv[yysp-1];
- end;
- 20 : begin
- yyval:=nil;
- end;
- 21 : begin
- yyval:=yyv[yysp-1];
- end;
- 22 : begin
- yyval:=new(presobject,init_two(t_whilenode,yyv[yysp-2],yyv[yysp-0]));
- end;
- 23 : begin
-
- yyval:=new(presobject,init_one(t_statement_list,yyv[yysp-1]));
- yyval^.next:=yyv[yysp-0];
-
- end;
- 24 : begin
-
- yyval:=new(presobject,init_one(t_statement_list,yyv[yysp-0]));
-
- end;
- 25 : begin
-
- yyval:=new(presobject,init_one(t_statement_list,nil));
-
- end;
- 26 : begin
-
- yyval:=new(presobject,init_one(t_statement_list,nil));
-
- end;
- 27 : begin
- yyval:=yyv[yysp-1];
- end;
- 28 : begin
-
- IsExtern:=false;
- (* by default we must pop the args pushed on stack *)
- no_pop:=false;
- if (assigned(yyv[yysp-1])and assigned(yyv[yysp-1]^.p1)and assigned(yyv[yysp-1]^.p1^.p1))
- and (yyv[yysp-1]^.p1^.p1^.typ=t_procdef) then
- begin
- repeat
- If UseLib then
- IsExtern:=true
- else
- IsExtern:=assigned(yyv[yysp-4])and(yyv[yysp-4]^.str='extern');
- no_pop:=assigned(yyv[yysp-2]) and (yyv[yysp-2]^.str='no_pop');
-
- if (block_type<>bt_func) and not(createdynlib) then
- begin
- writeln(outfile);
- block_type:=bt_func;
- end;
-
- (* dyn. procedures must be put into a var block *)
- if createdynlib then
- begin
- if (block_type<>bt_var) then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'var');
- block_type:=bt_var;
- end;
- shift(2);
- end;
- if not CompactMode then
- begin
- write(outfile,aktspace);
- if not IsExtern then
- write(implemfile,aktspace);
- end;
- (* distinguish between procedure and function *)
- if assigned(yyv[yysp-3]) then
- if (yyv[yysp-3]^.typ=t_void) and (yyv[yysp-1]^.p1^.p1^.p1=nil) then
- begin
- if createdynlib then
- begin
- write(outfile,yyv[yysp-1]^.p1^.p2^.p,' : procedure');
- end
- else
- begin
- shift(10);
- write(outfile,'procedure ',yyv[yysp-1]^.p1^.p2^.p);
- end;
- if assigned(yyv[yysp-1]^.p1^.p1^.p2) then
- write_args(outfile,yyv[yysp-1]^.p1^.p1^.p2);
- if createdynlib then
- begin
- loaddynlibproc.add('pointer('+yyv[yysp-1]^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+yyv[yysp-1]^.p1^.p2^.p+''');');
- freedynlibproc.add(yyv[yysp-1]^.p1^.p2^.p+':=nil;');
- end
- else if not IsExtern then
- begin
- write(implemfile,'procedure ',yyv[yysp-1]^.p1^.p2^.p);
- if assigned(yyv[yysp-1]^.p1^.p1^.p2) then
- write_args(implemfile,yyv[yysp-1]^.p1^.p1^.p2);
- end;
- end
- else
- begin
- if createdynlib then
- begin
- write(outfile,yyv[yysp-1]^.p1^.p2^.p,' : function');
- end
- else
- begin
- shift(9);
- write(outfile,'function ',yyv[yysp-1]^.p1^.p2^.p);
- end;
-
- if assigned(yyv[yysp-1]^.p1^.p1^.p2) then
- write_args(outfile,yyv[yysp-1]^.p1^.p1^.p2);
- write(outfile,':');
- write_p_a_def(outfile,yyv[yysp-1]^.p1^.p1^.p1,yyv[yysp-3]);
- if createdynlib then
- begin
- loaddynlibproc.add('pointer('+yyv[yysp-1]^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+yyv[yysp-1]^.p1^.p2^.p+''');');
- freedynlibproc.add(yyv[yysp-1]^.p1^.p2^.p+':=nil;');
- end
- else if not IsExtern then
- begin
- write(implemfile,'function ',yyv[yysp-1]^.p1^.p2^.p);
- if assigned(yyv[yysp-1]^.p1^.p1^.p2) then
- write_args(implemfile,yyv[yysp-1]^.p1^.p1^.p2);
- write(implemfile,':');
- write_p_a_def(implemfile,yyv[yysp-1]^.p1^.p1^.p1,yyv[yysp-3]);
- end;
- end;
- (* No CDECL in interface for Uselib *)
- if IsExtern and (not no_pop) then
- write(outfile,';cdecl');
- popshift;
- if createdynlib then
- begin
- writeln(outfile,';');
- end
- else if UseLib then
- begin
- if IsExtern then
- begin
- write (outfile,';external');
- If UseName then
- Write(outfile,' External_library name ''',yyv[yysp-1]^.p1^.p2^.p,'''');
- end;
- writeln(outfile,';');
- end
- else
- begin
- writeln(outfile,';');
- if not IsExtern then
- begin
- writeln(implemfile,';');
- shift(2);
- if yyv[yysp-0]^.typ=t_statement_list then
- write_statement_block(implemfile,yyv[yysp-0]);
- popshift;
- end;
- end;
- IsExtern:=false;
- if not(compactmode) and not(createdynlib) then
- writeln(outfile);
- until not NeedEllipsisOverload;
- end
- else (* yyv[yysp-1]^.p1^.p1^.typ=t_procdef *)
- if assigned(yyv[yysp-1])and assigned(yyv[yysp-1]^.p1) then
- begin
- shift(2);
- if block_type<>bt_var then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'var');
- end;
- block_type:=bt_var;
-
- shift(2);
-
- IsExtern:=assigned(yyv[yysp-4])and(yyv[yysp-4]^.str='extern');
- (* walk through all declarations *)
- hp:=yyv[yysp-1];
- while assigned(hp) and assigned(hp^.p1) do
- begin
- (* write new var name *)
- if assigned(hp^.p1^.p2) and assigned(hp^.p1^.p2^.p) then
- write(outfile,aktspace,hp^.p1^.p2^.p);
- write(outfile,' : ');
- shift(2);
- (* write its type *)
- write_p_a_def(outfile,hp^.p1^.p1,yyv[yysp-3]);
- if assigned(hp^.p1^.p2)and assigned(hp^.p1^.p2^.p)then
- begin
- if isExtern then
- write(outfile,';cvar;external')
- else
- write(outfile,';cvar;public');
- end;
- writeln(outfile,';');
- popshift;
- hp:=hp^.p2;
- end;
- popshift;
- popshift;
- end;
- if assigned(yyv[yysp-4]) then
- dispose(yyv[yysp-4],done);
- if assigned(yyv[yysp-3]) then
- dispose(yyv[yysp-3],done);
- if assigned(yyv[yysp-2]) then
- dispose(yyv[yysp-2],done);
- if assigned(yyv[yysp-1]) then
- dispose(yyv[yysp-1],done);
- if assigned(yyv[yysp-0]) then
- dispose(yyv[yysp-0],done);
-
- end;
- 29 : begin
-
- IsExtern:=false;
- (* by default we must pop the args pushed on stack *)
- no_pop:=false;
- if (assigned(yyv[yysp-2])and assigned(yyv[yysp-2]^.p1)and assigned(yyv[yysp-2]^.p1^.p1))
- and (yyv[yysp-2]^.p1^.p1^.typ=t_procdef) then
- begin
- repeat
- If UseLib then
- IsExtern:=true
- else
- IsExtern:=assigned(yyv[yysp-5])and(yyv[yysp-5]^.str='extern');
- no_pop:=assigned(yyv[yysp-3]) and (yyv[yysp-3]^.str='no_pop');
-
- if (block_type<>bt_func) and not(createdynlib) then
- begin
- writeln(outfile);
- block_type:=bt_func;
- end;
-
- (* dyn. procedures must be put into a var block *)
- if createdynlib then
- begin
- if (block_type<>bt_var) then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'var');
- block_type:=bt_var;
- end;
- shift(2);
- end;
- if not CompactMode then
- begin
- write(outfile,aktspace);
- if not IsExtern then
- write(implemfile,aktspace);
- end;
- (* distinguish between procedure and function *)
- if assigned(yyv[yysp-4]) then
- if (yyv[yysp-4]^.typ=t_void) and (yyv[yysp-2]^.p1^.p1^.p1=nil) then
- begin
- if createdynlib then
- begin
- write(outfile,yyv[yysp-2]^.p1^.p2^.p,' : procedure');
- end
- else
- begin
- shift(10);
- write(outfile,'procedure ',yyv[yysp-2]^.p1^.p2^.p);
- end;
- if assigned(yyv[yysp-2]^.p1^.p1^.p2) then
- write_args(outfile,yyv[yysp-2]^.p1^.p1^.p2);
- if createdynlib then
- begin
- loaddynlibproc.add('pointer('+yyv[yysp-2]^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+yyv[yysp-2]^.p1^.p2^.p+''');');
- freedynlibproc.add(yyv[yysp-2]^.p1^.p2^.p+':=nil;');
- end
- else if not IsExtern then
- begin
- write(implemfile,'procedure ',yyv[yysp-2]^.p1^.p2^.p);
- if assigned(yyv[yysp-2]^.p1^.p1^.p2) then
- write_args(implemfile,yyv[yysp-2]^.p1^.p1^.p2);
- end;
- end
- else
- begin
- if createdynlib then
- begin
- write(outfile,yyv[yysp-2]^.p1^.p2^.p,' : function');
- end
- else
- begin
- shift(9);
- write(outfile,'function ',yyv[yysp-2]^.p1^.p2^.p);
- end;
-
- if assigned(yyv[yysp-2]^.p1^.p1^.p2) then
- write_args(outfile,yyv[yysp-2]^.p1^.p1^.p2);
- write(outfile,':');
- write_p_a_def(outfile,yyv[yysp-2]^.p1^.p1^.p1,yyv[yysp-4]);
- if createdynlib then
- begin
- loaddynlibproc.add('pointer('+yyv[yysp-2]^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+yyv[yysp-2]^.p1^.p2^.p+''');');
- freedynlibproc.add(yyv[yysp-2]^.p1^.p2^.p+':=nil;');
- end
- else if not IsExtern then
- begin
- write(implemfile,'function ',yyv[yysp-2]^.p1^.p2^.p);
- if assigned(yyv[yysp-2]^.p1^.p1^.p2) then
- write_args(implemfile,yyv[yysp-2]^.p1^.p1^.p2);
- write(implemfile,':');
- write_p_a_def(implemfile,yyv[yysp-2]^.p1^.p1^.p1,yyv[yysp-4]);
- end;
- end;
- if assigned(yyv[yysp-1]) then
- write(outfile,';systrap ',yyv[yysp-1]^.p);
- (* No CDECL in interface for Uselib *)
- if IsExtern and (not no_pop) then
- write(outfile,';cdecl');
- popshift;
- if createdynlib then
- begin
- writeln(outfile,';');
- end
- else if UseLib then
- begin
- if IsExtern then
- begin
- write (outfile,';external');
- If UseName then
- Write(outfile,' External_library name ''',yyv[yysp-2]^.p1^.p2^.p,'''');
- end;
- writeln(outfile,';');
- end
- else
- begin
- writeln(outfile,';');
- if not IsExtern then
- begin
- writeln(implemfile,';');
- writeln(implemfile,aktspace,'begin');
- writeln(implemfile,aktspace,' { You must implement this function }');
- writeln(implemfile,aktspace,'end;');
- end;
- end;
- IsExtern:=false;
- if not(compactmode) and not(createdynlib) then
- writeln(outfile);
- until not NeedEllipsisOverload;
- end
- else (* yyv[yysp-2]^.p1^.p1^.typ=t_procdef *)
- if assigned(yyv[yysp-2])and assigned(yyv[yysp-2]^.p1) then
- begin
- shift(2);
- if block_type<>bt_var then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'var');
- end;
- block_type:=bt_var;
-
- shift(2);
-
- IsExtern:=assigned(yyv[yysp-5])and(yyv[yysp-5]^.str='extern');
- (* walk through all declarations *)
- hp:=yyv[yysp-2];
- while assigned(hp) and assigned(hp^.p1) do
- begin
- (* write new var name *)
- if assigned(hp^.p1^.p2) and assigned(hp^.p1^.p2^.p) then
- write(outfile,aktspace,hp^.p1^.p2^.p);
- write(outfile,' : ');
- shift(2);
- (* write its type *)
- write_p_a_def(outfile,hp^.p1^.p1,yyv[yysp-4]);
- if assigned(hp^.p1^.p2)and assigned(hp^.p1^.p2^.p)then
- begin
- if isExtern then
- write(outfile,';cvar;external')
- else
- write(outfile,';cvar;public');
- end;
- writeln(outfile,';');
- popshift;
- hp:=hp^.p2;
- end;
- popshift;
- popshift;
- end;
- if assigned(yyv[yysp-5])then dispose(yyv[yysp-5],done);
- if assigned(yyv[yysp-4])then dispose(yyv[yysp-4],done);
- if assigned(yyv[yysp-2])then dispose(yyv[yysp-2],done);
-
- end;
- 30 : begin
-
- if block_type<>bt_type then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'type');
- block_type:=bt_type;
- end;
- shift(2);
- if ( yyv[yysp-1]^.p2 <> nil ) then
- begin
- (* write new type name *)
- TN:=TypeName(yyv[yysp-1]^.p2^.p);
- PN:=PointerName(yyv[yysp-1]^.p2^.p);
- (* define a Pointer type also for structs *)
- if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
- assigned(yyv[yysp-1]) and (yyv[yysp-1]^.typ in [t_uniondef,t_structdef]) then
- writeln(outfile,aktspace,PN,' = ^',TN,';');
- write(outfile,aktspace,TN,' = ');
- shift(2);
- hp:=yyv[yysp-1];
- write_type_specifier(outfile,hp);
- popshift;
- (* enum_to_const can make a switch to const *)
- if block_type=bt_type then
- writeln(outfile,';');
- writeln(outfile);
- flush(outfile);
- popshift;
- if must_write_packed_field then
- write_packed_fields_info(outfile,hp,TN);
- if assigned(hp) then
- dispose(hp,done)
- end
- else
- begin
- TN:=TypeName(yyv[yysp-1]^.str);
- PN:=PointerName(yyv[yysp-1]^.str);
- if UsePPointers then writeln(outfile,aktspace,PN,' = ^',TN,';');
- if PackRecords then
- writeln(outfile, aktspace, TN, ' = packed record')
- else
- writeln(outfile, aktspace, TN, ' = record');
- writeln(outfile, aktspace, ' {undefined structure}');
- writeln(outfile, aktspace, ' end;');
- writeln(outfile);
- popshift;
- end;
-
- end;
- 31 : begin
-
- (* TYPEDEF STRUCT dname dname SEMICOLON *)
- if block_type<>bt_type then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'type');
- block_type:=bt_type;
- end;
- PN:=TypeName(yyv[yysp-2]^.p);
- TN:=TypeName(yyv[yysp-1]^.p);
- if Uppercase(tn)<>Uppercase(pn) then
- begin
- shift(2);
- writeln(outfile,aktspace,PN,' = ',TN,';');
- popshift;
- end;
- if assigned(yyv[yysp-2]) then
- dispose(yyv[yysp-2],done);
- if assigned(yyv[yysp-1]) then
- dispose(yyv[yysp-1],done);
-
- end;
- 32 : begin
-
- (* TYPEDEF type_specifier LKLAMMER dec_modifier declarator RKLAMMER maybe_space LKLAMMER argument_declaration_list RKLAMMER SEMICOLON *)
- if block_type<>bt_type then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'type');
- block_type:=bt_type;
- end;
- no_pop:=assigned(yyv[yysp-7]) and (yyv[yysp-7]^.str='no_pop');
- shift(2);
- (* walk through all declarations *)
- hp:=yyv[yysp-6];
- if assigned(hp) then
- begin
- hp:=yyv[yysp-6];
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_procdef,nil,yyv[yysp-2]));
- hp:=yyv[yysp-6];
- if assigned(hp^.p1) and assigned(hp^.p1^.p1) then
- begin
- writeln(outfile);
- (* write new type name *)
- write(outfile,aktspace,TypeName(hp^.p2^.p),' = ');
- shift(2);
- write_p_a_def(outfile,hp^.p1,yyv[yysp-9]);
- popshift;
- (* if no_pop it is normal fpc calling convention *)
- if is_procvar and
- (not no_pop) then
- write(outfile,';cdecl');
- writeln(outfile,';');
- flush(outfile);
- end;
- end;
- popshift;
- if assigned(yyv[yysp-9])then
- dispose(yyv[yysp-9],done);
- if assigned(yyv[yysp-7])then
- dispose(yyv[yysp-7],done);
- if assigned(yyv[yysp-6])then (* disposes also yyv[yysp-2] *)
- dispose(yyv[yysp-6],done);
-
- end;
- 33 : begin
-
- (* TYPEDEF type_specifier dec_modifier declarator_list SEMICOLON *)
- if block_type<>bt_type then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'type');
- block_type:=bt_type;
- end
- else
- writeln(outfile);
- no_pop:=assigned(yyv[yysp-2]) and (yyv[yysp-2]^.str='no_pop');
- shift(2);
- (* Get the name to write the type definition for, try
- to use the tag name first *)
- if assigned(yyv[yysp-3]^.p2) then
- begin
- ph:=yyv[yysp-3]^.p2;
- end
- else
- begin
- if not assigned(yyv[yysp-1]^.p1^.p2) then
- internalerror(4444);
- ph:=yyv[yysp-1]^.p1^.p2;
- end;
- (* write type definition *)
- is_procvar:=false;
- TN:=TypeName(ph^.p);
- PN:=PointerName(ph^.p);
- if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
- assigned(yyv[yysp-3]) and (yyv[yysp-3]^.typ<>t_procdef) then
- writeln(outfile,aktspace,PN,' = ^',TN,';');
- (* write new type name *)
- write(outfile,aktspace,TN,' = ');
- shift(2);
- write_p_a_def(outfile,yyv[yysp-1]^.p1^.p1,yyv[yysp-3]);
- popshift;
- (* if no_pop it is normal fpc calling convention *)
- if is_procvar and
- (not no_pop) then
- write(outfile,';cdecl');
- writeln(outfile,';');
- flush(outfile);
- (* write alias names, ph points to the name already used *)
- hp:=yyv[yysp-1];
- while assigned(hp) do
- begin
- if (hp<>ph) and assigned(hp^.p1^.p2) then
- begin
- PN:=TypeName(ph^.p);
- TN:=TypeName(hp^.p1^.p2^.p);
- if Uppercase(TN)<>Uppercase(PN) then
- begin
- write(outfile,aktspace,TN,' = ');
- write_p_a_def(outfile,hp^.p1^.p1,ph);
- writeln(outfile,';');
- PN:=PointerName(hp^.p1^.p2^.p);
- if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and
- assigned(yyv[yysp-3]) and (yyv[yysp-3]^.typ<>t_procdef) then
- writeln(outfile,aktspace,PN,' = ^',TN,';');
- end;
- end;
- hp:=hp^.next;
- end;
- popshift;
- if must_write_packed_field then
- if assigned(ph) then
- write_packed_fields_info(outfile,yyv[yysp-3],ph^.str)
- else if assigned(yyv[yysp-3]^.p2) then
- write_packed_fields_info(outfile,yyv[yysp-3],yyv[yysp-3]^.p2^.str);
- if assigned(yyv[yysp-3])then
- dispose(yyv[yysp-3],done);
- if assigned(yyv[yysp-2])then
- dispose(yyv[yysp-2],done);
- if assigned(yyv[yysp-1])then
- dispose(yyv[yysp-1],done);
-
- end;
- 34 : begin
-
- if block_type<>bt_type then
- begin
- if not(compactmode) then
- writeln(outfile);
- writeln(outfile,aktspace,'type');
- block_type:=bt_type;
- end
- else
- writeln(outfile);
- shift(2);
- (* write as pointer *)
- writeln(outfile,'(* generic typedef *)');
- writeln(outfile,aktspace,yyv[yysp-1]^.p,' = pointer;');
- flush(outfile);
- popshift;
- if assigned(yyv[yysp-1]) then
- dispose(yyv[yysp-1],done);
-
- end;
- 35 : begin
- writeln(outfile,'in declaration at line ',line_no,' *)');
- aktspace:='';
- in_space_define:=0;
- in_define:=false;
- arglevel:=0;
- if_nb:=0;
- aktspace:=' ';
- space_index:=1;
- yyerrok;
- end;
- 36 : begin
-
- (* DEFINE dname LKLAMMER enum_list RKLAMMER para_def_expr NEW_LINE *)
- if not stripinfo then
- begin
- writeln (outfile,aktspace,'{ was #define dname(params) para_def_expr }');
- writeln (implemfile,aktspace,'{ was #define dname(params) para_def_expr }');
- if assigned(yyv[yysp-3]) then
- begin
- writeln (outfile,aktspace,'{ argument types are unknown }');
- writeln (implemfile,aktspace,'{ argument types are unknown }');
- end;
- if not assigned(yyv[yysp-1]^.p3) then
- begin
- writeln(outfile,aktspace,'{ return type might be wrong } ');
- writeln(implemfile,aktspace,'{ return type might be wrong } ');
- end;
- end;
- if block_type<>bt_func then
- writeln(outfile);
-
- block_type:=bt_func;
- write(outfile,aktspace,'function ',yyv[yysp-5]^.p);
- write(implemfile,aktspace,'function ',yyv[yysp-5]^.p);
-
- if assigned(yyv[yysp-3]) then
- begin
- write(outfile,'(');
- write(implemfile,'(');
- ph:=new(presobject,init_one(t_enumdef,yyv[yysp-3]));
- write_def_params(outfile,ph);
- write_def_params(implemfile,ph);
- if assigned(ph) then dispose(ph,done);
- ph:=nil;
- (* types are unknown *)
- write(outfile,' : longint)');
- write(implemfile,' : longint)');
- end;
- if not assigned(yyv[yysp-1]^.p3) then
- begin
- writeln(outfile,' : longint;',aktspace,commentstr);
- writeln(implemfile,' : longint;');
- flush(outfile);
- end
- else
- begin
- write(outfile,' : ');
- write_type_specifier(outfile,yyv[yysp-1]^.p3);
- writeln(outfile,';',aktspace,commentstr);
- flush(outfile);
- write(implemfile,' : ');
- write_type_specifier(implemfile,yyv[yysp-1]^.p3);
- writeln(implemfile,';');
- end;
- writeln(outfile);
- flush(outfile);
- hp:=new(presobject,init_two(t_funcname,yyv[yysp-5],yyv[yysp-1]));
- write_funexpr(implemfile,hp);
- writeln(implemfile);
- flush(implemfile);
- if assigned(hp)then dispose(hp,done);
-
- end;
- 37 : begin
-
- (* DEFINE dname SPACE_DEFINE NEW_LINE *)
- writeln(outfile,'{$define ',yyv[yysp-2]^.p,'}',aktspace,commentstr);
- flush(outfile);
- if assigned(yyv[yysp-2])then
- dispose(yyv[yysp-2],done);
-
- end;
- 38 : begin
-
- writeln(outfile,'{$define ',yyv[yysp-1]^.p,'}',aktspace,commentstr);
- flush(outfile);
- if assigned(yyv[yysp-1])then
- dispose(yyv[yysp-1],done);
-
- end;
- 39 : begin
-
- (* DEFINE dname SPACE_DEFINE def_expr NEW_LINE *)
- if (yyv[yysp-1]^.typ=t_exprlist) and
- yyv[yysp-1]^.p1^.is_const and
- not assigned(yyv[yysp-1]^.next) then
- begin
- if block_type<>bt_const then
- begin
- if block_type<>bt_func then
- writeln(outfile);
- writeln(outfile,aktspace,'const');
- end;
- block_type:=bt_const;
- shift(2);
- write(outfile,aktspace,yyv[yysp-3]^.p);
- write(outfile,' = ');
- flush(outfile);
- write_expr(outfile,yyv[yysp-1]^.p1);
- writeln(outfile,';',aktspace,commentstr);
- popshift;
- if assigned(yyv[yysp-3]) then
- dispose(yyv[yysp-3],done);
- if assigned(yyv[yysp-1]) then
- dispose(yyv[yysp-1],done);
- end
- else
- begin
- if block_type<>bt_func then
- writeln(outfile);
- if not stripinfo then
- begin
- writeln (outfile,aktspace,'{ was #define dname def_expr }');
- writeln (implemfile,aktspace,'{ was #define dname def_expr }');
- end;
- block_type:=bt_func;
- write(outfile,aktspace,'function ',yyv[yysp-3]^.p);
- write(implemfile,aktspace,'function ',yyv[yysp-3]^.p);
- shift(2);
- if not assigned(yyv[yysp-1]^.p3) then
- begin
- writeln(outfile,' : longint; { return type might be wrong }');
- flush(outfile);
- writeln(implemfile,' : longint; { return type might be wrong }');
- end
- else
- begin
- write(outfile,' : ');
- write_type_specifier(outfile,yyv[yysp-1]^.p3);
- writeln(outfile,';',aktspace,commentstr);
- flush(outfile);
- write(implemfile,' : ');
- write_type_specifier(implemfile,yyv[yysp-1]^.p3);
- writeln(implemfile,';');
- end;
- writeln(outfile);
- flush(outfile);
- hp:=new(presobject,init_two(t_funcname,yyv[yysp-3],yyv[yysp-1]));
- write_funexpr(implemfile,hp);
- popshift;
- dispose(hp,done);
- writeln(implemfile);
- flush(implemfile);
- end;
-
- end;
- 40 : begin
- writeln(outfile,'in define line ',line_no,' *)');
- aktspace:='';
- in_space_define:=0;
- in_define:=false;
- arglevel:=0;
- if_nb:=0;
- aktspace:=' ';
- space_index:=1;
-
- yyerrok;
- end;
- 41 : begin
- yyval:=yyv[yysp-1];
- end;
- 42 : begin
- writeln(outfile,' in member_list *)');
- yyerrok;
- yyval:=nil;
-
- end;
- 43 : begin
- yyval:=yyv[yysp-1];
- end;
- 44 : begin
- writeln(outfile,' in enum_list *)');
- yyerrok;
- yyval:=nil;
-
- end;
- 45 : begin
-
- if (not is_packed) and (not packrecords) then
- writeln(outfile,'{$PACKRECORDS 1}');
- is_packed:=true;
- yyval:=new(presobject,init_two(t_structdef,yyv[yysp-1],yyv[yysp-2]));
-
- end;
- 46 : begin
-
- if (is_packed) and (not packrecords) then
- writeln(outfile,'{$PACKRECORDS 4}');
- is_packed:=false;
- yyval:=new(presobject,init_two(t_structdef,yyv[yysp-0],yyv[yysp-1]));
-
- end;
- 47 : begin
-
- if (not is_packed) and (not packrecords) then
- writeln(outfile,'{$PACKRECORDS 1}');
- is_packed:=true;
- yyval:=new(presobject,init_two(t_uniondef,yyv[yysp-1],yyv[yysp-2]));
-
- end;
- 48 : begin
-
- yyval:=new(presobject,init_two(t_uniondef,yyv[yysp-0],yyv[yysp-1]));
-
- end;
- 49 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 50 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 51 : begin
-
- yyval:=new(presobject,init_two(t_enumdef,yyv[yysp-0],yyv[yysp-1]));
-
- end;
- 52 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 53 : begin
-
- if not stripinfo then
- writeln(outfile,'(* Const before type ignored *)');
- yyval:=yyv[yysp-0];
-
- end;
- 54 : begin
-
- if (not is_packed) and (not packrecords)then
- writeln(outfile,'{$PACKRECORDS 1}');
- is_packed:=true;
- yyval:=new(presobject,init_one(t_uniondef,yyv[yysp-1]));
-
- end;
- 55 : begin
-
- yyval:=new(presobject,init_one(t_uniondef,yyv[yysp-0]));
-
- end;
- 56 : begin
-
- if (not is_packed) and (not packrecords) then
- writeln(outfile,'{$PACKRECORDS 1}');
- is_packed:=true;
- yyval:=new(presobject,init_one(t_structdef,yyv[yysp-1]));
-
- end;
- 57 : begin
-
- if (is_packed) and (not packrecords) then
- writeln(outfile,'{$PACKRECORDS 4}');
- is_packed:=false;
- yyval:=new(presobject,init_one(t_structdef,yyv[yysp-0]));
-
- end;
- 58 : begin
-
- yyval:=new(presobject,init_one(t_enumdef,yyv[yysp-0]));
-
- end;
- 59 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 60 : begin
- yyval:=yyv[yysp-0];
- end;
- 61 : begin
-
- yyval:=new(presobject,init_one(t_memberdeclist,yyv[yysp-1]));
- yyval^.next:=yyv[yysp-0];
-
- end;
- 62 : begin
-
- yyval:=new(presobject,init_one(t_memberdeclist,yyv[yysp-0]));
-
- end;
- 63 : begin
-
- yyval:=new(presobject,init_two(t_memberdec,yyv[yysp-2],yyv[yysp-1]));
-
- end;
- 64 : begin
- (*dname*)
- yyval:=new(presobject,init_id(act_token));
-
- end;
- 65 : begin
-
- hp:=yyv[yysp-0];
- yyval:=hp;
- if assigned(hp) then
- begin
- s:=strpas(hp^.p);
- if UseCTypesUnit then
- begin
- if s=cint_STR then
- s:=csint_STR
- else if s=cshort_STR then
- s:=csshort_STR
- else if s=cchar_STR then
- s:=cschar_STR
- else if s=clong_STR then
- s:=cslong_STR
- else if s=clonglong_STR then
- s:=cslonglong_STR
- else if s=cint8_STR then
- s:=cint8_STR
- else if s=cint16_STR then
- s:=cint16_STR
- else if s=cint32_STR then
- s:=cint32_STR
- else if s=cint64_STR then
- s:=cint64_STR
- else
- s:='';
- end
- else
- begin
- if s=UINT_STR then
- s:=INT_STR
- else if s=USHORT_STR then
- s:=SHORT_STR
- else if s=USMALL_STR then
- s:=SMALL_STR
- else if s=UCHAR_STR then
- s:=CHAR_STR
- else if s=QWORD_STR then
- s:=INT64_STR
- else
- s:='';
- end;
- if s<>'' then
- hp^.setstr(s);
- end;
-
- end;
- 66 : begin
-
- hp:=yyv[yysp-0];
- yyval:=hp;
- if assigned(hp) then
- begin
- s:=strpas(hp^.p);
- if UseCTypesUnit then
- begin
- if s=cint_STR then
- s:=cuint_STR
- else if s=cshort_STR then
- s:=cushort_STR
- else if s=cchar_STR then
- s:=cuchar_STR
- else if s=clong_STR then
- s:=culong_STR
- else if s=clonglong_STR then
- s:=culonglong_STR
- else if s=cint8_STR then
- s:=cuint8_STR
- else if s=cint16_STR then
- s:=cuint16_STR
- else if s=cint32_STR then
- s:=cuint32_STR
- else if s=cint64_STR then
- s:=cuint64_STR
- else
- s:='';
- end
- else
- begin
- if s=INT_STR then
- s:=UINT_STR
- else if s=SHORT_STR then
- s:=USHORT_STR
- else if s=SMALL_STR then
- s:=USMALL_STR
- else if s=CHAR_STR then
- s:=UCHAR_STR
- else if s=INT64_STR then
- s:=QWORD_STR
- else
- s:='';
- end;
- if s<>'' then
- hp^.setstr(s);
- end;
-
- end;
- 67 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cint_STR))
- else
- yyval:=new(presobject,init_intid(INT_STR));
-
- end;
- 68 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(clong_STR))
- else
- yyval:=new(presobject,init_intid(INT_STR));
-
- end;
- 69 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(clong_STR))
- else
- yyval:=new(presobject,init_intid(INT_STR));
-
- end;
- 70 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(clonglong_STR))
- else
- yyval:=new(presobject,init_intid(INT64_STR));
-
- end;
- 71 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(clonglong_STR))
- else
- yyval:=new(presobject,init_intid(INT64_STR));
-
- end;
- 72 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cshort_STR))
- else
- yyval:=new(presobject,init_intid(SMALL_STR));
-
- end;
- 73 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(csint_STR))
- else
- yyval:=new(presobject,init_intid(SMALL_STR));
-
- end;
- 74 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cint8_STR))
- else
- yyval:=new(presobject,init_intid(SHORT_STR));
-
- end;
- 75 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cint16_STR))
- else
- yyval:=new(presobject,init_intid(SMALL_STR));
-
- end;
- 76 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cint32_STR))
- else
- yyval:=new(presobject,init_intid(INT_STR));
-
- end;
- 77 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cint64_STR))
- else
- yyval:=new(presobject,init_intid(INT64_STR));
-
- end;
- 78 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cfloat_STR))
- else
- yyval:=new(presobject,init_intid(FLOAT_STR));
-
- end;
- 79 : begin
-
- yyval:=new(presobject,init_no(t_void));
-
- end;
- 80 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cchar_STR))
- else
- yyval:=new(presobject,init_intid(CHAR_STR));
-
- end;
- 81 : begin
-
- if UseCTypesUnit then
- yyval:=new(presobject,init_id(cunsigned_STR))
- else
- yyval:=new(presobject,init_intid(UINT_STR));
-
- end;
- 82 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 83 : begin
-
- yyval:=yyv[yysp-0];
- tn:=yyval^.str;
- if removeunderscore and
- (length(tn)>1) and (tn[1]='_') then
- yyval^.setstr(Copy(tn,2,length(tn)-1));
-
- end;
- 84 : begin
-
- yyval:=yyv[yysp-2];
- hp:=yyv[yysp-2];
- while assigned(hp^.next) do
- hp:=hp^.next;
- hp^.next:=new(presobject,init_one(t_declist,yyv[yysp-0]));
-
- end;
- 85 : begin
-
- writeln(outfile,' in declarator_list *)');
- yyval:=yyv[yysp-0];
- yyerrok;
-
- end;
- 86 : begin
-
- writeln(outfile,' in declarator_list *)');
- yyerrok;
-
- end;
- 87 : begin
-
- yyval:=new(presobject,init_one(t_declist,yyv[yysp-0]));
-
- end;
- 88 : begin
-
- yyval:=new(presobject,init_two(t_arg,yyv[yysp-1],yyv[yysp-0]));
-
- end;
- 89 : begin
-
- (* type_specifier STAR declarator *)
- hp:=new(presobject,init_one(t_pointerdef,yyv[yysp-2]));
- yyval:=new(presobject,init_two(t_arg,hp,yyv[yysp-0]));
-
- end;
- 90 : begin
-
- yyval:=new(presobject,init_two(t_arg,yyv[yysp-1],yyv[yysp-0]));
-
- end;
- 91 : begin
-
- yyval:=new(presobject,init_two(t_arglist,yyv[yysp-0],nil));
-
- end;
- 92 : begin
-
- yyval:=new(presobject,init_two(t_arglist,yyv[yysp-2],nil));
- yyval^.next:=yyv[yysp-0];
-
- end;
- 93 : begin
-
- yyval:=new(presobject,init_two(t_arglist,ellipsisarg,nil));
-
- end;
- 94 : begin
-
- yyval:=nil;
-
- end;
- 95 : begin
- yyval:=new(presobject,init_id('far'));
- end;
- 96 : begin
- yyval:=new(presobject,init_id('near'));
- end;
- 97 : begin
- yyval:=new(presobject,init_id('huge'));
- end;
- 98 : begin
-
- if not stripinfo then
- writeln(outfile,'(* Const before declarator ignored *)');
- yyval:=yyv[yysp-0];
-
- end;
- 99 : begin
-
- if not stripinfo then
- writeln(outfile,aktspace,'(* ',yyv[yysp-2]^.p,' ignored *)');
- dispose(yyv[yysp-2],done);
- hp:=yyv[yysp-0];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_one(t_pointerdef,nil));
-
- end;
- 100 : begin
-
- (* %prec PSTAR this was wrong!! *)
- hp:=yyv[yysp-0];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_one(t_pointerdef,nil));
-
- end;
- 101 : begin
-
- hp:=yyv[yysp-0];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_one(t_addrdef,nil));
-
- end;
- 102 : begin
-
- (* size specifier supported *)
- hp:=new(presobject,init_one(t_size_specifier,yyv[yysp-0]));
- yyval:=new(presobject,init_three(t_dec,nil,yyv[yysp-2],hp));
-
- end;
- 103 : begin
-
- if not stripinfo then
- writeln(outfile,'(* Warning : default value for ',yyv[yysp-2]^.p,' ignored *)');
- hp:=new(presobject,init_one(t_default_value,yyv[yysp-0]));
- yyval:=new(presobject,init_three(t_dec,nil,yyv[yysp-2],hp));
-
- end;
- 104 : begin
-
- yyval:=new(presobject,init_two(t_dec,nil,yyv[yysp-0]));
-
- end;
- 105 : begin
-
- hp:=yyv[yysp-3];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_procdef,nil,yyv[yysp-1]));
-
- end;
- 106 : begin
-
- hp:=yyv[yysp-1];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_procdef,nil,nil));
-
- end;
- 107 : begin
-
- hp:=yyv[yysp-3];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_arraydef,nil,yyv[yysp-1]));
-
- end;
- 108 : begin
-
- (* this is translated into a pointer *)
- hp:=yyv[yysp-2];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil));
-
- end;
- 109 : begin
-
- yyval:=yyv[yysp-1];
-
- end;
- 110 : begin
- yyval := yyv[yysp-1];
- end;
- 111 : begin
- yyval := yyv[yysp-2];
- end;
- 112 : begin
-
- if not stripinfo then
- writeln(outfile,'(* Const before abstract_declarator ignored *)');
- yyval:=yyv[yysp-0];
-
- end;
- 113 : begin
-
- if not stripinfo then
- writeln(outfile,aktspace,'(* ',yyv[yysp-2]^.p,' ignored *)');
- dispose(yyv[yysp-2],done);
- hp:=yyv[yysp-0];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_one(t_pointerdef,nil));
-
- end;
- 114 : begin
-
- hp:=yyv[yysp-0];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_one(t_pointerdef,nil));
-
- end;
- 115 : begin
-
- hp:=yyv[yysp-3];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_procdef,nil,yyv[yysp-1]));
-
- end;
- 116 : begin
-
- hp:=yyv[yysp-1];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_procdef,nil,nil));
-
- end;
- 117 : begin
-
- hp:=yyv[yysp-3];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_arraydef,nil,yyv[yysp-1]));
-
- end;
- 118 : begin
-
- (* this is translated into a pointer *)
- hp:=yyv[yysp-2];
- yyval:=hp;
- while assigned(hp^.p1) do
- hp:=hp^.p1;
- hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil));
-
- end;
- 119 : begin
-
- yyval:=yyv[yysp-1];
-
- end;
- 120 : begin
-
- yyval:=new(presobject,init_two(t_dec,nil,nil));
-
- end;
- 121 : begin
- yyval:=yyv[yysp-0];
- end;
- 122 : begin
- yyval:=new(presobject,init_bop(':=',yyv[yysp-2],yyv[yysp-0]));
- end;
- 123 : begin
- yyval:=new(presobject,init_bop('=',yyv[yysp-2],yyv[yysp-0]));
- end;
- 124 : begin
- yyval:=new(presobject,init_bop('<>',yyv[yysp-2],yyv[yysp-0]));
- end;
- 125 : begin
- yyval:=new(presobject,init_bop('>',yyv[yysp-2],yyv[yysp-0]));
- end;
- 126 : begin
- yyval:=new(presobject,init_bop('>=',yyv[yysp-2],yyv[yysp-0]));
- end;
- 127 : begin
- yyval:=new(presobject,init_bop('<',yyv[yysp-2],yyv[yysp-0]));
- end;
- 128 : begin
- yyval:=new(presobject,init_bop('<=',yyv[yysp-2],yyv[yysp-0]));
- end;
- 129 : begin
- yyval:=new(presobject,init_bop('+',yyv[yysp-2],yyv[yysp-0]));
- end;
- 130 : begin
- yyval:=new(presobject,init_bop('-',yyv[yysp-2],yyv[yysp-0]));
- end;
- 131 : begin
- yyval:=new(presobject,init_bop('*',yyv[yysp-2],yyv[yysp-0]));
- end;
- 132 : begin
- yyval:=new(presobject,init_bop('/',yyv[yysp-2],yyv[yysp-0]));
- end;
- 133 : begin
- yyval:=new(presobject,init_bop(' or ',yyv[yysp-2],yyv[yysp-0]));
- end;
- 134 : begin
- yyval:=new(presobject,init_bop(' and ',yyv[yysp-2],yyv[yysp-0]));
- end;
- 135 : begin
- yyval:=new(presobject,init_bop(' not ',yyv[yysp-2],yyv[yysp-0]));
- end;
- 136 : begin
- yyval:=new(presobject,init_bop(' shl ',yyv[yysp-2],yyv[yysp-0]));
- end;
- 137 : begin
- yyval:=new(presobject,init_bop(' shr ',yyv[yysp-2],yyv[yysp-0]));
- end;
- 138 : begin
-
- yyv[yysp-0]^.p1:=yyv[yysp-2];
- yyval:=yyv[yysp-0];
- inc(if_nb);
- yyval^.p:=strpnew('if_local'+str(if_nb));
-
- end;
- 139 : begin
- yyval:=yyv[yysp-0];
- end;
- 140 : begin
- (* if A then B else C *)
- yyval:=new(presobject,init_three(t_ifexpr,nil,yyv[yysp-2],yyv[yysp-0]));
- end;
- 141 : begin
- yyval:=yyv[yysp-0];
- end;
- 142 : begin
- yyval:=nil;
- end;
- 143 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 144 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 145 : begin
-
- (* remove L prefix for widestrings *)
- s:=act_token;
- if Win32headers and (s[1]='L') then
- delete(s,1,1);
- yyval:=new(presobject,init_id(''''+copy(s,2,length(s)-2)+''''));
-
- end;
- 146 : begin
-
- yyval:=new(presobject,init_id(act_token));
-
- end;
- 147 : begin
-
- yyval:=new(presobject,init_bop('.',yyv[yysp-2],yyv[yysp-0]));
-
- end;
- 148 : begin
-
- yyval:=new(presobject,init_bop('^.',yyv[yysp-2],yyv[yysp-0]));
-
- end;
- 149 : begin
-
- yyval:=new(presobject,init_preop('-',yyv[yysp-0]));
-
- end;
- 150 : begin
-
- yyval:=new(presobject,init_preop('+',yyv[yysp-0]));
-
- end;
- 151 : begin
-
- yyval:=new(presobject,init_preop('@',yyv[yysp-0]));
-
- end;
- 152 : begin
-
- yyval:=new(presobject,init_preop(' not ',yyv[yysp-0]));
-
- end;
- 153 : begin
-
- if assigned(yyv[yysp-0]) then
- yyval:=new(presobject,init_two(t_typespec,yyv[yysp-2],yyv[yysp-0]))
- else
- yyval:=yyv[yysp-2];
-
- end;
- 154 : begin
-
- yyval:=new(presobject,init_two(t_typespec,yyv[yysp-2],yyv[yysp-0]));
-
- end;
- 155 : begin
-
- hp:=new(presobject,init_one(t_pointerdef,yyv[yysp-3]));
- yyval:=new(presobject,init_two(t_typespec,hp,yyv[yysp-0]));
-
- end;
- 156 : begin
-
- if not stripinfo then
- writeln(outfile,aktspace,'(* ',yyv[yysp-3]^.p,' ignored *)');
- dispose(yyv[yysp-3],done);
- write_type_specifier(outfile,yyv[yysp-4]);
- writeln(outfile,' ignored *)');
- hp:=new(presobject,init_one(t_pointerdef,yyv[yysp-4]));
- yyval:=new(presobject,init_two(t_typespec,hp,yyv[yysp-0]));
-
- end;
- 157 : begin
-
- hp:=new(presobject,init_one(t_exprlist,yyv[yysp-3]));
- yyval:=new(presobject,init_three(t_funexprlist,hp,yyv[yysp-1],nil));
-
- end;
- 158 : begin
-
- yyval:=yyv[yysp-1];
-
- end;
- 159 : begin
-
- yyval:=new(presobject,init_two(t_callop,yyv[yysp-5],yyv[yysp-1]));
-
- end;
- 160 : begin
-
- yyval:=new(presobject,init_two(t_arrayop,yyv[yysp-3],yyv[yysp-1]));
-
- end;
- 161 : begin
- (*enum_element COMMA enum_list *)
- yyval:=yyv[yysp-2];
- yyval^.next:=yyv[yysp-0];
-
- end;
- 162 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 163 : begin
- (* empty enum list *)
- yyval:=nil;
- end;
- 164 : begin
- begin (*enum_element: dname _ASSIGN expr *)
- yyval:=new(presobject,init_two(t_enumlist,yyv[yysp-2],yyv[yysp-0]));
- end;
-
- end;
- 165 : begin
-
- begin (*enum_element: dname*)
- yyval:=new(presobject,init_two(t_enumlist,yyv[yysp-0],nil));
- end;
-
- end;
- 166 : begin
-
- if yyv[yysp-0]^.typ=t_funexprlist then
- yyval:=yyv[yysp-0]
- else
- yyval:=new(presobject,init_two(t_exprlist,yyv[yysp-0],nil));
- (* if here is a type specifier
- we know the return type *)
- if (yyv[yysp-0]^.typ=t_typespec) then
- yyval^.p3:=yyv[yysp-0]^.p1^.get_copy;
-
- end;
- 167 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 168 : begin
-
- yyval:=yyv[yysp-1]
-
- end;
- 169 : begin
- (*exprlist COMMA expr*)
- yyval:=yyv[yysp-2];
- yyv[yysp-2]^.next:=yyv[yysp-0];
-
- end;
- 170 : begin
-
- yyval:=yyv[yysp-0];
-
- end;
- 171 : begin
- (* empty expression list *)
- yyval:=nil;
- end;
- 172 : begin
-
- yyval:=new(presobject,init_one(t_exprlist,yyv[yysp-0]));
-
- end;
- end;
- end(*yyaction*);
- (* parse table: *)
- type YYARec = record
- sym, act : Integer;
- end;
- YYRRec = record
- len, sym : Integer;
- end;
- const
- yynacts = 3055;
- yyngotos = 424;
- yynstates = 313;
- yynrules = 172;
- yya : array [1..yynacts] of YYARec = (
- { 0: }
- ( sym: 256; act: 7 ),
- ( sym: 263; act: 8 ),
- ( sym: 264; act: 9 ),
- ( sym: 274; act: 10 ),
- ( sym: 275; act: 11 ),
- ( sym: 276; act: 12 ),
- ( sym: 293; act: 13 ),
- ( sym: 277; act: -10 ),
- ( sym: 280; act: -10 ),
- ( sym: 281; act: -10 ),
- ( sym: 282; act: -10 ),
- ( sym: 283; act: -10 ),
- ( sym: 284; act: -10 ),
- ( sym: 285; act: -10 ),
- ( sym: 286; act: -10 ),
- ( sym: 287; act: -10 ),
- ( sym: 327; act: -10 ),
- ( sym: 328; act: -10 ),
- ( sym: 329; act: -10 ),
- ( sym: 330; act: -10 ),
- ( sym: 331; act: -10 ),
- { 1: }
- ( sym: 266; act: 14 ),
- { 2: }
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 3: }
- { 4: }
- { 5: }
- ( sym: 256; act: 7 ),
- ( sym: 263; act: 8 ),
- ( sym: 264; act: 9 ),
- ( sym: 274; act: 10 ),
- ( sym: 275; act: 11 ),
- ( sym: 276; act: 12 ),
- ( sym: 293; act: 13 ),
- ( sym: 0; act: -1 ),
- ( sym: 277; act: -10 ),
- ( sym: 280; act: -10 ),
- ( sym: 281; act: -10 ),
- ( sym: 282; act: -10 ),
- ( sym: 283; act: -10 ),
- ( sym: 284; act: -10 ),
- ( sym: 285; act: -10 ),
- ( sym: 286; act: -10 ),
- ( sym: 287; act: -10 ),
- ( sym: 327; act: -10 ),
- ( sym: 328; act: -10 ),
- ( sym: 329; act: -10 ),
- ( sym: 330; act: -10 ),
- ( sym: 331; act: -10 ),
- { 6: }
- ( sym: 0; act: 0 ),
- { 7: }
- { 8: }
- ( sym: 274; act: 42 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 9: }
- ( sym: 277; act: 23 ),
- { 10: }
- ( sym: 277; act: 23 ),
- { 11: }
- ( sym: 277; act: 23 ),
- { 12: }
- ( sym: 277; act: 23 ),
- { 13: }
- { 14: }
- { 15: }
- { 16: }
- { 17: }
- { 18: }
- ( sym: 294; act: 48 ),
- ( sym: 295; act: 49 ),
- ( sym: 296; act: 50 ),
- ( sym: 297; act: 51 ),
- ( sym: 298; act: 52 ),
- ( sym: 299; act: 53 ),
- ( sym: 300; act: 54 ),
- ( sym: 256; act: -18 ),
- ( sym: 268; act: -18 ),
- ( sym: 277; act: -18 ),
- ( sym: 287; act: -18 ),
- ( sym: 288; act: -18 ),
- ( sym: 289; act: -18 ),
- ( sym: 290; act: -18 ),
- ( sym: 314; act: -18 ),
- ( sym: 319; act: -18 ),
- { 19: }
- { 20: }
- ( sym: 256; act: 56 ),
- ( sym: 272; act: 57 ),
- ( sym: 277; act: 23 ),
- { 21: }
- ( sym: 256; act: 56 ),
- ( sym: 272; act: 57 ),
- ( sym: 277; act: 23 ),
- { 22: }
- ( sym: 256; act: 60 ),
- ( sym: 272; act: 61 ),
- ( sym: 277; act: 23 ),
- { 23: }
- { 24: }
- ( sym: 283; act: 62 ),
- ( sym: 256; act: -72 ),
- ( sym: 265; act: -72 ),
- ( sym: 266; act: -72 ),
- ( sym: 267; act: -72 ),
- ( sym: 268; act: -72 ),
- ( sym: 269; act: -72 ),
- ( sym: 270; act: -72 ),
- ( sym: 271; act: -72 ),
- ( sym: 272; act: -72 ),
- ( sym: 273; act: -72 ),
- ( sym: 277; act: -72 ),
- ( sym: 287; act: -72 ),
- ( sym: 288; act: -72 ),
- ( sym: 289; act: -72 ),
- ( sym: 290; act: -72 ),
- ( sym: 291; act: -72 ),
- ( sym: 294; act: -72 ),
- ( sym: 295; act: -72 ),
- ( sym: 296; act: -72 ),
- ( sym: 297; act: -72 ),
- ( sym: 298; act: -72 ),
- ( sym: 299; act: -72 ),
- ( sym: 300; act: -72 ),
- ( sym: 301; act: -72 ),
- ( sym: 304; act: -72 ),
- ( sym: 306; act: -72 ),
- ( sym: 307; act: -72 ),
- ( sym: 308; act: -72 ),
- ( sym: 309; act: -72 ),
- ( sym: 310; act: -72 ),
- ( sym: 311; act: -72 ),
- ( sym: 312; act: -72 ),
- ( sym: 313; act: -72 ),
- ( sym: 314; act: -72 ),
- ( sym: 315; act: -72 ),
- ( sym: 316; act: -72 ),
- ( sym: 317; act: -72 ),
- ( sym: 318; act: -72 ),
- ( sym: 319; act: -72 ),
- ( sym: 320; act: -72 ),
- ( sym: 321; act: -72 ),
- ( sym: 324; act: -72 ),
- ( sym: 325; act: -72 ),
- { 25: }
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 256; act: -81 ),
- ( sym: 265; act: -81 ),
- ( sym: 266; act: -81 ),
- ( sym: 267; act: -81 ),
- ( sym: 268; act: -81 ),
- ( sym: 269; act: -81 ),
- ( sym: 270; act: -81 ),
- ( sym: 271; act: -81 ),
- ( sym: 272; act: -81 ),
- ( sym: 273; act: -81 ),
- ( sym: 277; act: -81 ),
- ( sym: 287; act: -81 ),
- ( sym: 288; act: -81 ),
- ( sym: 289; act: -81 ),
- ( sym: 290; act: -81 ),
- ( sym: 291; act: -81 ),
- ( sym: 294; act: -81 ),
- ( sym: 295; act: -81 ),
- ( sym: 296; act: -81 ),
- ( sym: 297; act: -81 ),
- ( sym: 298; act: -81 ),
- ( sym: 299; act: -81 ),
- ( sym: 300; act: -81 ),
- ( sym: 301; act: -81 ),
- ( sym: 304; act: -81 ),
- ( sym: 306; act: -81 ),
- ( sym: 307; act: -81 ),
- ( sym: 308; act: -81 ),
- ( sym: 309; act: -81 ),
- ( sym: 310; act: -81 ),
- ( sym: 311; act: -81 ),
- ( sym: 312; act: -81 ),
- ( sym: 313; act: -81 ),
- ( sym: 314; act: -81 ),
- ( sym: 315; act: -81 ),
- ( sym: 316; act: -81 ),
- ( sym: 317; act: -81 ),
- ( sym: 318; act: -81 ),
- ( sym: 319; act: -81 ),
- ( sym: 320; act: -81 ),
- ( sym: 321; act: -81 ),
- ( sym: 324; act: -81 ),
- ( sym: 325; act: -81 ),
- { 26: }
- ( sym: 282; act: 64 ),
- ( sym: 283; act: 65 ),
- ( sym: 256; act: -68 ),
- ( sym: 265; act: -68 ),
- ( sym: 266; act: -68 ),
- ( sym: 267; act: -68 ),
- ( sym: 268; act: -68 ),
- ( sym: 269; act: -68 ),
- ( sym: 270; act: -68 ),
- ( sym: 271; act: -68 ),
- ( sym: 272; act: -68 ),
- ( sym: 273; act: -68 ),
- ( sym: 277; act: -68 ),
- ( sym: 287; act: -68 ),
- ( sym: 288; act: -68 ),
- ( sym: 289; act: -68 ),
- ( sym: 290; act: -68 ),
- ( sym: 291; act: -68 ),
- ( sym: 294; act: -68 ),
- ( sym: 295; act: -68 ),
- ( sym: 296; act: -68 ),
- ( sym: 297; act: -68 ),
- ( sym: 298; act: -68 ),
- ( sym: 299; act: -68 ),
- ( sym: 300; act: -68 ),
- ( sym: 301; act: -68 ),
- ( sym: 304; act: -68 ),
- ( sym: 306; act: -68 ),
- ( sym: 307; act: -68 ),
- ( sym: 308; act: -68 ),
- ( sym: 309; act: -68 ),
- ( sym: 310; act: -68 ),
- ( sym: 311; act: -68 ),
- ( sym: 312; act: -68 ),
- ( sym: 313; act: -68 ),
- ( sym: 314; act: -68 ),
- ( sym: 315; act: -68 ),
- ( sym: 316; act: -68 ),
- ( sym: 317; act: -68 ),
- ( sym: 318; act: -68 ),
- ( sym: 319; act: -68 ),
- ( sym: 320; act: -68 ),
- ( sym: 321; act: -68 ),
- ( sym: 324; act: -68 ),
- ( sym: 325; act: -68 ),
- { 27: }
- { 28: }
- { 29: }
- { 30: }
- { 31: }
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 32: }
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 33: }
- { 34: }
- { 35: }
- { 36: }
- { 37: }
- { 38: }
- { 39: }
- ( sym: 266; act: 68 ),
- ( sym: 291; act: 69 ),
- { 40: }
- ( sym: 268; act: 71 ),
- ( sym: 294; act: 48 ),
- ( sym: 295; act: 49 ),
- ( sym: 296; act: 50 ),
- ( sym: 297; act: 51 ),
- ( sym: 298; act: 52 ),
- ( sym: 299; act: 53 ),
- ( sym: 300; act: 54 ),
- ( sym: 256; act: -18 ),
- ( sym: 277; act: -18 ),
- ( sym: 287; act: -18 ),
- ( sym: 288; act: -18 ),
- ( sym: 289; act: -18 ),
- ( sym: 290; act: -18 ),
- ( sym: 314; act: -18 ),
- ( sym: 319; act: -18 ),
- { 41: }
- ( sym: 266; act: 72 ),
- ( sym: 256; act: -83 ),
- ( sym: 268; act: -83 ),
- ( sym: 277; act: -83 ),
- ( sym: 287; act: -83 ),
- ( sym: 288; act: -83 ),
- ( sym: 289; act: -83 ),
- ( sym: 290; act: -83 ),
- ( sym: 294; act: -83 ),
- ( sym: 295; act: -83 ),
- ( sym: 296; act: -83 ),
- ( sym: 297; act: -83 ),
- ( sym: 298; act: -83 ),
- ( sym: 299; act: -83 ),
- ( sym: 300; act: -83 ),
- ( sym: 314; act: -83 ),
- ( sym: 319; act: -83 ),
- { 42: }
- ( sym: 256; act: 56 ),
- ( sym: 272; act: 57 ),
- ( sym: 277; act: 23 ),
- { 43: }
- ( sym: 268; act: 74 ),
- ( sym: 291; act: 75 ),
- ( sym: 292; act: 76 ),
- { 44: }
- ( sym: 256; act: 56 ),
- ( sym: 272; act: 57 ),
- ( sym: 266; act: -50 ),
- ( sym: 267; act: -50 ),
- ( sym: 268; act: -50 ),
- ( sym: 269; act: -50 ),
- ( sym: 270; act: -50 ),
- ( sym: 277; act: -50 ),
- ( sym: 287; act: -50 ),
- ( sym: 288; act: -50 ),
- ( sym: 289; act: -50 ),
- ( sym: 290; act: -50 ),
- ( sym: 294; act: -50 ),
- ( sym: 295; act: -50 ),
- ( sym: 296; act: -50 ),
- ( sym: 297; act: -50 ),
- ( sym: 298; act: -50 ),
- ( sym: 299; act: -50 ),
- ( sym: 300; act: -50 ),
- ( sym: 314; act: -50 ),
- ( sym: 319; act: -50 ),
- { 45: }
- ( sym: 256; act: 56 ),
- ( sym: 272; act: 57 ),
- ( sym: 266; act: -49 ),
- ( sym: 267; act: -49 ),
- ( sym: 268; act: -49 ),
- ( sym: 269; act: -49 ),
- ( sym: 270; act: -49 ),
- ( sym: 277; act: -49 ),
- ( sym: 287; act: -49 ),
- ( sym: 288; act: -49 ),
- ( sym: 289; act: -49 ),
- ( sym: 290; act: -49 ),
- ( sym: 294; act: -49 ),
- ( sym: 295; act: -49 ),
- ( sym: 296; act: -49 ),
- ( sym: 297; act: -49 ),
- ( sym: 298; act: -49 ),
- ( sym: 299; act: -49 ),
- ( sym: 300; act: -49 ),
- ( sym: 314; act: -49 ),
- ( sym: 319; act: -49 ),
- { 46: }
- ( sym: 256; act: 60 ),
- ( sym: 272; act: 61 ),
- ( sym: 266; act: -52 ),
- ( sym: 267; act: -52 ),
- ( sym: 268; act: -52 ),
- ( sym: 269; act: -52 ),
- ( sym: 270; act: -52 ),
- ( sym: 277; act: -52 ),
- ( sym: 287; act: -52 ),
- ( sym: 288; act: -52 ),
- ( sym: 289; act: -52 ),
- ( sym: 290; act: -52 ),
- ( sym: 294; act: -52 ),
- ( sym: 295; act: -52 ),
- ( sym: 296; act: -52 ),
- ( sym: 297; act: -52 ),
- ( sym: 298; act: -52 ),
- ( sym: 299; act: -52 ),
- ( sym: 300; act: -52 ),
- ( sym: 314; act: -52 ),
- ( sym: 319; act: -52 ),
- { 47: }
- ( sym: 256; act: 84 ),
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 48: }
- { 49: }
- { 50: }
- { 51: }
- { 52: }
- { 53: }
- { 54: }
- { 55: }
- ( sym: 302; act: 92 ),
- ( sym: 256; act: -57 ),
- ( sym: 267; act: -57 ),
- ( sym: 268; act: -57 ),
- ( sym: 269; act: -57 ),
- ( sym: 270; act: -57 ),
- ( sym: 277; act: -57 ),
- ( sym: 287; act: -57 ),
- ( sym: 288; act: -57 ),
- ( sym: 289; act: -57 ),
- ( sym: 290; act: -57 ),
- ( sym: 294; act: -57 ),
- ( sym: 295; act: -57 ),
- ( sym: 296; act: -57 ),
- ( sym: 297; act: -57 ),
- ( sym: 298; act: -57 ),
- ( sym: 299; act: -57 ),
- ( sym: 300; act: -57 ),
- ( sym: 314; act: -57 ),
- ( sym: 319; act: -57 ),
- { 56: }
- { 57: }
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 58: }
- ( sym: 302; act: 97 ),
- ( sym: 256; act: -55 ),
- ( sym: 267; act: -55 ),
- ( sym: 268; act: -55 ),
- ( sym: 269; act: -55 ),
- ( sym: 270; act: -55 ),
- ( sym: 277; act: -55 ),
- ( sym: 287; act: -55 ),
- ( sym: 288; act: -55 ),
- ( sym: 289; act: -55 ),
- ( sym: 290; act: -55 ),
- ( sym: 294; act: -55 ),
- ( sym: 295; act: -55 ),
- ( sym: 296; act: -55 ),
- ( sym: 297; act: -55 ),
- ( sym: 298; act: -55 ),
- ( sym: 299; act: -55 ),
- ( sym: 300; act: -55 ),
- ( sym: 314; act: -55 ),
- ( sym: 319; act: -55 ),
- { 59: }
- { 60: }
- { 61: }
- ( sym: 277; act: 23 ),
- ( sym: 273; act: -163 ),
- { 62: }
- { 63: }
- { 64: }
- ( sym: 283; act: 102 ),
- ( sym: 256; act: -70 ),
- ( sym: 265; act: -70 ),
- ( sym: 266; act: -70 ),
- ( sym: 267; act: -70 ),
- ( sym: 268; act: -70 ),
- ( sym: 269; act: -70 ),
- ( sym: 270; act: -70 ),
- ( sym: 271; act: -70 ),
- ( sym: 272; act: -70 ),
- ( sym: 273; act: -70 ),
- ( sym: 277; act: -70 ),
- ( sym: 287; act: -70 ),
- ( sym: 288; act: -70 ),
- ( sym: 289; act: -70 ),
- ( sym: 290; act: -70 ),
- ( sym: 291; act: -70 ),
- ( sym: 294; act: -70 ),
- ( sym: 295; act: -70 ),
- ( sym: 296; act: -70 ),
- ( sym: 297; act: -70 ),
- ( sym: 298; act: -70 ),
- ( sym: 299; act: -70 ),
- ( sym: 300; act: -70 ),
- ( sym: 301; act: -70 ),
- ( sym: 304; act: -70 ),
- ( sym: 306; act: -70 ),
- ( sym: 307; act: -70 ),
- ( sym: 308; act: -70 ),
- ( sym: 309; act: -70 ),
- ( sym: 310; act: -70 ),
- ( sym: 311; act: -70 ),
- ( sym: 312; act: -70 ),
- ( sym: 313; act: -70 ),
- ( sym: 314; act: -70 ),
- ( sym: 315; act: -70 ),
- ( sym: 316; act: -70 ),
- ( sym: 317; act: -70 ),
- ( sym: 318; act: -70 ),
- ( sym: 319; act: -70 ),
- ( sym: 320; act: -70 ),
- ( sym: 321; act: -70 ),
- ( sym: 324; act: -70 ),
- ( sym: 325; act: -70 ),
- { 65: }
- { 66: }
- { 67: }
- { 68: }
- { 69: }
- { 70: }
- ( sym: 256; act: 84 ),
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 71: }
- ( sym: 294; act: 48 ),
- ( sym: 295; act: 49 ),
- ( sym: 296; act: 50 ),
- ( sym: 297; act: 51 ),
- ( sym: 298; act: 52 ),
- ( sym: 299; act: 53 ),
- ( sym: 300; act: 54 ),
- ( sym: 268; act: -18 ),
- ( sym: 277; act: -18 ),
- ( sym: 287; act: -18 ),
- ( sym: 288; act: -18 ),
- ( sym: 289; act: -18 ),
- ( sym: 290; act: -18 ),
- ( sym: 314; act: -18 ),
- ( sym: 319; act: -18 ),
- { 72: }
- { 73: }
- ( sym: 256; act: 56 ),
- ( sym: 272; act: 57 ),
- ( sym: 277; act: 23 ),
- ( sym: 268; act: -50 ),
- ( sym: 287; act: -50 ),
- ( sym: 288; act: -50 ),
- ( sym: 289; act: -50 ),
- ( sym: 290; act: -50 ),
- ( sym: 294; act: -50 ),
- ( sym: 295; act: -50 ),
- ( sym: 296; act: -50 ),
- ( sym: 297; act: -50 ),
- ( sym: 298; act: -50 ),
- ( sym: 299; act: -50 ),
- ( sym: 300; act: -50 ),
- ( sym: 314; act: -50 ),
- ( sym: 319; act: -50 ),
- { 74: }
- ( sym: 277; act: 23 ),
- ( sym: 269; act: -163 ),
- { 75: }
- { 76: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 291; act: 114 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 77: }
- ( sym: 302; act: 119 ),
- ( sym: 256; act: -46 ),
- ( sym: 266; act: -46 ),
- ( sym: 267; act: -46 ),
- ( sym: 268; act: -46 ),
- ( sym: 269; act: -46 ),
- ( sym: 270; act: -46 ),
- ( sym: 277; act: -46 ),
- ( sym: 287; act: -46 ),
- ( sym: 288; act: -46 ),
- ( sym: 289; act: -46 ),
- ( sym: 290; act: -46 ),
- ( sym: 294; act: -46 ),
- ( sym: 295; act: -46 ),
- ( sym: 296; act: -46 ),
- ( sym: 297; act: -46 ),
- ( sym: 298; act: -46 ),
- ( sym: 299; act: -46 ),
- ( sym: 300; act: -46 ),
- ( sym: 314; act: -46 ),
- ( sym: 319; act: -46 ),
- { 78: }
- ( sym: 302; act: 120 ),
- ( sym: 256; act: -48 ),
- ( sym: 266; act: -48 ),
- ( sym: 267; act: -48 ),
- ( sym: 268; act: -48 ),
- ( sym: 269; act: -48 ),
- ( sym: 270; act: -48 ),
- ( sym: 277; act: -48 ),
- ( sym: 287; act: -48 ),
- ( sym: 288; act: -48 ),
- ( sym: 289; act: -48 ),
- ( sym: 290; act: -48 ),
- ( sym: 294; act: -48 ),
- ( sym: 295; act: -48 ),
- ( sym: 296; act: -48 ),
- ( sym: 297; act: -48 ),
- ( sym: 298; act: -48 ),
- ( sym: 299; act: -48 ),
- ( sym: 300; act: -48 ),
- ( sym: 314; act: -48 ),
- ( sym: 319; act: -48 ),
- { 79: }
- { 80: }
- ( sym: 319; act: 121 ),
- { 81: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 124 ),
- ( sym: 266; act: -87 ),
- ( sym: 267; act: -87 ),
- ( sym: 272; act: -87 ),
- ( sym: 301; act: -87 ),
- { 82: }
- ( sym: 267; act: 127 ),
- ( sym: 272; act: 128 ),
- ( sym: 301; act: 129 ),
- ( sym: 266; act: -20 ),
- { 83: }
- ( sym: 265; act: 131 ),
- ( sym: 266; act: -104 ),
- ( sym: 267; act: -104 ),
- ( sym: 268; act: -104 ),
- ( sym: 269; act: -104 ),
- ( sym: 270; act: -104 ),
- ( sym: 272; act: -104 ),
- ( sym: 301; act: -104 ),
- { 84: }
- { 85: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 86: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 87: }
- { 88: }
- { 89: }
- { 90: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 91: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 92: }
- { 93: }
- ( sym: 273; act: 137 ),
- { 94: }
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 273; act: -62 ),
- { 95: }
- ( sym: 273; act: 139 ),
- { 96: }
- ( sym: 256; act: 84 ),
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 97: }
- { 98: }
- ( sym: 273; act: 141 ),
- { 99: }
- ( sym: 267; act: 142 ),
- ( sym: 269; act: -162 ),
- ( sym: 273; act: -162 ),
- { 100: }
- ( sym: 273; act: 143 ),
- { 101: }
- ( sym: 304; act: 144 ),
- ( sym: 267; act: -165 ),
- ( sym: 269; act: -165 ),
- ( sym: 273; act: -165 ),
- { 102: }
- { 103: }
- ( sym: 266; act: 145 ),
- ( sym: 267; act: 127 ),
- { 104: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 105: }
- ( sym: 266; act: 147 ),
- { 106: }
- ( sym: 269; act: 148 ),
- { 107: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 269; act: -166 ),
- ( sym: 291; act: -166 ),
- { 108: }
- { 109: }
- ( sym: 291; act: 151 ),
- { 110: }
- ( sym: 268; act: 152 ),
- ( sym: 270; act: 153 ),
- ( sym: 265; act: -143 ),
- ( sym: 266; act: -143 ),
- ( sym: 267; act: -143 ),
- ( sym: 269; act: -143 ),
- ( sym: 271; act: -143 ),
- ( sym: 272; act: -143 ),
- ( sym: 273; act: -143 ),
- ( sym: 291; act: -143 ),
- ( sym: 301; act: -143 ),
- ( sym: 304; act: -143 ),
- ( sym: 306; act: -143 ),
- ( sym: 307; act: -143 ),
- ( sym: 308; act: -143 ),
- ( sym: 309; act: -143 ),
- ( sym: 310; act: -143 ),
- ( sym: 311; act: -143 ),
- ( sym: 312; act: -143 ),
- ( sym: 313; act: -143 ),
- ( sym: 314; act: -143 ),
- ( sym: 315; act: -143 ),
- ( sym: 316; act: -143 ),
- ( sym: 317; act: -143 ),
- ( sym: 318; act: -143 ),
- ( sym: 319; act: -143 ),
- ( sym: 320; act: -143 ),
- ( sym: 321; act: -143 ),
- ( sym: 324; act: -143 ),
- ( sym: 325; act: -143 ),
- { 111: }
- ( sym: 268; act: 111 ),
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 319; act: 160 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 112: }
- { 113: }
- { 114: }
- { 115: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 116: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 117: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 118: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 119: }
- { 120: }
- { 121: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 122: }
- { 123: }
- ( sym: 269; act: 169 ),
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 170 ),
- ( sym: 287; act: 31 ),
- ( sym: 303; act: 171 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 124: }
- ( sym: 268; act: 111 ),
- ( sym: 271; act: 174 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 125: }
- { 126: }
- ( sym: 266; act: 175 ),
- { 127: }
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 128: }
- ( sym: 257; act: 180 ),
- ( sym: 266; act: 181 ),
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 273; act: -26 ),
- { 129: }
- ( sym: 268; act: 182 ),
- { 130: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 131: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 132: }
- ( sym: 267; act: 185 ),
- ( sym: 266; act: -86 ),
- ( sym: 272; act: -86 ),
- ( sym: 301; act: -86 ),
- { 133: }
- ( sym: 268; act: 123 ),
- ( sym: 269; act: 186 ),
- ( sym: 270; act: 124 ),
- { 134: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 124 ),
- ( sym: 266; act: -98 ),
- ( sym: 267; act: -98 ),
- ( sym: 269; act: -98 ),
- ( sym: 272; act: -98 ),
- ( sym: 301; act: -98 ),
- { 135: }
- ( sym: 270; act: 124 ),
- ( sym: 266; act: -101 ),
- ( sym: 267; act: -101 ),
- ( sym: 268; act: -101 ),
- ( sym: 269; act: -101 ),
- ( sym: 272; act: -101 ),
- ( sym: 301; act: -101 ),
- { 136: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 124 ),
- ( sym: 266; act: -100 ),
- ( sym: 267; act: -100 ),
- ( sym: 269; act: -100 ),
- ( sym: 272; act: -100 ),
- ( sym: 301; act: -100 ),
- { 137: }
- { 138: }
- { 139: }
- { 140: }
- ( sym: 266; act: 187 ),
- ( sym: 267; act: 127 ),
- { 141: }
- { 142: }
- ( sym: 277; act: 23 ),
- ( sym: 269; act: -163 ),
- ( sym: 273; act: -163 ),
- { 143: }
- { 144: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 145: }
- { 146: }
- ( sym: 268; act: 123 ),
- ( sym: 269; act: 190 ),
- ( sym: 270; act: 124 ),
- { 147: }
- { 148: }
- ( sym: 292; act: 193 ),
- ( sym: 268; act: -3 ),
- { 149: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 150: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 151: }
- { 152: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 269; act: -171 ),
- { 153: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 271; act: -171 ),
- { 154: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -139 ),
- ( sym: 266; act: -139 ),
- ( sym: 267; act: -139 ),
- ( sym: 268; act: -139 ),
- ( sym: 269; act: -139 ),
- ( sym: 270; act: -139 ),
- ( sym: 271; act: -139 ),
- ( sym: 272; act: -139 ),
- ( sym: 273; act: -139 ),
- ( sym: 291; act: -139 ),
- ( sym: 301; act: -139 ),
- ( sym: 304; act: -139 ),
- ( sym: 306; act: -139 ),
- ( sym: 307; act: -139 ),
- ( sym: 308; act: -139 ),
- ( sym: 309; act: -139 ),
- ( sym: 310; act: -139 ),
- ( sym: 311; act: -139 ),
- ( sym: 312; act: -139 ),
- ( sym: 313; act: -139 ),
- ( sym: 314; act: -139 ),
- ( sym: 315; act: -139 ),
- ( sym: 316; act: -139 ),
- ( sym: 317; act: -139 ),
- ( sym: 318; act: -139 ),
- ( sym: 319; act: -139 ),
- ( sym: 320; act: -139 ),
- ( sym: 321; act: -139 ),
- { 155: }
- ( sym: 269; act: 200 ),
- ( sym: 304; act: -121 ),
- ( sym: 306; act: -121 ),
- ( sym: 307; act: -121 ),
- ( sym: 308; act: -121 ),
- ( sym: 309; act: -121 ),
- ( sym: 310; act: -121 ),
- ( sym: 311; act: -121 ),
- ( sym: 312; act: -121 ),
- ( sym: 313; act: -121 ),
- ( sym: 314; act: -121 ),
- ( sym: 315; act: -121 ),
- ( sym: 316; act: -121 ),
- ( sym: 317; act: -121 ),
- ( sym: 318; act: -121 ),
- ( sym: 319; act: -121 ),
- ( sym: 320; act: -121 ),
- ( sym: 321; act: -121 ),
- { 156: }
- ( sym: 269; act: -82 ),
- ( sym: 288; act: -82 ),
- ( sym: 289; act: -82 ),
- ( sym: 290; act: -82 ),
- ( sym: 319; act: -82 ),
- ( sym: 304; act: -144 ),
- ( sym: 306; act: -144 ),
- ( sym: 307; act: -144 ),
- ( sym: 308; act: -144 ),
- ( sym: 309; act: -144 ),
- ( sym: 310; act: -144 ),
- ( sym: 311; act: -144 ),
- ( sym: 312; act: -144 ),
- ( sym: 313; act: -144 ),
- ( sym: 314; act: -144 ),
- ( sym: 315; act: -144 ),
- ( sym: 316; act: -144 ),
- ( sym: 317; act: -144 ),
- ( sym: 318; act: -144 ),
- ( sym: 320; act: -144 ),
- ( sym: 321; act: -144 ),
- ( sym: 324; act: -144 ),
- ( sym: 325; act: -144 ),
- { 157: }
- ( sym: 269; act: 202 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 319; act: 203 ),
- { 158: }
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- { 159: }
- ( sym: 268; act: 152 ),
- ( sym: 269; act: 221 ),
- ( sym: 270; act: 153 ),
- ( sym: 288; act: -83 ),
- ( sym: 289; act: -83 ),
- ( sym: 290; act: -83 ),
- ( sym: 319; act: -83 ),
- ( sym: 304; act: -143 ),
- ( sym: 306; act: -143 ),
- ( sym: 307; act: -143 ),
- ( sym: 308; act: -143 ),
- ( sym: 309; act: -143 ),
- ( sym: 310; act: -143 ),
- ( sym: 311; act: -143 ),
- ( sym: 312; act: -143 ),
- ( sym: 313; act: -143 ),
- ( sym: 314; act: -143 ),
- ( sym: 315; act: -143 ),
- ( sym: 316; act: -143 ),
- ( sym: 317; act: -143 ),
- ( sym: 318; act: -143 ),
- ( sym: 320; act: -143 ),
- ( sym: 321; act: -143 ),
- ( sym: 324; act: -143 ),
- ( sym: 325; act: -143 ),
- { 160: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 161: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -151 ),
- ( sym: 266; act: -151 ),
- ( sym: 267; act: -151 ),
- ( sym: 268; act: -151 ),
- ( sym: 269; act: -151 ),
- ( sym: 270; act: -151 ),
- ( sym: 271; act: -151 ),
- ( sym: 272; act: -151 ),
- ( sym: 273; act: -151 ),
- ( sym: 291; act: -151 ),
- ( sym: 301; act: -151 ),
- ( sym: 304; act: -151 ),
- ( sym: 306; act: -151 ),
- ( sym: 307; act: -151 ),
- ( sym: 308; act: -151 ),
- ( sym: 309; act: -151 ),
- ( sym: 310; act: -151 ),
- ( sym: 311; act: -151 ),
- ( sym: 312; act: -151 ),
- ( sym: 313; act: -151 ),
- ( sym: 314; act: -151 ),
- ( sym: 315; act: -151 ),
- ( sym: 316; act: -151 ),
- ( sym: 317; act: -151 ),
- ( sym: 318; act: -151 ),
- ( sym: 319; act: -151 ),
- ( sym: 320; act: -151 ),
- ( sym: 321; act: -151 ),
- { 162: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -150 ),
- ( sym: 266; act: -150 ),
- ( sym: 267; act: -150 ),
- ( sym: 268; act: -150 ),
- ( sym: 269; act: -150 ),
- ( sym: 270; act: -150 ),
- ( sym: 271; act: -150 ),
- ( sym: 272; act: -150 ),
- ( sym: 273; act: -150 ),
- ( sym: 291; act: -150 ),
- ( sym: 301; act: -150 ),
- ( sym: 304; act: -150 ),
- ( sym: 306; act: -150 ),
- ( sym: 307; act: -150 ),
- ( sym: 308; act: -150 ),
- ( sym: 309; act: -150 ),
- ( sym: 310; act: -150 ),
- ( sym: 311; act: -150 ),
- ( sym: 312; act: -150 ),
- ( sym: 313; act: -150 ),
- ( sym: 314; act: -150 ),
- ( sym: 315; act: -150 ),
- ( sym: 316; act: -150 ),
- ( sym: 317; act: -150 ),
- ( sym: 318; act: -150 ),
- ( sym: 319; act: -150 ),
- ( sym: 320; act: -150 ),
- ( sym: 321; act: -150 ),
- { 163: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -149 ),
- ( sym: 266; act: -149 ),
- ( sym: 267; act: -149 ),
- ( sym: 268; act: -149 ),
- ( sym: 269; act: -149 ),
- ( sym: 270; act: -149 ),
- ( sym: 271; act: -149 ),
- ( sym: 272; act: -149 ),
- ( sym: 273; act: -149 ),
- ( sym: 291; act: -149 ),
- ( sym: 301; act: -149 ),
- ( sym: 304; act: -149 ),
- ( sym: 306; act: -149 ),
- ( sym: 307; act: -149 ),
- ( sym: 308; act: -149 ),
- ( sym: 309; act: -149 ),
- ( sym: 310; act: -149 ),
- ( sym: 311; act: -149 ),
- ( sym: 312; act: -149 ),
- ( sym: 313; act: -149 ),
- ( sym: 314; act: -149 ),
- ( sym: 315; act: -149 ),
- ( sym: 316; act: -149 ),
- ( sym: 317; act: -149 ),
- ( sym: 318; act: -149 ),
- ( sym: 319; act: -149 ),
- ( sym: 320; act: -149 ),
- ( sym: 321; act: -149 ),
- { 164: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -152 ),
- ( sym: 266; act: -152 ),
- ( sym: 267; act: -152 ),
- ( sym: 268; act: -152 ),
- ( sym: 269; act: -152 ),
- ( sym: 270; act: -152 ),
- ( sym: 271; act: -152 ),
- ( sym: 272; act: -152 ),
- ( sym: 273; act: -152 ),
- ( sym: 291; act: -152 ),
- ( sym: 301; act: -152 ),
- ( sym: 304; act: -152 ),
- ( sym: 306; act: -152 ),
- ( sym: 307; act: -152 ),
- ( sym: 308; act: -152 ),
- ( sym: 309; act: -152 ),
- ( sym: 310; act: -152 ),
- ( sym: 311; act: -152 ),
- ( sym: 312; act: -152 ),
- ( sym: 313; act: -152 ),
- ( sym: 314; act: -152 ),
- ( sym: 315; act: -152 ),
- ( sym: 316; act: -152 ),
- ( sym: 317; act: -152 ),
- ( sym: 318; act: -152 ),
- ( sym: 319; act: -152 ),
- ( sym: 320; act: -152 ),
- ( sym: 321; act: -152 ),
- { 165: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 124 ),
- ( sym: 266; act: -99 ),
- ( sym: 267; act: -99 ),
- ( sym: 269; act: -99 ),
- ( sym: 272; act: -99 ),
- ( sym: 301; act: -99 ),
- { 166: }
- ( sym: 267; act: 223 ),
- ( sym: 269; act: -91 ),
- { 167: }
- ( sym: 269; act: 224 ),
- { 168: }
- ( sym: 268; act: 228 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 229 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 230 ),
- ( sym: 267; act: -120 ),
- ( sym: 269; act: -120 ),
- ( sym: 270; act: -120 ),
- { 169: }
- { 170: }
- ( sym: 269; act: 231 ),
- ( sym: 267; act: -79 ),
- ( sym: 268; act: -79 ),
- ( sym: 270; act: -79 ),
- ( sym: 277; act: -79 ),
- ( sym: 287; act: -79 ),
- ( sym: 288; act: -79 ),
- ( sym: 289; act: -79 ),
- ( sym: 290; act: -79 ),
- ( sym: 314; act: -79 ),
- ( sym: 319; act: -79 ),
- { 171: }
- { 172: }
- { 173: }
- ( sym: 271; act: 232 ),
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- { 174: }
- { 175: }
- { 176: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 124 ),
- ( sym: 266; act: -84 ),
- ( sym: 267; act: -84 ),
- ( sym: 272; act: -84 ),
- ( sym: 301; act: -84 ),
- { 177: }
- ( sym: 273; act: 233 ),
- { 178: }
- ( sym: 266; act: 234 ),
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- { 179: }
- ( sym: 257; act: 180 ),
- ( sym: 266; act: 181 ),
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 273; act: -24 ),
- { 180: }
- ( sym: 268; act: 236 ),
- { 181: }
- { 182: }
- ( sym: 277; act: 23 ),
- { 183: }
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 266; act: -103 ),
- ( sym: 267; act: -103 ),
- ( sym: 268; act: -103 ),
- ( sym: 269; act: -103 ),
- ( sym: 270; act: -103 ),
- ( sym: 272; act: -103 ),
- ( sym: 301; act: -103 ),
- { 184: }
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 266; act: -102 ),
- ( sym: 267; act: -102 ),
- ( sym: 268; act: -102 ),
- ( sym: 269; act: -102 ),
- ( sym: 270; act: -102 ),
- ( sym: 272; act: -102 ),
- ( sym: 301; act: -102 ),
- { 185: }
- ( sym: 256; act: 84 ),
- ( sym: 268; act: 85 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 86 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 91 ),
- { 186: }
- { 187: }
- { 188: }
- { 189: }
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 267; act: -164 ),
- ( sym: 269; act: -164 ),
- ( sym: 273; act: -164 ),
- { 190: }
- ( sym: 292; act: 240 ),
- ( sym: 268; act: -3 ),
- { 191: }
- ( sym: 291; act: 241 ),
- { 192: }
- ( sym: 268; act: 242 ),
- { 193: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 194: }
- { 195: }
- { 196: }
- ( sym: 267; act: 244 ),
- ( sym: 269; act: -170 ),
- ( sym: 271; act: -170 ),
- { 197: }
- ( sym: 269; act: 245 ),
- { 198: }
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 267; act: -172 ),
- ( sym: 269; act: -172 ),
- ( sym: 271; act: -172 ),
- { 199: }
- ( sym: 271; act: 246 ),
- { 200: }
- { 201: }
- ( sym: 319; act: 247 ),
- { 202: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 203: }
- ( sym: 269; act: 249 ),
- { 204: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 205: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 206: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 207: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 208: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 209: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 210: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 211: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 212: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 213: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 214: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 215: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 216: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 217: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 218: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 219: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 220: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 221: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 265; act: -142 ),
- ( sym: 266; act: -142 ),
- ( sym: 267; act: -142 ),
- ( sym: 269; act: -142 ),
- ( sym: 270; act: -142 ),
- ( sym: 271; act: -142 ),
- ( sym: 272; act: -142 ),
- ( sym: 273; act: -142 ),
- ( sym: 291; act: -142 ),
- ( sym: 301; act: -142 ),
- ( sym: 304; act: -142 ),
- ( sym: 306; act: -142 ),
- ( sym: 307; act: -142 ),
- ( sym: 308; act: -142 ),
- ( sym: 309; act: -142 ),
- ( sym: 310; act: -142 ),
- ( sym: 311; act: -142 ),
- ( sym: 312; act: -142 ),
- ( sym: 313; act: -142 ),
- ( sym: 317; act: -142 ),
- ( sym: 318; act: -142 ),
- ( sym: 319; act: -142 ),
- ( sym: 320; act: -142 ),
- ( sym: 324; act: -142 ),
- ( sym: 325; act: -142 ),
- { 222: }
- ( sym: 269; act: 270 ),
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- { 223: }
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 303; act: 171 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 269; act: -94 ),
- { 224: }
- { 225: }
- ( sym: 319; act: 272 ),
- { 226: }
- ( sym: 268; act: 274 ),
- ( sym: 270; act: 275 ),
- ( sym: 267; act: -90 ),
- ( sym: 269; act: -90 ),
- { 227: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 276 ),
- ( sym: 267; act: -88 ),
- ( sym: 269; act: -88 ),
- { 228: }
- ( sym: 268; act: 228 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 229 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 279 ),
- ( sym: 269; act: -120 ),
- ( sym: 270; act: -120 ),
- { 229: }
- ( sym: 268; act: 228 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 229 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 279 ),
- ( sym: 267; act: -120 ),
- ( sym: 269; act: -120 ),
- ( sym: 270; act: -120 ),
- { 230: }
- ( sym: 268; act: 228 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 229 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 279 ),
- ( sym: 267; act: -120 ),
- ( sym: 269; act: -120 ),
- ( sym: 270; act: -120 ),
- { 231: }
- { 232: }
- { 233: }
- { 234: }
- { 235: }
- { 236: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 237: }
- ( sym: 269; act: 285 ),
- { 238: }
- { 239: }
- ( sym: 268; act: 286 ),
- { 240: }
- { 241: }
- { 242: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 243: }
- { 244: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 269; act: -171 ),
- ( sym: 271; act: -171 ),
- { 245: }
- { 246: }
- { 247: }
- ( sym: 269; act: 289 ),
- { 248: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -154 ),
- ( sym: 266; act: -154 ),
- ( sym: 267; act: -154 ),
- ( sym: 268; act: -154 ),
- ( sym: 269; act: -154 ),
- ( sym: 270; act: -154 ),
- ( sym: 271; act: -154 ),
- ( sym: 272; act: -154 ),
- ( sym: 273; act: -154 ),
- ( sym: 291; act: -154 ),
- ( sym: 301; act: -154 ),
- ( sym: 304; act: -154 ),
- ( sym: 306; act: -154 ),
- ( sym: 307; act: -154 ),
- ( sym: 308; act: -154 ),
- ( sym: 309; act: -154 ),
- ( sym: 310; act: -154 ),
- ( sym: 311; act: -154 ),
- ( sym: 312; act: -154 ),
- ( sym: 313; act: -154 ),
- ( sym: 314; act: -154 ),
- ( sym: 315; act: -154 ),
- ( sym: 316; act: -154 ),
- ( sym: 317; act: -154 ),
- ( sym: 318; act: -154 ),
- ( sym: 319; act: -154 ),
- ( sym: 320; act: -154 ),
- ( sym: 321; act: -154 ),
- { 249: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 250: }
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -122 ),
- ( sym: 266; act: -122 ),
- ( sym: 267; act: -122 ),
- ( sym: 268; act: -122 ),
- ( sym: 269; act: -122 ),
- ( sym: 270; act: -122 ),
- ( sym: 271; act: -122 ),
- ( sym: 272; act: -122 ),
- ( sym: 273; act: -122 ),
- ( sym: 291; act: -122 ),
- ( sym: 301; act: -122 ),
- ( sym: 324; act: -122 ),
- ( sym: 325; act: -122 ),
- { 251: }
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -123 ),
- ( sym: 266; act: -123 ),
- ( sym: 267; act: -123 ),
- ( sym: 268; act: -123 ),
- ( sym: 269; act: -123 ),
- ( sym: 270; act: -123 ),
- ( sym: 271; act: -123 ),
- ( sym: 272; act: -123 ),
- ( sym: 273; act: -123 ),
- ( sym: 291; act: -123 ),
- ( sym: 301; act: -123 ),
- ( sym: 304; act: -123 ),
- ( sym: 306; act: -123 ),
- ( sym: 307; act: -123 ),
- ( sym: 308; act: -123 ),
- ( sym: 309; act: -123 ),
- ( sym: 310; act: -123 ),
- ( sym: 311; act: -123 ),
- ( sym: 324; act: -123 ),
- ( sym: 325; act: -123 ),
- { 252: }
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -124 ),
- ( sym: 266; act: -124 ),
- ( sym: 267; act: -124 ),
- ( sym: 268; act: -124 ),
- ( sym: 269; act: -124 ),
- ( sym: 270; act: -124 ),
- ( sym: 271; act: -124 ),
- ( sym: 272; act: -124 ),
- ( sym: 273; act: -124 ),
- ( sym: 291; act: -124 ),
- ( sym: 301; act: -124 ),
- ( sym: 304; act: -124 ),
- ( sym: 306; act: -124 ),
- ( sym: 307; act: -124 ),
- ( sym: 308; act: -124 ),
- ( sym: 309; act: -124 ),
- ( sym: 310; act: -124 ),
- ( sym: 311; act: -124 ),
- ( sym: 324; act: -124 ),
- ( sym: 325; act: -124 ),
- { 253: }
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -125 ),
- ( sym: 266; act: -125 ),
- ( sym: 267; act: -125 ),
- ( sym: 268; act: -125 ),
- ( sym: 269; act: -125 ),
- ( sym: 270; act: -125 ),
- ( sym: 271; act: -125 ),
- ( sym: 272; act: -125 ),
- ( sym: 273; act: -125 ),
- ( sym: 291; act: -125 ),
- ( sym: 301; act: -125 ),
- ( sym: 304; act: -125 ),
- ( sym: 306; act: -125 ),
- ( sym: 307; act: -125 ),
- ( sym: 308; act: -125 ),
- ( sym: 309; act: -125 ),
- ( sym: 310; act: -125 ),
- ( sym: 311; act: -125 ),
- ( sym: 324; act: -125 ),
- ( sym: 325; act: -125 ),
- { 254: }
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -127 ),
- ( sym: 266; act: -127 ),
- ( sym: 267; act: -127 ),
- ( sym: 268; act: -127 ),
- ( sym: 269; act: -127 ),
- ( sym: 270; act: -127 ),
- ( sym: 271; act: -127 ),
- ( sym: 272; act: -127 ),
- ( sym: 273; act: -127 ),
- ( sym: 291; act: -127 ),
- ( sym: 301; act: -127 ),
- ( sym: 304; act: -127 ),
- ( sym: 306; act: -127 ),
- ( sym: 307; act: -127 ),
- ( sym: 308; act: -127 ),
- ( sym: 309; act: -127 ),
- ( sym: 310; act: -127 ),
- ( sym: 311; act: -127 ),
- ( sym: 324; act: -127 ),
- ( sym: 325; act: -127 ),
- { 255: }
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -126 ),
- ( sym: 266; act: -126 ),
- ( sym: 267; act: -126 ),
- ( sym: 268; act: -126 ),
- ( sym: 269; act: -126 ),
- ( sym: 270; act: -126 ),
- ( sym: 271; act: -126 ),
- ( sym: 272; act: -126 ),
- ( sym: 273; act: -126 ),
- ( sym: 291; act: -126 ),
- ( sym: 301; act: -126 ),
- ( sym: 304; act: -126 ),
- ( sym: 306; act: -126 ),
- ( sym: 307; act: -126 ),
- ( sym: 308; act: -126 ),
- ( sym: 309; act: -126 ),
- ( sym: 310; act: -126 ),
- ( sym: 311; act: -126 ),
- ( sym: 324; act: -126 ),
- ( sym: 325; act: -126 ),
- { 256: }
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -128 ),
- ( sym: 266; act: -128 ),
- ( sym: 267; act: -128 ),
- ( sym: 268; act: -128 ),
- ( sym: 269; act: -128 ),
- ( sym: 270; act: -128 ),
- ( sym: 271; act: -128 ),
- ( sym: 272; act: -128 ),
- ( sym: 273; act: -128 ),
- ( sym: 291; act: -128 ),
- ( sym: 301; act: -128 ),
- ( sym: 304; act: -128 ),
- ( sym: 306; act: -128 ),
- ( sym: 307; act: -128 ),
- ( sym: 308; act: -128 ),
- ( sym: 309; act: -128 ),
- ( sym: 310; act: -128 ),
- ( sym: 311; act: -128 ),
- ( sym: 324; act: -128 ),
- ( sym: 325; act: -128 ),
- { 257: }
- { 258: }
- ( sym: 265; act: 291 ),
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- { 259: }
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -133 ),
- ( sym: 266; act: -133 ),
- ( sym: 267; act: -133 ),
- ( sym: 268; act: -133 ),
- ( sym: 269; act: -133 ),
- ( sym: 270; act: -133 ),
- ( sym: 271; act: -133 ),
- ( sym: 272; act: -133 ),
- ( sym: 273; act: -133 ),
- ( sym: 291; act: -133 ),
- ( sym: 301; act: -133 ),
- ( sym: 304; act: -133 ),
- ( sym: 306; act: -133 ),
- ( sym: 307; act: -133 ),
- ( sym: 308; act: -133 ),
- ( sym: 309; act: -133 ),
- ( sym: 310; act: -133 ),
- ( sym: 311; act: -133 ),
- ( sym: 312; act: -133 ),
- ( sym: 313; act: -133 ),
- ( sym: 324; act: -133 ),
- ( sym: 325; act: -133 ),
- { 260: }
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -134 ),
- ( sym: 266; act: -134 ),
- ( sym: 267; act: -134 ),
- ( sym: 268; act: -134 ),
- ( sym: 269; act: -134 ),
- ( sym: 270; act: -134 ),
- ( sym: 271; act: -134 ),
- ( sym: 272; act: -134 ),
- ( sym: 273; act: -134 ),
- ( sym: 291; act: -134 ),
- ( sym: 301; act: -134 ),
- ( sym: 304; act: -134 ),
- ( sym: 306; act: -134 ),
- ( sym: 307; act: -134 ),
- ( sym: 308; act: -134 ),
- ( sym: 309; act: -134 ),
- ( sym: 310; act: -134 ),
- ( sym: 311; act: -134 ),
- ( sym: 312; act: -134 ),
- ( sym: 313; act: -134 ),
- ( sym: 314; act: -134 ),
- ( sym: 324; act: -134 ),
- ( sym: 325; act: -134 ),
- { 261: }
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -129 ),
- ( sym: 266; act: -129 ),
- ( sym: 267; act: -129 ),
- ( sym: 268; act: -129 ),
- ( sym: 269; act: -129 ),
- ( sym: 270; act: -129 ),
- ( sym: 271; act: -129 ),
- ( sym: 272; act: -129 ),
- ( sym: 273; act: -129 ),
- ( sym: 291; act: -129 ),
- ( sym: 301; act: -129 ),
- ( sym: 304; act: -129 ),
- ( sym: 306; act: -129 ),
- ( sym: 307; act: -129 ),
- ( sym: 308; act: -129 ),
- ( sym: 309; act: -129 ),
- ( sym: 310; act: -129 ),
- ( sym: 311; act: -129 ),
- ( sym: 312; act: -129 ),
- ( sym: 313; act: -129 ),
- ( sym: 314; act: -129 ),
- ( sym: 315; act: -129 ),
- ( sym: 316; act: -129 ),
- ( sym: 324; act: -129 ),
- ( sym: 325; act: -129 ),
- { 262: }
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -130 ),
- ( sym: 266; act: -130 ),
- ( sym: 267; act: -130 ),
- ( sym: 268; act: -130 ),
- ( sym: 269; act: -130 ),
- ( sym: 270; act: -130 ),
- ( sym: 271; act: -130 ),
- ( sym: 272; act: -130 ),
- ( sym: 273; act: -130 ),
- ( sym: 291; act: -130 ),
- ( sym: 301; act: -130 ),
- ( sym: 304; act: -130 ),
- ( sym: 306; act: -130 ),
- ( sym: 307; act: -130 ),
- ( sym: 308; act: -130 ),
- ( sym: 309; act: -130 ),
- ( sym: 310; act: -130 ),
- ( sym: 311; act: -130 ),
- ( sym: 312; act: -130 ),
- ( sym: 313; act: -130 ),
- ( sym: 314; act: -130 ),
- ( sym: 315; act: -130 ),
- ( sym: 316; act: -130 ),
- ( sym: 324; act: -130 ),
- ( sym: 325; act: -130 ),
- { 263: }
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -137 ),
- ( sym: 266; act: -137 ),
- ( sym: 267; act: -137 ),
- ( sym: 268; act: -137 ),
- ( sym: 269; act: -137 ),
- ( sym: 270; act: -137 ),
- ( sym: 271; act: -137 ),
- ( sym: 272; act: -137 ),
- ( sym: 273; act: -137 ),
- ( sym: 291; act: -137 ),
- ( sym: 301; act: -137 ),
- ( sym: 304; act: -137 ),
- ( sym: 306; act: -137 ),
- ( sym: 307; act: -137 ),
- ( sym: 308; act: -137 ),
- ( sym: 309; act: -137 ),
- ( sym: 310; act: -137 ),
- ( sym: 311; act: -137 ),
- ( sym: 312; act: -137 ),
- ( sym: 313; act: -137 ),
- ( sym: 314; act: -137 ),
- ( sym: 315; act: -137 ),
- ( sym: 316; act: -137 ),
- ( sym: 317; act: -137 ),
- ( sym: 318; act: -137 ),
- ( sym: 324; act: -137 ),
- ( sym: 325; act: -137 ),
- { 264: }
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -136 ),
- ( sym: 266; act: -136 ),
- ( sym: 267; act: -136 ),
- ( sym: 268; act: -136 ),
- ( sym: 269; act: -136 ),
- ( sym: 270; act: -136 ),
- ( sym: 271; act: -136 ),
- ( sym: 272; act: -136 ),
- ( sym: 273; act: -136 ),
- ( sym: 291; act: -136 ),
- ( sym: 301; act: -136 ),
- ( sym: 304; act: -136 ),
- ( sym: 306; act: -136 ),
- ( sym: 307; act: -136 ),
- ( sym: 308; act: -136 ),
- ( sym: 309; act: -136 ),
- ( sym: 310; act: -136 ),
- ( sym: 311; act: -136 ),
- ( sym: 312; act: -136 ),
- ( sym: 313; act: -136 ),
- ( sym: 314; act: -136 ),
- ( sym: 315; act: -136 ),
- ( sym: 316; act: -136 ),
- ( sym: 317; act: -136 ),
- ( sym: 318; act: -136 ),
- ( sym: 324; act: -136 ),
- ( sym: 325; act: -136 ),
- { 265: }
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -131 ),
- ( sym: 266; act: -131 ),
- ( sym: 267; act: -131 ),
- ( sym: 268; act: -131 ),
- ( sym: 269; act: -131 ),
- ( sym: 270; act: -131 ),
- ( sym: 271; act: -131 ),
- ( sym: 272; act: -131 ),
- ( sym: 273; act: -131 ),
- ( sym: 291; act: -131 ),
- ( sym: 301; act: -131 ),
- ( sym: 304; act: -131 ),
- ( sym: 306; act: -131 ),
- ( sym: 307; act: -131 ),
- ( sym: 308; act: -131 ),
- ( sym: 309; act: -131 ),
- ( sym: 310; act: -131 ),
- ( sym: 311; act: -131 ),
- ( sym: 312; act: -131 ),
- ( sym: 313; act: -131 ),
- ( sym: 314; act: -131 ),
- ( sym: 315; act: -131 ),
- ( sym: 316; act: -131 ),
- ( sym: 317; act: -131 ),
- ( sym: 318; act: -131 ),
- ( sym: 319; act: -131 ),
- ( sym: 320; act: -131 ),
- ( sym: 324; act: -131 ),
- ( sym: 325; act: -131 ),
- { 266: }
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -132 ),
- ( sym: 266; act: -132 ),
- ( sym: 267; act: -132 ),
- ( sym: 268; act: -132 ),
- ( sym: 269; act: -132 ),
- ( sym: 270; act: -132 ),
- ( sym: 271; act: -132 ),
- ( sym: 272; act: -132 ),
- ( sym: 273; act: -132 ),
- ( sym: 291; act: -132 ),
- ( sym: 301; act: -132 ),
- ( sym: 304; act: -132 ),
- ( sym: 306; act: -132 ),
- ( sym: 307; act: -132 ),
- ( sym: 308; act: -132 ),
- ( sym: 309; act: -132 ),
- ( sym: 310; act: -132 ),
- ( sym: 311; act: -132 ),
- ( sym: 312; act: -132 ),
- ( sym: 313; act: -132 ),
- ( sym: 314; act: -132 ),
- ( sym: 315; act: -132 ),
- ( sym: 316; act: -132 ),
- ( sym: 317; act: -132 ),
- ( sym: 318; act: -132 ),
- ( sym: 319; act: -132 ),
- ( sym: 320; act: -132 ),
- ( sym: 324; act: -132 ),
- ( sym: 325; act: -132 ),
- { 267: }
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -135 ),
- ( sym: 266; act: -135 ),
- ( sym: 267; act: -135 ),
- ( sym: 268; act: -135 ),
- ( sym: 269; act: -135 ),
- ( sym: 270; act: -135 ),
- ( sym: 271; act: -135 ),
- ( sym: 272; act: -135 ),
- ( sym: 273; act: -135 ),
- ( sym: 291; act: -135 ),
- ( sym: 301; act: -135 ),
- ( sym: 304; act: -135 ),
- ( sym: 306; act: -135 ),
- ( sym: 307; act: -135 ),
- ( sym: 308; act: -135 ),
- ( sym: 309; act: -135 ),
- ( sym: 310; act: -135 ),
- ( sym: 311; act: -135 ),
- ( sym: 312; act: -135 ),
- ( sym: 313; act: -135 ),
- ( sym: 314; act: -135 ),
- ( sym: 315; act: -135 ),
- ( sym: 316; act: -135 ),
- ( sym: 317; act: -135 ),
- ( sym: 318; act: -135 ),
- ( sym: 319; act: -135 ),
- ( sym: 320; act: -135 ),
- ( sym: 324; act: -135 ),
- ( sym: 325; act: -135 ),
- { 268: }
- { 269: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -141 ),
- ( sym: 266; act: -141 ),
- ( sym: 267; act: -141 ),
- ( sym: 268; act: -141 ),
- ( sym: 269; act: -141 ),
- ( sym: 270; act: -141 ),
- ( sym: 271; act: -141 ),
- ( sym: 272; act: -141 ),
- ( sym: 273; act: -141 ),
- ( sym: 291; act: -141 ),
- ( sym: 301; act: -141 ),
- ( sym: 304; act: -141 ),
- ( sym: 306; act: -141 ),
- ( sym: 307; act: -141 ),
- ( sym: 308; act: -141 ),
- ( sym: 309; act: -141 ),
- ( sym: 310; act: -141 ),
- ( sym: 311; act: -141 ),
- ( sym: 312; act: -141 ),
- ( sym: 313; act: -141 ),
- ( sym: 314; act: -141 ),
- ( sym: 315; act: -141 ),
- ( sym: 316; act: -141 ),
- ( sym: 317; act: -141 ),
- ( sym: 318; act: -141 ),
- ( sym: 319; act: -141 ),
- ( sym: 320; act: -141 ),
- ( sym: 321; act: -141 ),
- { 270: }
- ( sym: 292; act: 240 ),
- ( sym: 268; act: -3 ),
- { 271: }
- { 272: }
- ( sym: 268; act: 228 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 229 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 279 ),
- ( sym: 267; act: -120 ),
- ( sym: 269; act: -120 ),
- ( sym: 270; act: -120 ),
- { 273: }
- { 274: }
- ( sym: 269; act: 169 ),
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 170 ),
- ( sym: 287; act: 31 ),
- ( sym: 303; act: 171 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 275: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 276: }
- ( sym: 268; act: 111 ),
- ( sym: 271; act: 297 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 277: }
- ( sym: 268; act: 274 ),
- ( sym: 269; act: 298 ),
- ( sym: 270; act: 275 ),
- { 278: }
- ( sym: 268; act: 123 ),
- ( sym: 269; act: 186 ),
- ( sym: 270; act: 276 ),
- { 279: }
- ( sym: 268; act: 228 ),
- ( sym: 277; act: 23 ),
- ( sym: 287; act: 229 ),
- ( sym: 288; act: 87 ),
- ( sym: 289; act: 88 ),
- ( sym: 290; act: 89 ),
- ( sym: 314; act: 90 ),
- ( sym: 319; act: 279 ),
- ( sym: 267; act: -120 ),
- ( sym: 269; act: -120 ),
- ( sym: 270; act: -120 ),
- { 280: }
- ( sym: 268; act: 274 ),
- ( sym: 270; act: 275 ),
- ( sym: 267; act: -112 ),
- ( sym: 269; act: -112 ),
- { 281: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 276 ),
- ( sym: 267; act: -98 ),
- ( sym: 269; act: -98 ),
- { 282: }
- ( sym: 270; act: 275 ),
- ( sym: 267; act: -114 ),
- ( sym: 268; act: -114 ),
- ( sym: 269; act: -114 ),
- { 283: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 276 ),
- ( sym: 267; act: -89 ),
- ( sym: 269; act: -89 ),
- { 284: }
- ( sym: 269; act: 300 ),
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- { 285: }
- { 286: }
- ( sym: 274; act: 20 ),
- ( sym: 275; act: 21 ),
- ( sym: 276; act: 22 ),
- ( sym: 277; act: 23 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 287; act: 31 ),
- ( sym: 303; act: 171 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 269; act: -94 ),
- { 287: }
- ( sym: 269; act: 302 ),
- { 288: }
- { 289: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 290: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -155 ),
- ( sym: 266; act: -155 ),
- ( sym: 267; act: -155 ),
- ( sym: 268; act: -155 ),
- ( sym: 269; act: -155 ),
- ( sym: 270; act: -155 ),
- ( sym: 271; act: -155 ),
- ( sym: 272; act: -155 ),
- ( sym: 273; act: -155 ),
- ( sym: 291; act: -155 ),
- ( sym: 301; act: -155 ),
- ( sym: 304; act: -155 ),
- ( sym: 306; act: -155 ),
- ( sym: 307; act: -155 ),
- ( sym: 308; act: -155 ),
- ( sym: 309; act: -155 ),
- ( sym: 310; act: -155 ),
- ( sym: 311; act: -155 ),
- ( sym: 312; act: -155 ),
- ( sym: 313; act: -155 ),
- ( sym: 314; act: -155 ),
- ( sym: 315; act: -155 ),
- ( sym: 316; act: -155 ),
- ( sym: 317; act: -155 ),
- ( sym: 318; act: -155 ),
- ( sym: 319; act: -155 ),
- ( sym: 320; act: -155 ),
- ( sym: 321; act: -155 ),
- { 291: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- { 292: }
- ( sym: 268; act: 305 ),
- { 293: }
- ( sym: 268; act: 274 ),
- ( sym: 270; act: 275 ),
- ( sym: 267; act: -113 ),
- ( sym: 269; act: -113 ),
- { 294: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 276 ),
- ( sym: 267; act: -99 ),
- ( sym: 269; act: -99 ),
- { 295: }
- ( sym: 269; act: 306 ),
- { 296: }
- ( sym: 271; act: 307 ),
- ( sym: 304; act: 204 ),
- ( sym: 306; act: 205 ),
- ( sym: 307; act: 206 ),
- ( sym: 308; act: 207 ),
- ( sym: 309; act: 208 ),
- ( sym: 310; act: 209 ),
- ( sym: 311; act: 210 ),
- ( sym: 312; act: 211 ),
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- { 297: }
- { 298: }
- { 299: }
- ( sym: 268; act: 123 ),
- ( sym: 270; act: 276 ),
- ( sym: 267; act: -100 ),
- ( sym: 269; act: -100 ),
- { 300: }
- ( sym: 257; act: 180 ),
- ( sym: 266; act: 181 ),
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 273; act: -26 ),
- { 301: }
- ( sym: 269; act: 309 ),
- { 302: }
- { 303: }
- ( sym: 324; act: 149 ),
- ( sym: 325; act: 150 ),
- ( sym: 265; act: -156 ),
- ( sym: 266; act: -156 ),
- ( sym: 267; act: -156 ),
- ( sym: 268; act: -156 ),
- ( sym: 269; act: -156 ),
- ( sym: 270; act: -156 ),
- ( sym: 271; act: -156 ),
- ( sym: 272; act: -156 ),
- ( sym: 273; act: -156 ),
- ( sym: 291; act: -156 ),
- ( sym: 301; act: -156 ),
- ( sym: 304; act: -156 ),
- ( sym: 306; act: -156 ),
- ( sym: 307; act: -156 ),
- ( sym: 308; act: -156 ),
- ( sym: 309; act: -156 ),
- ( sym: 310; act: -156 ),
- ( sym: 311; act: -156 ),
- ( sym: 312; act: -156 ),
- ( sym: 313; act: -156 ),
- ( sym: 314; act: -156 ),
- ( sym: 315; act: -156 ),
- ( sym: 316; act: -156 ),
- ( sym: 317; act: -156 ),
- ( sym: 318; act: -156 ),
- ( sym: 319; act: -156 ),
- ( sym: 320; act: -156 ),
- ( sym: 321; act: -156 ),
- { 304: }
- ( sym: 313; act: 212 ),
- ( sym: 314; act: 213 ),
- ( sym: 315; act: 214 ),
- ( sym: 316; act: 215 ),
- ( sym: 317; act: 216 ),
- ( sym: 318; act: 217 ),
- ( sym: 319; act: 218 ),
- ( sym: 320; act: 219 ),
- ( sym: 321; act: 220 ),
- ( sym: 265; act: -140 ),
- ( sym: 266; act: -140 ),
- ( sym: 267; act: -140 ),
- ( sym: 268; act: -140 ),
- ( sym: 269; act: -140 ),
- ( sym: 270; act: -140 ),
- ( sym: 271; act: -140 ),
- ( sym: 272; act: -140 ),
- ( sym: 273; act: -140 ),
- ( sym: 291; act: -140 ),
- ( sym: 301; act: -140 ),
- ( sym: 304; act: -140 ),
- ( sym: 306; act: -140 ),
- ( sym: 307; act: -140 ),
- ( sym: 308; act: -140 ),
- ( sym: 309; act: -140 ),
- ( sym: 310; act: -140 ),
- ( sym: 311; act: -140 ),
- ( sym: 312; act: -140 ),
- ( sym: 324; act: -140 ),
- ( sym: 325; act: -140 ),
- { 305: }
- ( sym: 268; act: 111 ),
- ( sym: 277; act: 23 ),
- ( sym: 278; act: 112 ),
- ( sym: 279; act: 113 ),
- ( sym: 280; act: 24 ),
- ( sym: 281; act: 25 ),
- ( sym: 282; act: 26 ),
- ( sym: 283; act: 27 ),
- ( sym: 284; act: 28 ),
- ( sym: 285; act: 29 ),
- ( sym: 286; act: 30 ),
- ( sym: 314; act: 115 ),
- ( sym: 315; act: 116 ),
- ( sym: 316; act: 117 ),
- ( sym: 321; act: 118 ),
- ( sym: 327; act: 32 ),
- ( sym: 328; act: 33 ),
- ( sym: 329; act: 34 ),
- ( sym: 330; act: 35 ),
- ( sym: 331; act: 36 ),
- ( sym: 269; act: -171 ),
- { 306: }
- { 307: }
- { 308: }
- { 309: }
- ( sym: 266; act: 311 ),
- { 310: }
- ( sym: 269; act: 312 )
- { 311: }
- { 312: }
- );
- yyg : array [1..yyngotos] of YYARec = (
- { 0: }
- ( sym: -18; act: 1 ),
- ( sym: -8; act: 2 ),
- ( sym: -7; act: 3 ),
- ( sym: -6; act: 4 ),
- ( sym: -3; act: 5 ),
- ( sym: -2; act: 6 ),
- { 1: }
- { 2: }
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 18 ),
- ( sym: -11; act: 19 ),
- { 3: }
- { 4: }
- { 5: }
- ( sym: -18; act: 1 ),
- ( sym: -8; act: 2 ),
- ( sym: -7; act: 37 ),
- ( sym: -6; act: 38 ),
- { 6: }
- { 7: }
- ( sym: -5; act: 39 ),
- { 8: }
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 40 ),
- ( sym: -11; act: 41 ),
- { 9: }
- ( sym: -11; act: 43 ),
- { 10: }
- ( sym: -11; act: 44 ),
- { 11: }
- ( sym: -11; act: 45 ),
- { 12: }
- ( sym: -11; act: 46 ),
- { 13: }
- { 14: }
- { 15: }
- { 16: }
- { 17: }
- { 18: }
- ( sym: -9; act: 47 ),
- { 19: }
- { 20: }
- ( sym: -24; act: 55 ),
- ( sym: -11; act: 44 ),
- { 21: }
- ( sym: -24; act: 58 ),
- ( sym: -11; act: 45 ),
- { 22: }
- ( sym: -26; act: 59 ),
- ( sym: -11; act: 46 ),
- { 23: }
- { 24: }
- { 25: }
- ( sym: -29; act: 63 ),
- { 26: }
- { 27: }
- { 28: }
- { 29: }
- { 30: }
- { 31: }
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 66 ),
- ( sym: -11; act: 19 ),
- { 32: }
- ( sym: -29; act: 67 ),
- { 33: }
- { 34: }
- { 35: }
- { 36: }
- { 37: }
- { 38: }
- { 39: }
- { 40: }
- ( sym: -9; act: 70 ),
- { 41: }
- { 42: }
- ( sym: -24; act: 55 ),
- ( sym: -11; act: 73 ),
- { 43: }
- { 44: }
- ( sym: -24; act: 77 ),
- { 45: }
- ( sym: -24; act: 78 ),
- { 46: }
- ( sym: -26; act: 79 ),
- { 47: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 81 ),
- ( sym: -17; act: 82 ),
- ( sym: -11; act: 83 ),
- { 48: }
- { 49: }
- { 50: }
- { 51: }
- { 52: }
- { 53: }
- { 54: }
- { 55: }
- { 56: }
- ( sym: -5; act: 93 ),
- { 57: }
- ( sym: -29; act: 15 ),
- ( sym: -28; act: 94 ),
- ( sym: -27; act: 16 ),
- ( sym: -25; act: 95 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 96 ),
- ( sym: -11; act: 19 ),
- { 58: }
- { 59: }
- { 60: }
- ( sym: -5; act: 98 ),
- { 61: }
- ( sym: -40; act: 99 ),
- ( sym: -21; act: 100 ),
- ( sym: -11; act: 101 ),
- { 62: }
- { 63: }
- { 64: }
- { 65: }
- { 66: }
- { 67: }
- { 68: }
- { 69: }
- { 70: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 81 ),
- ( sym: -17; act: 103 ),
- ( sym: -11; act: 83 ),
- { 71: }
- ( sym: -9; act: 104 ),
- { 72: }
- { 73: }
- ( sym: -24; act: 77 ),
- ( sym: -11; act: 105 ),
- { 74: }
- ( sym: -40; act: 99 ),
- ( sym: -21; act: 106 ),
- ( sym: -11; act: 101 ),
- { 75: }
- { 76: }
- ( sym: -37; act: 107 ),
- ( sym: -29; act: 108 ),
- ( sym: -23; act: 109 ),
- ( sym: -11; act: 110 ),
- { 77: }
- { 78: }
- { 79: }
- { 80: }
- { 81: }
- ( sym: -34; act: 122 ),
- { 82: }
- ( sym: -15; act: 125 ),
- ( sym: -10; act: 126 ),
- { 83: }
- ( sym: -33; act: 130 ),
- { 84: }
- ( sym: -5; act: 132 ),
- { 85: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 133 ),
- ( sym: -11; act: 83 ),
- { 86: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 134 ),
- ( sym: -11; act: 83 ),
- { 87: }
- { 88: }
- { 89: }
- { 90: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 135 ),
- ( sym: -11; act: 83 ),
- { 91: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 136 ),
- ( sym: -11; act: 83 ),
- { 92: }
- { 93: }
- { 94: }
- ( sym: -29; act: 15 ),
- ( sym: -28; act: 94 ),
- ( sym: -27; act: 16 ),
- ( sym: -25; act: 138 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 96 ),
- ( sym: -11; act: 19 ),
- { 95: }
- { 96: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 81 ),
- ( sym: -17; act: 140 ),
- ( sym: -11; act: 83 ),
- { 97: }
- { 98: }
- { 99: }
- { 100: }
- { 101: }
- { 102: }
- { 103: }
- { 104: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 146 ),
- ( sym: -11; act: 83 ),
- { 105: }
- { 106: }
- { 107: }
- { 108: }
- { 109: }
- { 110: }
- { 111: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 155 ),
- ( sym: -29; act: 156 ),
- ( sym: -27; act: 16 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 157 ),
- ( sym: -13; act: 158 ),
- ( sym: -11; act: 159 ),
- { 112: }
- { 113: }
- { 114: }
- { 115: }
- ( sym: -37; act: 161 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 116: }
- ( sym: -37; act: 162 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 117: }
- ( sym: -37; act: 163 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 118: }
- ( sym: -37; act: 164 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 119: }
- { 120: }
- { 121: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 165 ),
- ( sym: -11; act: 83 ),
- { 122: }
- { 123: }
- ( sym: -30; act: 166 ),
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -20; act: 167 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 168 ),
- ( sym: -11; act: 19 ),
- { 124: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 173 ),
- ( sym: -11; act: 110 ),
- { 125: }
- { 126: }
- { 127: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 176 ),
- ( sym: -11; act: 83 ),
- { 128: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -14; act: 177 ),
- ( sym: -13; act: 178 ),
- ( sym: -12; act: 179 ),
- ( sym: -11; act: 110 ),
- { 129: }
- { 130: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 183 ),
- ( sym: -11; act: 110 ),
- { 131: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 184 ),
- ( sym: -11; act: 110 ),
- { 132: }
- { 133: }
- ( sym: -34; act: 122 ),
- { 134: }
- ( sym: -34; act: 122 ),
- { 135: }
- ( sym: -34; act: 122 ),
- { 136: }
- ( sym: -34; act: 122 ),
- { 137: }
- { 138: }
- { 139: }
- { 140: }
- { 141: }
- { 142: }
- ( sym: -40; act: 99 ),
- ( sym: -21; act: 188 ),
- ( sym: -11; act: 101 ),
- { 143: }
- { 144: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 189 ),
- ( sym: -11; act: 110 ),
- { 145: }
- { 146: }
- ( sym: -34; act: 122 ),
- { 147: }
- { 148: }
- ( sym: -22; act: 191 ),
- ( sym: -4; act: 192 ),
- { 149: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 194 ),
- ( sym: -11; act: 110 ),
- { 150: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 195 ),
- ( sym: -11; act: 110 ),
- { 151: }
- { 152: }
- ( sym: -41; act: 196 ),
- ( sym: -39; act: 197 ),
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 198 ),
- ( sym: -11; act: 110 ),
- { 153: }
- ( sym: -41; act: 196 ),
- ( sym: -39; act: 199 ),
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 198 ),
- ( sym: -11; act: 110 ),
- { 154: }
- { 155: }
- { 156: }
- { 157: }
- ( sym: -32; act: 201 ),
- { 158: }
- { 159: }
- { 160: }
- ( sym: -37; act: 222 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 161: }
- { 162: }
- { 163: }
- { 164: }
- { 165: }
- ( sym: -34; act: 122 ),
- { 166: }
- { 167: }
- { 168: }
- ( sym: -32; act: 225 ),
- ( sym: -31; act: 226 ),
- ( sym: -19; act: 227 ),
- ( sym: -11; act: 83 ),
- { 169: }
- { 170: }
- { 171: }
- { 172: }
- { 173: }
- { 174: }
- { 175: }
- { 176: }
- ( sym: -34; act: 122 ),
- { 177: }
- { 178: }
- { 179: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -14; act: 235 ),
- ( sym: -13; act: 178 ),
- ( sym: -12; act: 179 ),
- ( sym: -11; act: 110 ),
- { 180: }
- { 181: }
- { 182: }
- ( sym: -11; act: 237 ),
- { 183: }
- { 184: }
- { 185: }
- ( sym: -32; act: 80 ),
- ( sym: -19; act: 81 ),
- ( sym: -17; act: 238 ),
- ( sym: -11; act: 83 ),
- { 186: }
- { 187: }
- { 188: }
- { 189: }
- { 190: }
- ( sym: -4; act: 239 ),
- { 191: }
- { 192: }
- { 193: }
- ( sym: -37; act: 107 ),
- ( sym: -29; act: 108 ),
- ( sym: -23; act: 243 ),
- ( sym: -11; act: 110 ),
- { 194: }
- { 195: }
- { 196: }
- { 197: }
- { 198: }
- { 199: }
- { 200: }
- { 201: }
- { 202: }
- ( sym: -37; act: 248 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 203: }
- { 204: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 250 ),
- ( sym: -11; act: 110 ),
- { 205: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 251 ),
- ( sym: -11; act: 110 ),
- { 206: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 252 ),
- ( sym: -11; act: 110 ),
- { 207: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 253 ),
- ( sym: -11; act: 110 ),
- { 208: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 254 ),
- ( sym: -11; act: 110 ),
- { 209: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 255 ),
- ( sym: -11; act: 110 ),
- { 210: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 256 ),
- ( sym: -11; act: 110 ),
- { 211: }
- ( sym: -37; act: 154 ),
- ( sym: -36; act: 257 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 258 ),
- ( sym: -11; act: 110 ),
- { 212: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 259 ),
- ( sym: -11; act: 110 ),
- { 213: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 260 ),
- ( sym: -11; act: 110 ),
- { 214: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 261 ),
- ( sym: -11; act: 110 ),
- { 215: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 262 ),
- ( sym: -11; act: 110 ),
- { 216: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 263 ),
- ( sym: -11; act: 110 ),
- { 217: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 264 ),
- ( sym: -11; act: 110 ),
- { 218: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 265 ),
- ( sym: -11; act: 110 ),
- { 219: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 266 ),
- ( sym: -11; act: 110 ),
- { 220: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 267 ),
- ( sym: -11; act: 110 ),
- { 221: }
- ( sym: -38; act: 268 ),
- ( sym: -37; act: 269 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 222: }
- { 223: }
- ( sym: -30; act: 166 ),
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -20; act: 271 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 168 ),
- ( sym: -11; act: 19 ),
- { 224: }
- { 225: }
- { 226: }
- ( sym: -34; act: 273 ),
- { 227: }
- ( sym: -34; act: 122 ),
- { 228: }
- ( sym: -32; act: 225 ),
- ( sym: -31; act: 277 ),
- ( sym: -19; act: 278 ),
- ( sym: -11; act: 83 ),
- { 229: }
- ( sym: -32; act: 225 ),
- ( sym: -31; act: 280 ),
- ( sym: -19; act: 281 ),
- ( sym: -11; act: 83 ),
- { 230: }
- ( sym: -32; act: 225 ),
- ( sym: -31; act: 282 ),
- ( sym: -19; act: 283 ),
- ( sym: -11; act: 83 ),
- { 231: }
- { 232: }
- { 233: }
- { 234: }
- { 235: }
- { 236: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 284 ),
- ( sym: -11; act: 110 ),
- { 237: }
- { 238: }
- { 239: }
- { 240: }
- { 241: }
- { 242: }
- ( sym: -37; act: 107 ),
- ( sym: -29; act: 108 ),
- ( sym: -23; act: 287 ),
- ( sym: -11; act: 110 ),
- { 243: }
- { 244: }
- ( sym: -41; act: 196 ),
- ( sym: -39; act: 288 ),
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 198 ),
- ( sym: -11; act: 110 ),
- { 245: }
- { 246: }
- { 247: }
- { 248: }
- { 249: }
- ( sym: -37; act: 290 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 250: }
- { 251: }
- { 252: }
- { 253: }
- { 254: }
- { 255: }
- { 256: }
- { 257: }
- { 258: }
- { 259: }
- { 260: }
- { 261: }
- { 262: }
- { 263: }
- { 264: }
- { 265: }
- { 266: }
- { 267: }
- { 268: }
- { 269: }
- { 270: }
- ( sym: -4; act: 292 ),
- { 271: }
- { 272: }
- ( sym: -32; act: 225 ),
- ( sym: -31; act: 293 ),
- ( sym: -19; act: 294 ),
- ( sym: -11; act: 83 ),
- { 273: }
- { 274: }
- ( sym: -30; act: 166 ),
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -20; act: 295 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 168 ),
- ( sym: -11; act: 19 ),
- { 275: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 296 ),
- ( sym: -11; act: 110 ),
- { 276: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 173 ),
- ( sym: -11; act: 110 ),
- { 277: }
- ( sym: -34; act: 273 ),
- { 278: }
- ( sym: -34; act: 122 ),
- { 279: }
- ( sym: -32; act: 225 ),
- ( sym: -31; act: 282 ),
- ( sym: -19; act: 299 ),
- ( sym: -11; act: 83 ),
- { 280: }
- ( sym: -34; act: 273 ),
- { 281: }
- ( sym: -34; act: 122 ),
- { 282: }
- ( sym: -34; act: 273 ),
- { 283: }
- ( sym: -34; act: 122 ),
- { 284: }
- { 285: }
- { 286: }
- ( sym: -30; act: 166 ),
- ( sym: -29; act: 15 ),
- ( sym: -27; act: 16 ),
- ( sym: -20; act: 301 ),
- ( sym: -18; act: 17 ),
- ( sym: -16; act: 168 ),
- ( sym: -11; act: 19 ),
- { 287: }
- { 288: }
- { 289: }
- ( sym: -37; act: 303 ),
- ( sym: -29; act: 108 ),
- ( sym: -11; act: 110 ),
- { 290: }
- { 291: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 304 ),
- ( sym: -11; act: 110 ),
- { 292: }
- { 293: }
- ( sym: -34; act: 273 ),
- { 294: }
- ( sym: -34; act: 122 ),
- { 295: }
- { 296: }
- { 297: }
- { 298: }
- { 299: }
- ( sym: -34; act: 122 ),
- { 300: }
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -14; act: 308 ),
- ( sym: -13; act: 178 ),
- ( sym: -12; act: 179 ),
- ( sym: -11; act: 110 ),
- { 301: }
- { 302: }
- { 303: }
- { 304: }
- { 305: }
- ( sym: -41; act: 196 ),
- ( sym: -39; act: 310 ),
- ( sym: -37; act: 154 ),
- ( sym: -35; act: 172 ),
- ( sym: -29; act: 108 ),
- ( sym: -13; act: 198 ),
- ( sym: -11; act: 110 )
- { 306: }
- { 307: }
- { 308: }
- { 309: }
- { 310: }
- { 311: }
- { 312: }
- );
- yyd : array [0..yynstates-1] of Integer = (
- { 0: } 0,
- { 1: } 0,
- { 2: } 0,
- { 3: } -8,
- { 4: } -7,
- { 5: } 0,
- { 6: } 0,
- { 7: } -4,
- { 8: } 0,
- { 9: } 0,
- { 10: } 0,
- { 11: } 0,
- { 12: } 0,
- { 13: } -9,
- { 14: } -30,
- { 15: } -82,
- { 16: } -60,
- { 17: } -59,
- { 18: } 0,
- { 19: } -83,
- { 20: } 0,
- { 21: } 0,
- { 22: } 0,
- { 23: } -64,
- { 24: } 0,
- { 25: } 0,
- { 26: } 0,
- { 27: } -67,
- { 28: } -78,
- { 29: } -80,
- { 30: } -79,
- { 31: } 0,
- { 32: } 0,
- { 33: } -74,
- { 34: } -75,
- { 35: } -76,
- { 36: } -77,
- { 37: } -6,
- { 38: } -5,
- { 39: } 0,
- { 40: } 0,
- { 41: } 0,
- { 42: } 0,
- { 43: } 0,
- { 44: } 0,
- { 45: } 0,
- { 46: } 0,
- { 47: } 0,
- { 48: } -11,
- { 49: } -12,
- { 50: } -13,
- { 51: } -14,
- { 52: } -15,
- { 53: } -16,
- { 54: } -17,
- { 55: } 0,
- { 56: } -4,
- { 57: } 0,
- { 58: } 0,
- { 59: } -58,
- { 60: } -4,
- { 61: } 0,
- { 62: } -73,
- { 63: } -66,
- { 64: } 0,
- { 65: } -69,
- { 66: } -53,
- { 67: } -65,
- { 68: } -35,
- { 69: } -40,
- { 70: } 0,
- { 71: } 0,
- { 72: } -34,
- { 73: } 0,
- { 74: } 0,
- { 75: } -38,
- { 76: } 0,
- { 77: } 0,
- { 78: } 0,
- { 79: } -51,
- { 80: } 0,
- { 81: } 0,
- { 82: } 0,
- { 83: } 0,
- { 84: } -4,
- { 85: } 0,
- { 86: } 0,
- { 87: } -95,
- { 88: } -97,
- { 89: } -96,
- { 90: } 0,
- { 91: } 0,
- { 92: } -56,
- { 93: } 0,
- { 94: } 0,
- { 95: } 0,
- { 96: } 0,
- { 97: } -54,
- { 98: } 0,
- { 99: } 0,
- { 100: } 0,
- { 101: } 0,
- { 102: } -71,
- { 103: } 0,
- { 104: } 0,
- { 105: } 0,
- { 106: } 0,
- { 107: } 0,
- { 108: } -144,
- { 109: } 0,
- { 110: } 0,
- { 111: } 0,
- { 112: } -146,
- { 113: } -145,
- { 114: } -37,
- { 115: } 0,
- { 116: } 0,
- { 117: } 0,
- { 118: } 0,
- { 119: } -45,
- { 120: } -47,
- { 121: } 0,
- { 122: } -106,
- { 123: } 0,
- { 124: } 0,
- { 125: } -28,
- { 126: } 0,
- { 127: } 0,
- { 128: } 0,
- { 129: } 0,
- { 130: } 0,
- { 131: } 0,
- { 132: } 0,
- { 133: } 0,
- { 134: } 0,
- { 135: } 0,
- { 136: } 0,
- { 137: } -42,
- { 138: } -61,
- { 139: } -41,
- { 140: } 0,
- { 141: } -44,
- { 142: } 0,
- { 143: } -43,
- { 144: } 0,
- { 145: } -33,
- { 146: } 0,
- { 147: } -31,
- { 148: } 0,
- { 149: } 0,
- { 150: } 0,
- { 151: } -39,
- { 152: } 0,
- { 153: } 0,
- { 154: } 0,
- { 155: } 0,
- { 156: } 0,
- { 157: } 0,
- { 158: } 0,
- { 159: } 0,
- { 160: } 0,
- { 161: } 0,
- { 162: } 0,
- { 163: } 0,
- { 164: } 0,
- { 165: } 0,
- { 166: } 0,
- { 167: } 0,
- { 168: } 0,
- { 169: } -110,
- { 170: } 0,
- { 171: } -93,
- { 172: } -121,
- { 173: } 0,
- { 174: } -108,
- { 175: } -29,
- { 176: } 0,
- { 177: } 0,
- { 178: } 0,
- { 179: } 0,
- { 180: } 0,
- { 181: } -25,
- { 182: } 0,
- { 183: } 0,
- { 184: } 0,
- { 185: } 0,
- { 186: } -109,
- { 187: } -63,
- { 188: } -161,
- { 189: } 0,
- { 190: } 0,
- { 191: } 0,
- { 192: } 0,
- { 193: } 0,
- { 194: } -147,
- { 195: } -148,
- { 196: } 0,
- { 197: } 0,
- { 198: } 0,
- { 199: } 0,
- { 200: } -158,
- { 201: } 0,
- { 202: } 0,
- { 203: } 0,
- { 204: } 0,
- { 205: } 0,
- { 206: } 0,
- { 207: } 0,
- { 208: } 0,
- { 209: } 0,
- { 210: } 0,
- { 211: } 0,
- { 212: } 0,
- { 213: } 0,
- { 214: } 0,
- { 215: } 0,
- { 216: } 0,
- { 217: } 0,
- { 218: } 0,
- { 219: } 0,
- { 220: } 0,
- { 221: } 0,
- { 222: } 0,
- { 223: } 0,
- { 224: } -105,
- { 225: } 0,
- { 226: } 0,
- { 227: } 0,
- { 228: } 0,
- { 229: } 0,
- { 230: } 0,
- { 231: } -111,
- { 232: } -107,
- { 233: } -27,
- { 234: } -21,
- { 235: } -23,
- { 236: } 0,
- { 237: } 0,
- { 238: } -85,
- { 239: } 0,
- { 240: } -2,
- { 241: } -36,
- { 242: } 0,
- { 243: } -167,
- { 244: } 0,
- { 245: } -157,
- { 246: } -160,
- { 247: } 0,
- { 248: } 0,
- { 249: } 0,
- { 250: } 0,
- { 251: } 0,
- { 252: } 0,
- { 253: } 0,
- { 254: } 0,
- { 255: } 0,
- { 256: } 0,
- { 257: } -138,
- { 258: } 0,
- { 259: } 0,
- { 260: } 0,
- { 261: } 0,
- { 262: } 0,
- { 263: } 0,
- { 264: } 0,
- { 265: } 0,
- { 266: } 0,
- { 267: } 0,
- { 268: } -153,
- { 269: } 0,
- { 270: } 0,
- { 271: } -92,
- { 272: } 0,
- { 273: } -116,
- { 274: } 0,
- { 275: } 0,
- { 276: } 0,
- { 277: } 0,
- { 278: } 0,
- { 279: } 0,
- { 280: } 0,
- { 281: } 0,
- { 282: } 0,
- { 283: } 0,
- { 284: } 0,
- { 285: } -19,
- { 286: } 0,
- { 287: } 0,
- { 288: } -169,
- { 289: } 0,
- { 290: } 0,
- { 291: } 0,
- { 292: } 0,
- { 293: } 0,
- { 294: } 0,
- { 295: } 0,
- { 296: } 0,
- { 297: } -108,
- { 298: } -119,
- { 299: } 0,
- { 300: } 0,
- { 301: } 0,
- { 302: } -168,
- { 303: } 0,
- { 304: } 0,
- { 305: } 0,
- { 306: } -115,
- { 307: } -117,
- { 308: } -22,
- { 309: } 0,
- { 310: } 0,
- { 311: } -32,
- { 312: } -159
- );
- yyal : array [0..yynstates-1] of Integer = (
- { 0: } 1,
- { 1: } 22,
- { 2: } 23,
- { 3: } 40,
- { 4: } 40,
- { 5: } 40,
- { 6: } 62,
- { 7: } 63,
- { 8: } 63,
- { 9: } 80,
- { 10: } 81,
- { 11: } 82,
- { 12: } 83,
- { 13: } 84,
- { 14: } 84,
- { 15: } 84,
- { 16: } 84,
- { 17: } 84,
- { 18: } 84,
- { 19: } 100,
- { 20: } 100,
- { 21: } 103,
- { 22: } 106,
- { 23: } 109,
- { 24: } 109,
- { 25: } 153,
- { 26: } 208,
- { 27: } 253,
- { 28: } 253,
- { 29: } 253,
- { 30: } 253,
- { 31: } 253,
- { 32: } 270,
- { 33: } 282,
- { 34: } 282,
- { 35: } 282,
- { 36: } 282,
- { 37: } 282,
- { 38: } 282,
- { 39: } 282,
- { 40: } 284,
- { 41: } 300,
- { 42: } 317,
- { 43: } 320,
- { 44: } 323,
- { 45: } 344,
- { 46: } 365,
- { 47: } 386,
- { 48: } 395,
- { 49: } 395,
- { 50: } 395,
- { 51: } 395,
- { 52: } 395,
- { 53: } 395,
- { 54: } 395,
- { 55: } 395,
- { 56: } 415,
- { 57: } 415,
- { 58: } 432,
- { 59: } 452,
- { 60: } 452,
- { 61: } 452,
- { 62: } 454,
- { 63: } 454,
- { 64: } 454,
- { 65: } 498,
- { 66: } 498,
- { 67: } 498,
- { 68: } 498,
- { 69: } 498,
- { 70: } 498,
- { 71: } 507,
- { 72: } 522,
- { 73: } 522,
- { 74: } 539,
- { 75: } 541,
- { 76: } 541,
- { 77: } 562,
- { 78: } 583,
- { 79: } 604,
- { 80: } 604,
- { 81: } 605,
- { 82: } 611,
- { 83: } 615,
- { 84: } 623,
- { 85: } 623,
- { 86: } 631,
- { 87: } 639,
- { 88: } 639,
- { 89: } 639,
- { 90: } 639,
- { 91: } 647,
- { 92: } 655,
- { 93: } 655,
- { 94: } 656,
- { 95: } 674,
- { 96: } 675,
- { 97: } 684,
- { 98: } 684,
- { 99: } 685,
- { 100: } 688,
- { 101: } 689,
- { 102: } 693,
- { 103: } 693,
- { 104: } 695,
- { 105: } 703,
- { 106: } 704,
- { 107: } 705,
- { 108: } 709,
- { 109: } 709,
- { 110: } 710,
- { 111: } 740,
- { 112: } 765,
- { 113: } 765,
- { 114: } 765,
- { 115: } 765,
- { 116: } 785,
- { 117: } 805,
- { 118: } 825,
- { 119: } 845,
- { 120: } 845,
- { 121: } 845,
- { 122: } 853,
- { 123: } 853,
- { 124: } 872,
- { 125: } 893,
- { 126: } 893,
- { 127: } 894,
- { 128: } 902,
- { 129: } 925,
- { 130: } 926,
- { 131: } 946,
- { 132: } 966,
- { 133: } 970,
- { 134: } 973,
- { 135: } 980,
- { 136: } 987,
- { 137: } 994,
- { 138: } 994,
- { 139: } 994,
- { 140: } 994,
- { 141: } 996,
- { 142: } 996,
- { 143: } 999,
- { 144: } 999,
- { 145: } 1019,
- { 146: } 1019,
- { 147: } 1022,
- { 148: } 1022,
- { 149: } 1024,
- { 150: } 1044,
- { 151: } 1064,
- { 152: } 1064,
- { 153: } 1085,
- { 154: } 1106,
- { 155: } 1136,
- { 156: } 1154,
- { 157: } 1177,
- { 158: } 1182,
- { 159: } 1199,
- { 160: } 1224,
- { 161: } 1244,
- { 162: } 1274,
- { 163: } 1304,
- { 164: } 1334,
- { 165: } 1364,
- { 166: } 1371,
- { 167: } 1373,
- { 168: } 1374,
- { 169: } 1385,
- { 170: } 1385,
- { 171: } 1396,
- { 172: } 1396,
- { 173: } 1396,
- { 174: } 1414,
- { 175: } 1414,
- { 176: } 1414,
- { 177: } 1420,
- { 178: } 1421,
- { 179: } 1439,
- { 180: } 1462,
- { 181: } 1463,
- { 182: } 1463,
- { 183: } 1464,
- { 184: } 1488,
- { 185: } 1512,
- { 186: } 1521,
- { 187: } 1521,
- { 188: } 1521,
- { 189: } 1521,
- { 190: } 1541,
- { 191: } 1543,
- { 192: } 1544,
- { 193: } 1545,
- { 194: } 1565,
- { 195: } 1565,
- { 196: } 1565,
- { 197: } 1568,
- { 198: } 1569,
- { 199: } 1589,
- { 200: } 1590,
- { 201: } 1590,
- { 202: } 1591,
- { 203: } 1611,
- { 204: } 1612,
- { 205: } 1632,
- { 206: } 1652,
- { 207: } 1672,
- { 208: } 1692,
- { 209: } 1712,
- { 210: } 1732,
- { 211: } 1752,
- { 212: } 1772,
- { 213: } 1792,
- { 214: } 1812,
- { 215: } 1832,
- { 216: } 1852,
- { 217: } 1872,
- { 218: } 1892,
- { 219: } 1912,
- { 220: } 1932,
- { 221: } 1952,
- { 222: } 1997,
- { 223: } 2000,
- { 224: } 2019,
- { 225: } 2019,
- { 226: } 2020,
- { 227: } 2024,
- { 228: } 2028,
- { 229: } 2038,
- { 230: } 2049,
- { 231: } 2060,
- { 232: } 2060,
- { 233: } 2060,
- { 234: } 2060,
- { 235: } 2060,
- { 236: } 2060,
- { 237: } 2080,
- { 238: } 2081,
- { 239: } 2081,
- { 240: } 2082,
- { 241: } 2082,
- { 242: } 2082,
- { 243: } 2102,
- { 244: } 2102,
- { 245: } 2124,
- { 246: } 2124,
- { 247: } 2124,
- { 248: } 2125,
- { 249: } 2155,
- { 250: } 2175,
- { 251: } 2205,
- { 252: } 2235,
- { 253: } 2265,
- { 254: } 2295,
- { 255: } 2325,
- { 256: } 2355,
- { 257: } 2385,
- { 258: } 2385,
- { 259: } 2403,
- { 260: } 2433,
- { 261: } 2463,
- { 262: } 2493,
- { 263: } 2523,
- { 264: } 2553,
- { 265: } 2583,
- { 266: } 2613,
- { 267: } 2643,
- { 268: } 2673,
- { 269: } 2673,
- { 270: } 2703,
- { 271: } 2705,
- { 272: } 2705,
- { 273: } 2716,
- { 274: } 2716,
- { 275: } 2735,
- { 276: } 2755,
- { 277: } 2776,
- { 278: } 2779,
- { 279: } 2782,
- { 280: } 2793,
- { 281: } 2797,
- { 282: } 2801,
- { 283: } 2805,
- { 284: } 2809,
- { 285: } 2827,
- { 286: } 2827,
- { 287: } 2846,
- { 288: } 2847,
- { 289: } 2847,
- { 290: } 2867,
- { 291: } 2897,
- { 292: } 2917,
- { 293: } 2918,
- { 294: } 2922,
- { 295: } 2926,
- { 296: } 2927,
- { 297: } 2945,
- { 298: } 2945,
- { 299: } 2945,
- { 300: } 2949,
- { 301: } 2972,
- { 302: } 2973,
- { 303: } 2973,
- { 304: } 3003,
- { 305: } 3033,
- { 306: } 3054,
- { 307: } 3054,
- { 308: } 3054,
- { 309: } 3054,
- { 310: } 3055,
- { 311: } 3056,
- { 312: } 3056
- );
- yyah : array [0..yynstates-1] of Integer = (
- { 0: } 21,
- { 1: } 22,
- { 2: } 39,
- { 3: } 39,
- { 4: } 39,
- { 5: } 61,
- { 6: } 62,
- { 7: } 62,
- { 8: } 79,
- { 9: } 80,
- { 10: } 81,
- { 11: } 82,
- { 12: } 83,
- { 13: } 83,
- { 14: } 83,
- { 15: } 83,
- { 16: } 83,
- { 17: } 83,
- { 18: } 99,
- { 19: } 99,
- { 20: } 102,
- { 21: } 105,
- { 22: } 108,
- { 23: } 108,
- { 24: } 152,
- { 25: } 207,
- { 26: } 252,
- { 27: } 252,
- { 28: } 252,
- { 29: } 252,
- { 30: } 252,
- { 31: } 269,
- { 32: } 281,
- { 33: } 281,
- { 34: } 281,
- { 35: } 281,
- { 36: } 281,
- { 37: } 281,
- { 38: } 281,
- { 39: } 283,
- { 40: } 299,
- { 41: } 316,
- { 42: } 319,
- { 43: } 322,
- { 44: } 343,
- { 45: } 364,
- { 46: } 385,
- { 47: } 394,
- { 48: } 394,
- { 49: } 394,
- { 50: } 394,
- { 51: } 394,
- { 52: } 394,
- { 53: } 394,
- { 54: } 394,
- { 55: } 414,
- { 56: } 414,
- { 57: } 431,
- { 58: } 451,
- { 59: } 451,
- { 60: } 451,
- { 61: } 453,
- { 62: } 453,
- { 63: } 453,
- { 64: } 497,
- { 65: } 497,
- { 66: } 497,
- { 67: } 497,
- { 68: } 497,
- { 69: } 497,
- { 70: } 506,
- { 71: } 521,
- { 72: } 521,
- { 73: } 538,
- { 74: } 540,
- { 75: } 540,
- { 76: } 561,
- { 77: } 582,
- { 78: } 603,
- { 79: } 603,
- { 80: } 604,
- { 81: } 610,
- { 82: } 614,
- { 83: } 622,
- { 84: } 622,
- { 85: } 630,
- { 86: } 638,
- { 87: } 638,
- { 88: } 638,
- { 89: } 638,
- { 90: } 646,
- { 91: } 654,
- { 92: } 654,
- { 93: } 655,
- { 94: } 673,
- { 95: } 674,
- { 96: } 683,
- { 97: } 683,
- { 98: } 684,
- { 99: } 687,
- { 100: } 688,
- { 101: } 692,
- { 102: } 692,
- { 103: } 694,
- { 104: } 702,
- { 105: } 703,
- { 106: } 704,
- { 107: } 708,
- { 108: } 708,
- { 109: } 709,
- { 110: } 739,
- { 111: } 764,
- { 112: } 764,
- { 113: } 764,
- { 114: } 764,
- { 115: } 784,
- { 116: } 804,
- { 117: } 824,
- { 118: } 844,
- { 119: } 844,
- { 120: } 844,
- { 121: } 852,
- { 122: } 852,
- { 123: } 871,
- { 124: } 892,
- { 125: } 892,
- { 126: } 893,
- { 127: } 901,
- { 128: } 924,
- { 129: } 925,
- { 130: } 945,
- { 131: } 965,
- { 132: } 969,
- { 133: } 972,
- { 134: } 979,
- { 135: } 986,
- { 136: } 993,
- { 137: } 993,
- { 138: } 993,
- { 139: } 993,
- { 140: } 995,
- { 141: } 995,
- { 142: } 998,
- { 143: } 998,
- { 144: } 1018,
- { 145: } 1018,
- { 146: } 1021,
- { 147: } 1021,
- { 148: } 1023,
- { 149: } 1043,
- { 150: } 1063,
- { 151: } 1063,
- { 152: } 1084,
- { 153: } 1105,
- { 154: } 1135,
- { 155: } 1153,
- { 156: } 1176,
- { 157: } 1181,
- { 158: } 1198,
- { 159: } 1223,
- { 160: } 1243,
- { 161: } 1273,
- { 162: } 1303,
- { 163: } 1333,
- { 164: } 1363,
- { 165: } 1370,
- { 166: } 1372,
- { 167: } 1373,
- { 168: } 1384,
- { 169: } 1384,
- { 170: } 1395,
- { 171: } 1395,
- { 172: } 1395,
- { 173: } 1413,
- { 174: } 1413,
- { 175: } 1413,
- { 176: } 1419,
- { 177: } 1420,
- { 178: } 1438,
- { 179: } 1461,
- { 180: } 1462,
- { 181: } 1462,
- { 182: } 1463,
- { 183: } 1487,
- { 184: } 1511,
- { 185: } 1520,
- { 186: } 1520,
- { 187: } 1520,
- { 188: } 1520,
- { 189: } 1540,
- { 190: } 1542,
- { 191: } 1543,
- { 192: } 1544,
- { 193: } 1564,
- { 194: } 1564,
- { 195: } 1564,
- { 196: } 1567,
- { 197: } 1568,
- { 198: } 1588,
- { 199: } 1589,
- { 200: } 1589,
- { 201: } 1590,
- { 202: } 1610,
- { 203: } 1611,
- { 204: } 1631,
- { 205: } 1651,
- { 206: } 1671,
- { 207: } 1691,
- { 208: } 1711,
- { 209: } 1731,
- { 210: } 1751,
- { 211: } 1771,
- { 212: } 1791,
- { 213: } 1811,
- { 214: } 1831,
- { 215: } 1851,
- { 216: } 1871,
- { 217: } 1891,
- { 218: } 1911,
- { 219: } 1931,
- { 220: } 1951,
- { 221: } 1996,
- { 222: } 1999,
- { 223: } 2018,
- { 224: } 2018,
- { 225: } 2019,
- { 226: } 2023,
- { 227: } 2027,
- { 228: } 2037,
- { 229: } 2048,
- { 230: } 2059,
- { 231: } 2059,
- { 232: } 2059,
- { 233: } 2059,
- { 234: } 2059,
- { 235: } 2059,
- { 236: } 2079,
- { 237: } 2080,
- { 238: } 2080,
- { 239: } 2081,
- { 240: } 2081,
- { 241: } 2081,
- { 242: } 2101,
- { 243: } 2101,
- { 244: } 2123,
- { 245: } 2123,
- { 246: } 2123,
- { 247: } 2124,
- { 248: } 2154,
- { 249: } 2174,
- { 250: } 2204,
- { 251: } 2234,
- { 252: } 2264,
- { 253: } 2294,
- { 254: } 2324,
- { 255: } 2354,
- { 256: } 2384,
- { 257: } 2384,
- { 258: } 2402,
- { 259: } 2432,
- { 260: } 2462,
- { 261: } 2492,
- { 262: } 2522,
- { 263: } 2552,
- { 264: } 2582,
- { 265: } 2612,
- { 266: } 2642,
- { 267: } 2672,
- { 268: } 2672,
- { 269: } 2702,
- { 270: } 2704,
- { 271: } 2704,
- { 272: } 2715,
- { 273: } 2715,
- { 274: } 2734,
- { 275: } 2754,
- { 276: } 2775,
- { 277: } 2778,
- { 278: } 2781,
- { 279: } 2792,
- { 280: } 2796,
- { 281: } 2800,
- { 282: } 2804,
- { 283: } 2808,
- { 284: } 2826,
- { 285: } 2826,
- { 286: } 2845,
- { 287: } 2846,
- { 288: } 2846,
- { 289: } 2866,
- { 290: } 2896,
- { 291: } 2916,
- { 292: } 2917,
- { 293: } 2921,
- { 294: } 2925,
- { 295: } 2926,
- { 296: } 2944,
- { 297: } 2944,
- { 298: } 2944,
- { 299: } 2948,
- { 300: } 2971,
- { 301: } 2972,
- { 302: } 2972,
- { 303: } 3002,
- { 304: } 3032,
- { 305: } 3053,
- { 306: } 3053,
- { 307: } 3053,
- { 308: } 3053,
- { 309: } 3054,
- { 310: } 3055,
- { 311: } 3055,
- { 312: } 3055
- );
- yygl : array [0..yynstates-1] of Integer = (
- { 0: } 1,
- { 1: } 7,
- { 2: } 7,
- { 3: } 12,
- { 4: } 12,
- { 5: } 12,
- { 6: } 16,
- { 7: } 16,
- { 8: } 17,
- { 9: } 22,
- { 10: } 23,
- { 11: } 24,
- { 12: } 25,
- { 13: } 26,
- { 14: } 26,
- { 15: } 26,
- { 16: } 26,
- { 17: } 26,
- { 18: } 26,
- { 19: } 27,
- { 20: } 27,
- { 21: } 29,
- { 22: } 31,
- { 23: } 33,
- { 24: } 33,
- { 25: } 33,
- { 26: } 34,
- { 27: } 34,
- { 28: } 34,
- { 29: } 34,
- { 30: } 34,
- { 31: } 34,
- { 32: } 39,
- { 33: } 40,
- { 34: } 40,
- { 35: } 40,
- { 36: } 40,
- { 37: } 40,
- { 38: } 40,
- { 39: } 40,
- { 40: } 40,
- { 41: } 41,
- { 42: } 41,
- { 43: } 43,
- { 44: } 43,
- { 45: } 44,
- { 46: } 45,
- { 47: } 46,
- { 48: } 50,
- { 49: } 50,
- { 50: } 50,
- { 51: } 50,
- { 52: } 50,
- { 53: } 50,
- { 54: } 50,
- { 55: } 50,
- { 56: } 50,
- { 57: } 51,
- { 58: } 58,
- { 59: } 58,
- { 60: } 58,
- { 61: } 59,
- { 62: } 62,
- { 63: } 62,
- { 64: } 62,
- { 65: } 62,
- { 66: } 62,
- { 67: } 62,
- { 68: } 62,
- { 69: } 62,
- { 70: } 62,
- { 71: } 66,
- { 72: } 67,
- { 73: } 67,
- { 74: } 69,
- { 75: } 72,
- { 76: } 72,
- { 77: } 76,
- { 78: } 76,
- { 79: } 76,
- { 80: } 76,
- { 81: } 76,
- { 82: } 77,
- { 83: } 79,
- { 84: } 80,
- { 85: } 81,
- { 86: } 84,
- { 87: } 87,
- { 88: } 87,
- { 89: } 87,
- { 90: } 87,
- { 91: } 90,
- { 92: } 93,
- { 93: } 93,
- { 94: } 93,
- { 95: } 100,
- { 96: } 100,
- { 97: } 104,
- { 98: } 104,
- { 99: } 104,
- { 100: } 104,
- { 101: } 104,
- { 102: } 104,
- { 103: } 104,
- { 104: } 104,
- { 105: } 107,
- { 106: } 107,
- { 107: } 107,
- { 108: } 107,
- { 109: } 107,
- { 110: } 107,
- { 111: } 107,
- { 112: } 115,
- { 113: } 115,
- { 114: } 115,
- { 115: } 115,
- { 116: } 118,
- { 117: } 121,
- { 118: } 124,
- { 119: } 127,
- { 120: } 127,
- { 121: } 127,
- { 122: } 130,
- { 123: } 130,
- { 124: } 137,
- { 125: } 142,
- { 126: } 142,
- { 127: } 142,
- { 128: } 145,
- { 129: } 152,
- { 130: } 152,
- { 131: } 157,
- { 132: } 162,
- { 133: } 162,
- { 134: } 163,
- { 135: } 164,
- { 136: } 165,
- { 137: } 166,
- { 138: } 166,
- { 139: } 166,
- { 140: } 166,
- { 141: } 166,
- { 142: } 166,
- { 143: } 169,
- { 144: } 169,
- { 145: } 174,
- { 146: } 174,
- { 147: } 175,
- { 148: } 175,
- { 149: } 177,
- { 150: } 182,
- { 151: } 187,
- { 152: } 187,
- { 153: } 194,
- { 154: } 201,
- { 155: } 201,
- { 156: } 201,
- { 157: } 201,
- { 158: } 202,
- { 159: } 202,
- { 160: } 202,
- { 161: } 205,
- { 162: } 205,
- { 163: } 205,
- { 164: } 205,
- { 165: } 205,
- { 166: } 206,
- { 167: } 206,
- { 168: } 206,
- { 169: } 210,
- { 170: } 210,
- { 171: } 210,
- { 172: } 210,
- { 173: } 210,
- { 174: } 210,
- { 175: } 210,
- { 176: } 210,
- { 177: } 211,
- { 178: } 211,
- { 179: } 211,
- { 180: } 218,
- { 181: } 218,
- { 182: } 218,
- { 183: } 219,
- { 184: } 219,
- { 185: } 219,
- { 186: } 223,
- { 187: } 223,
- { 188: } 223,
- { 189: } 223,
- { 190: } 223,
- { 191: } 224,
- { 192: } 224,
- { 193: } 224,
- { 194: } 228,
- { 195: } 228,
- { 196: } 228,
- { 197: } 228,
- { 198: } 228,
- { 199: } 228,
- { 200: } 228,
- { 201: } 228,
- { 202: } 228,
- { 203: } 231,
- { 204: } 231,
- { 205: } 236,
- { 206: } 241,
- { 207: } 246,
- { 208: } 251,
- { 209: } 256,
- { 210: } 261,
- { 211: } 266,
- { 212: } 272,
- { 213: } 277,
- { 214: } 282,
- { 215: } 287,
- { 216: } 292,
- { 217: } 297,
- { 218: } 302,
- { 219: } 307,
- { 220: } 312,
- { 221: } 317,
- { 222: } 321,
- { 223: } 321,
- { 224: } 328,
- { 225: } 328,
- { 226: } 328,
- { 227: } 329,
- { 228: } 330,
- { 229: } 334,
- { 230: } 338,
- { 231: } 342,
- { 232: } 342,
- { 233: } 342,
- { 234: } 342,
- { 235: } 342,
- { 236: } 342,
- { 237: } 347,
- { 238: } 347,
- { 239: } 347,
- { 240: } 347,
- { 241: } 347,
- { 242: } 347,
- { 243: } 351,
- { 244: } 351,
- { 245: } 358,
- { 246: } 358,
- { 247: } 358,
- { 248: } 358,
- { 249: } 358,
- { 250: } 361,
- { 251: } 361,
- { 252: } 361,
- { 253: } 361,
- { 254: } 361,
- { 255: } 361,
- { 256: } 361,
- { 257: } 361,
- { 258: } 361,
- { 259: } 361,
- { 260: } 361,
- { 261: } 361,
- { 262: } 361,
- { 263: } 361,
- { 264: } 361,
- { 265: } 361,
- { 266: } 361,
- { 267: } 361,
- { 268: } 361,
- { 269: } 361,
- { 270: } 361,
- { 271: } 362,
- { 272: } 362,
- { 273: } 366,
- { 274: } 366,
- { 275: } 373,
- { 276: } 378,
- { 277: } 383,
- { 278: } 384,
- { 279: } 385,
- { 280: } 389,
- { 281: } 390,
- { 282: } 391,
- { 283: } 392,
- { 284: } 393,
- { 285: } 393,
- { 286: } 393,
- { 287: } 400,
- { 288: } 400,
- { 289: } 400,
- { 290: } 403,
- { 291: } 403,
- { 292: } 408,
- { 293: } 408,
- { 294: } 409,
- { 295: } 410,
- { 296: } 410,
- { 297: } 410,
- { 298: } 410,
- { 299: } 410,
- { 300: } 411,
- { 301: } 418,
- { 302: } 418,
- { 303: } 418,
- { 304: } 418,
- { 305: } 418,
- { 306: } 425,
- { 307: } 425,
- { 308: } 425,
- { 309: } 425,
- { 310: } 425,
- { 311: } 425,
- { 312: } 425
- );
- yygh : array [0..yynstates-1] of Integer = (
- { 0: } 6,
- { 1: } 6,
- { 2: } 11,
- { 3: } 11,
- { 4: } 11,
- { 5: } 15,
- { 6: } 15,
- { 7: } 16,
- { 8: } 21,
- { 9: } 22,
- { 10: } 23,
- { 11: } 24,
- { 12: } 25,
- { 13: } 25,
- { 14: } 25,
- { 15: } 25,
- { 16: } 25,
- { 17: } 25,
- { 18: } 26,
- { 19: } 26,
- { 20: } 28,
- { 21: } 30,
- { 22: } 32,
- { 23: } 32,
- { 24: } 32,
- { 25: } 33,
- { 26: } 33,
- { 27: } 33,
- { 28: } 33,
- { 29: } 33,
- { 30: } 33,
- { 31: } 38,
- { 32: } 39,
- { 33: } 39,
- { 34: } 39,
- { 35: } 39,
- { 36: } 39,
- { 37: } 39,
- { 38: } 39,
- { 39: } 39,
- { 40: } 40,
- { 41: } 40,
- { 42: } 42,
- { 43: } 42,
- { 44: } 43,
- { 45: } 44,
- { 46: } 45,
- { 47: } 49,
- { 48: } 49,
- { 49: } 49,
- { 50: } 49,
- { 51: } 49,
- { 52: } 49,
- { 53: } 49,
- { 54: } 49,
- { 55: } 49,
- { 56: } 50,
- { 57: } 57,
- { 58: } 57,
- { 59: } 57,
- { 60: } 58,
- { 61: } 61,
- { 62: } 61,
- { 63: } 61,
- { 64: } 61,
- { 65: } 61,
- { 66: } 61,
- { 67: } 61,
- { 68: } 61,
- { 69: } 61,
- { 70: } 65,
- { 71: } 66,
- { 72: } 66,
- { 73: } 68,
- { 74: } 71,
- { 75: } 71,
- { 76: } 75,
- { 77: } 75,
- { 78: } 75,
- { 79: } 75,
- { 80: } 75,
- { 81: } 76,
- { 82: } 78,
- { 83: } 79,
- { 84: } 80,
- { 85: } 83,
- { 86: } 86,
- { 87: } 86,
- { 88: } 86,
- { 89: } 86,
- { 90: } 89,
- { 91: } 92,
- { 92: } 92,
- { 93: } 92,
- { 94: } 99,
- { 95: } 99,
- { 96: } 103,
- { 97: } 103,
- { 98: } 103,
- { 99: } 103,
- { 100: } 103,
- { 101: } 103,
- { 102: } 103,
- { 103: } 103,
- { 104: } 106,
- { 105: } 106,
- { 106: } 106,
- { 107: } 106,
- { 108: } 106,
- { 109: } 106,
- { 110: } 106,
- { 111: } 114,
- { 112: } 114,
- { 113: } 114,
- { 114: } 114,
- { 115: } 117,
- { 116: } 120,
- { 117: } 123,
- { 118: } 126,
- { 119: } 126,
- { 120: } 126,
- { 121: } 129,
- { 122: } 129,
- { 123: } 136,
- { 124: } 141,
- { 125: } 141,
- { 126: } 141,
- { 127: } 144,
- { 128: } 151,
- { 129: } 151,
- { 130: } 156,
- { 131: } 161,
- { 132: } 161,
- { 133: } 162,
- { 134: } 163,
- { 135: } 164,
- { 136: } 165,
- { 137: } 165,
- { 138: } 165,
- { 139: } 165,
- { 140: } 165,
- { 141: } 165,
- { 142: } 168,
- { 143: } 168,
- { 144: } 173,
- { 145: } 173,
- { 146: } 174,
- { 147: } 174,
- { 148: } 176,
- { 149: } 181,
- { 150: } 186,
- { 151: } 186,
- { 152: } 193,
- { 153: } 200,
- { 154: } 200,
- { 155: } 200,
- { 156: } 200,
- { 157: } 201,
- { 158: } 201,
- { 159: } 201,
- { 160: } 204,
- { 161: } 204,
- { 162: } 204,
- { 163: } 204,
- { 164: } 204,
- { 165: } 205,
- { 166: } 205,
- { 167: } 205,
- { 168: } 209,
- { 169: } 209,
- { 170: } 209,
- { 171: } 209,
- { 172: } 209,
- { 173: } 209,
- { 174: } 209,
- { 175: } 209,
- { 176: } 210,
- { 177: } 210,
- { 178: } 210,
- { 179: } 217,
- { 180: } 217,
- { 181: } 217,
- { 182: } 218,
- { 183: } 218,
- { 184: } 218,
- { 185: } 222,
- { 186: } 222,
- { 187: } 222,
- { 188: } 222,
- { 189: } 222,
- { 190: } 223,
- { 191: } 223,
- { 192: } 223,
- { 193: } 227,
- { 194: } 227,
- { 195: } 227,
- { 196: } 227,
- { 197: } 227,
- { 198: } 227,
- { 199: } 227,
- { 200: } 227,
- { 201: } 227,
- { 202: } 230,
- { 203: } 230,
- { 204: } 235,
- { 205: } 240,
- { 206: } 245,
- { 207: } 250,
- { 208: } 255,
- { 209: } 260,
- { 210: } 265,
- { 211: } 271,
- { 212: } 276,
- { 213: } 281,
- { 214: } 286,
- { 215: } 291,
- { 216: } 296,
- { 217: } 301,
- { 218: } 306,
- { 219: } 311,
- { 220: } 316,
- { 221: } 320,
- { 222: } 320,
- { 223: } 327,
- { 224: } 327,
- { 225: } 327,
- { 226: } 328,
- { 227: } 329,
- { 228: } 333,
- { 229: } 337,
- { 230: } 341,
- { 231: } 341,
- { 232: } 341,
- { 233: } 341,
- { 234: } 341,
- { 235: } 341,
- { 236: } 346,
- { 237: } 346,
- { 238: } 346,
- { 239: } 346,
- { 240: } 346,
- { 241: } 346,
- { 242: } 350,
- { 243: } 350,
- { 244: } 357,
- { 245: } 357,
- { 246: } 357,
- { 247: } 357,
- { 248: } 357,
- { 249: } 360,
- { 250: } 360,
- { 251: } 360,
- { 252: } 360,
- { 253: } 360,
- { 254: } 360,
- { 255: } 360,
- { 256: } 360,
- { 257: } 360,
- { 258: } 360,
- { 259: } 360,
- { 260: } 360,
- { 261: } 360,
- { 262: } 360,
- { 263: } 360,
- { 264: } 360,
- { 265: } 360,
- { 266: } 360,
- { 267: } 360,
- { 268: } 360,
- { 269: } 360,
- { 270: } 361,
- { 271: } 361,
- { 272: } 365,
- { 273: } 365,
- { 274: } 372,
- { 275: } 377,
- { 276: } 382,
- { 277: } 383,
- { 278: } 384,
- { 279: } 388,
- { 280: } 389,
- { 281: } 390,
- { 282: } 391,
- { 283: } 392,
- { 284: } 392,
- { 285: } 392,
- { 286: } 399,
- { 287: } 399,
- { 288: } 399,
- { 289: } 402,
- { 290: } 402,
- { 291: } 407,
- { 292: } 407,
- { 293: } 408,
- { 294: } 409,
- { 295: } 409,
- { 296: } 409,
- { 297: } 409,
- { 298: } 409,
- { 299: } 410,
- { 300: } 417,
- { 301: } 417,
- { 302: } 417,
- { 303: } 417,
- { 304: } 417,
- { 305: } 424,
- { 306: } 424,
- { 307: } 424,
- { 308: } 424,
- { 309: } 424,
- { 310: } 424,
- { 311: } 424,
- { 312: } 424
- );
- yyr : array [1..yynrules] of YYRRec = (
- { 1: } ( len: 1; sym: -2 ),
- { 2: } ( len: 1; sym: -4 ),
- { 3: } ( len: 0; sym: -4 ),
- { 4: } ( len: 0; sym: -5 ),
- { 5: } ( len: 2; sym: -3 ),
- { 6: } ( len: 2; sym: -3 ),
- { 7: } ( len: 1; sym: -3 ),
- { 8: } ( len: 1; sym: -3 ),
- { 9: } ( len: 1; sym: -8 ),
- { 10: } ( len: 0; sym: -8 ),
- { 11: } ( len: 1; sym: -9 ),
- { 12: } ( len: 1; sym: -9 ),
- { 13: } ( len: 1; sym: -9 ),
- { 14: } ( len: 1; sym: -9 ),
- { 15: } ( len: 1; sym: -9 ),
- { 16: } ( len: 1; sym: -9 ),
- { 17: } ( len: 1; sym: -9 ),
- { 18: } ( len: 0; sym: -9 ),
- { 19: } ( len: 4; sym: -10 ),
- { 20: } ( len: 0; sym: -10 ),
- { 21: } ( len: 2; sym: -12 ),
- { 22: } ( len: 5; sym: -12 ),
- { 23: } ( len: 2; sym: -14 ),
- { 24: } ( len: 1; sym: -14 ),
- { 25: } ( len: 1; sym: -14 ),
- { 26: } ( len: 0; sym: -14 ),
- { 27: } ( len: 3; sym: -15 ),
- { 28: } ( len: 5; sym: -6 ),
- { 29: } ( len: 6; sym: -6 ),
- { 30: } ( len: 2; sym: -6 ),
- { 31: } ( len: 5; sym: -6 ),
- { 32: } ( len: 11; sym: -6 ),
- { 33: } ( len: 5; sym: -6 ),
- { 34: } ( len: 3; sym: -6 ),
- { 35: } ( len: 3; sym: -6 ),
- { 36: } ( len: 7; sym: -7 ),
- { 37: } ( len: 4; sym: -7 ),
- { 38: } ( len: 3; sym: -7 ),
- { 39: } ( len: 5; sym: -7 ),
- { 40: } ( len: 3; sym: -7 ),
- { 41: } ( len: 3; sym: -24 ),
- { 42: } ( len: 3; sym: -24 ),
- { 43: } ( len: 3; sym: -26 ),
- { 44: } ( len: 3; sym: -26 ),
- { 45: } ( len: 4; sym: -18 ),
- { 46: } ( len: 3; sym: -18 ),
- { 47: } ( len: 4; sym: -18 ),
- { 48: } ( len: 3; sym: -18 ),
- { 49: } ( len: 2; sym: -18 ),
- { 50: } ( len: 2; sym: -18 ),
- { 51: } ( len: 3; sym: -18 ),
- { 52: } ( len: 2; sym: -18 ),
- { 53: } ( len: 2; sym: -16 ),
- { 54: } ( len: 3; sym: -16 ),
- { 55: } ( len: 2; sym: -16 ),
- { 56: } ( len: 3; sym: -16 ),
- { 57: } ( len: 2; sym: -16 ),
- { 58: } ( len: 2; sym: -16 ),
- { 59: } ( len: 1; sym: -16 ),
- { 60: } ( len: 1; sym: -16 ),
- { 61: } ( len: 2; sym: -25 ),
- { 62: } ( len: 1; sym: -25 ),
- { 63: } ( len: 3; sym: -28 ),
- { 64: } ( len: 1; sym: -11 ),
- { 65: } ( len: 2; sym: -29 ),
- { 66: } ( len: 2; sym: -29 ),
- { 67: } ( len: 1; sym: -29 ),
- { 68: } ( len: 1; sym: -29 ),
- { 69: } ( len: 2; sym: -29 ),
- { 70: } ( len: 2; sym: -29 ),
- { 71: } ( len: 3; sym: -29 ),
- { 72: } ( len: 1; sym: -29 ),
- { 73: } ( len: 2; sym: -29 ),
- { 74: } ( len: 1; sym: -29 ),
- { 75: } ( len: 1; sym: -29 ),
- { 76: } ( len: 1; sym: -29 ),
- { 77: } ( len: 1; sym: -29 ),
- { 78: } ( len: 1; sym: -29 ),
- { 79: } ( len: 1; sym: -29 ),
- { 80: } ( len: 1; sym: -29 ),
- { 81: } ( len: 1; sym: -29 ),
- { 82: } ( len: 1; sym: -27 ),
- { 83: } ( len: 1; sym: -27 ),
- { 84: } ( len: 3; sym: -17 ),
- { 85: } ( len: 4; sym: -17 ),
- { 86: } ( len: 2; sym: -17 ),
- { 87: } ( len: 1; sym: -17 ),
- { 88: } ( len: 2; sym: -30 ),
- { 89: } ( len: 3; sym: -30 ),
- { 90: } ( len: 2; sym: -30 ),
- { 91: } ( len: 1; sym: -20 ),
- { 92: } ( len: 3; sym: -20 ),
- { 93: } ( len: 1; sym: -20 ),
- { 94: } ( len: 0; sym: -20 ),
- { 95: } ( len: 1; sym: -32 ),
- { 96: } ( len: 1; sym: -32 ),
- { 97: } ( len: 1; sym: -32 ),
- { 98: } ( len: 2; sym: -19 ),
- { 99: } ( len: 3; sym: -19 ),
- { 100: } ( len: 2; sym: -19 ),
- { 101: } ( len: 2; sym: -19 ),
- { 102: } ( len: 3; sym: -19 ),
- { 103: } ( len: 3; sym: -19 ),
- { 104: } ( len: 1; sym: -19 ),
- { 105: } ( len: 4; sym: -19 ),
- { 106: } ( len: 2; sym: -19 ),
- { 107: } ( len: 4; sym: -19 ),
- { 108: } ( len: 3; sym: -19 ),
- { 109: } ( len: 3; sym: -19 ),
- { 110: } ( len: 2; sym: -34 ),
- { 111: } ( len: 3; sym: -34 ),
- { 112: } ( len: 2; sym: -31 ),
- { 113: } ( len: 3; sym: -31 ),
- { 114: } ( len: 2; sym: -31 ),
- { 115: } ( len: 4; sym: -31 ),
- { 116: } ( len: 2; sym: -31 ),
- { 117: } ( len: 4; sym: -31 ),
- { 118: } ( len: 3; sym: -31 ),
- { 119: } ( len: 3; sym: -31 ),
- { 120: } ( len: 0; sym: -31 ),
- { 121: } ( len: 1; sym: -13 ),
- { 122: } ( len: 3; sym: -35 ),
- { 123: } ( len: 3; sym: -35 ),
- { 124: } ( len: 3; sym: -35 ),
- { 125: } ( len: 3; sym: -35 ),
- { 126: } ( len: 3; sym: -35 ),
- { 127: } ( len: 3; sym: -35 ),
- { 128: } ( len: 3; sym: -35 ),
- { 129: } ( len: 3; sym: -35 ),
- { 130: } ( len: 3; sym: -35 ),
- { 131: } ( len: 3; sym: -35 ),
- { 132: } ( len: 3; sym: -35 ),
- { 133: } ( len: 3; sym: -35 ),
- { 134: } ( len: 3; sym: -35 ),
- { 135: } ( len: 3; sym: -35 ),
- { 136: } ( len: 3; sym: -35 ),
- { 137: } ( len: 3; sym: -35 ),
- { 138: } ( len: 3; sym: -35 ),
- { 139: } ( len: 1; sym: -35 ),
- { 140: } ( len: 3; sym: -36 ),
- { 141: } ( len: 1; sym: -38 ),
- { 142: } ( len: 0; sym: -38 ),
- { 143: } ( len: 1; sym: -37 ),
- { 144: } ( len: 1; sym: -37 ),
- { 145: } ( len: 1; sym: -37 ),
- { 146: } ( len: 1; sym: -37 ),
- { 147: } ( len: 3; sym: -37 ),
- { 148: } ( len: 3; sym: -37 ),
- { 149: } ( len: 2; sym: -37 ),
- { 150: } ( len: 2; sym: -37 ),
- { 151: } ( len: 2; sym: -37 ),
- { 152: } ( len: 2; sym: -37 ),
- { 153: } ( len: 4; sym: -37 ),
- { 154: } ( len: 4; sym: -37 ),
- { 155: } ( len: 5; sym: -37 ),
- { 156: } ( len: 6; sym: -37 ),
- { 157: } ( len: 4; sym: -37 ),
- { 158: } ( len: 3; sym: -37 ),
- { 159: } ( len: 8; sym: -37 ),
- { 160: } ( len: 4; sym: -37 ),
- { 161: } ( len: 3; sym: -21 ),
- { 162: } ( len: 1; sym: -21 ),
- { 163: } ( len: 0; sym: -21 ),
- { 164: } ( len: 3; sym: -40 ),
- { 165: } ( len: 1; sym: -40 ),
- { 166: } ( len: 1; sym: -23 ),
- { 167: } ( len: 2; sym: -22 ),
- { 168: } ( len: 4; sym: -22 ),
- { 169: } ( len: 3; sym: -39 ),
- { 170: } ( len: 1; sym: -39 ),
- { 171: } ( len: 0; sym: -39 ),
- { 172: } ( len: 1; sym: -41 )
- );
- const _error = 256; (* error token *)
- function yyact(state, sym : Integer; var act : Integer) : Boolean;
- (* search action table *)
- var k : Integer;
- begin
- k := yyal[state];
- while (k<=yyah[state]) and (yya[k].sym<>sym) do inc(k);
- if k>yyah[state] then
- yyact := false
- else
- begin
- act := yya[k].act;
- yyact := true;
- end;
- end(*yyact*);
- function yygoto(state, sym : Integer; var nstate : Integer) : Boolean;
- (* search goto table *)
- var k : Integer;
- begin
- k := yygl[state];
- while (k<=yygh[state]) and (yyg[k].sym<>sym) do inc(k);
- if k>yygh[state] then
- yygoto := false
- else
- begin
- nstate := yyg[k].act;
- yygoto := true;
- end;
- end(*yygoto*);
- label parse, next, error, errlab, shift, reduce, accept, abort;
- begin(*yyparse*)
- (* initialize: *)
- yystate := 0; yychar := -1; yynerrs := 0; yyerrflag := 0; yysp := 0;
- {$ifdef yydebug}
- yydebug := true;
- {$else}
- yydebug := false;
- {$endif}
- parse:
- (* push state and value: *)
- inc(yysp);
- if yysp>yymaxdepth then
- begin
- yyerror('yyparse stack overflow');
- goto abort;
- end;
- yys[yysp] := yystate; yyv[yysp] := yyval;
- next:
- if (yyd[yystate]=0) and (yychar=-1) then
- (* get next symbol *)
- begin
- yychar := yylex; if yychar<0 then yychar := 0;
- end;
- if yydebug then writeln('state ', yystate, ', char ', yychar);
- (* determine parse action: *)
- yyn := yyd[yystate];
- if yyn<>0 then goto reduce; (* simple state *)
- (* no default action; search parse table *)
- if not yyact(yystate, yychar, yyn) then goto error
- else if yyn>0 then goto shift
- else if yyn<0 then goto reduce
- else goto accept;
- error:
- (* error; start error recovery: *)
- if yyerrflag=0 then yyerror('syntax error');
- errlab:
- if yyerrflag=0 then inc(yynerrs); (* new error *)
- if yyerrflag<=2 then (* incomplete recovery; try again *)
- begin
- yyerrflag := 3;
- (* uncover a state with shift action on error token *)
- while (yysp>0) and not ( yyact(yys[yysp], _error, yyn) and
- (yyn>0) ) do
- begin
- if yydebug then
- if yysp>1 then
- writeln('error recovery pops state ', yys[yysp], ', uncovers ',
- yys[yysp-1])
- else
- writeln('error recovery fails ... abort');
- dec(yysp);
- end;
- if yysp=0 then goto abort; (* parser has fallen from stack; abort *)
- yystate := yyn; (* simulate shift on error *)
- goto parse;
- end
- else (* no shift yet; discard symbol *)
- begin
- if yydebug then writeln('error recovery discards char ', yychar);
- if yychar=0 then goto abort; (* end of input; abort *)
- yychar := -1; goto next; (* clear lookahead char and try again *)
- end;
- shift:
- (* go to new state, clear lookahead character: *)
- yystate := yyn; yychar := -1; yyval := yylval;
- if yyerrflag>0 then dec(yyerrflag);
- goto parse;
- reduce:
- (* execute action, pop rule from stack, and go to next state: *)
- if yydebug then writeln('reduce ', -yyn);
- yyflag := yyfnone; yyaction(-yyn);
- dec(yysp, yyr[-yyn].len);
- if yygoto(yys[yysp], yyr[-yyn].sym, yyn) then yystate := yyn;
- (* handle action calls to yyaccept, yyabort and yyerror: *)
- case yyflag of
- yyfaccept : goto accept;
- yyfabort : goto abort;
- yyferror : goto errlab;
- end;
- goto parse;
- accept:
- yyparse := 0; exit;
- abort:
- yyparse := 1; exit;
- end(*yyparse*);
- function yylex : Integer;
- begin
- yylex:=scan.yylex;
- line_no:=yylineno;
- end;
- procedure WriteFileHeader(var headerfile: Text);
- var
- i: integer;
- originalstr: string;
- begin
- { write unit header }
- if not includefile then
- begin
- if createdynlib then
- writeln(headerfile,'{$mode objfpc}');
- writeln(headerfile,'unit ',unitname,';');
- writeln(headerfile,'interface');
- writeln(headerfile);
- if UseCTypesUnit then
- begin
- writeln(headerfile,'uses');
- writeln(headerfile,' ctypes;');
- writeln(headerfile);
- end;
- writeln(headerfile,'{');
- writeln(headerfile,' Automatically converted by H2Pas ',version,' from ',inputfilename);
- writeln(headerfile,' The following command line parameters were used:');
- for i:=1 to paramcount do
- writeln(headerfile,' ',paramstr(i));
- writeln(headerfile,'}');
- writeln(headerfile);
- end;
- if UseName then
- begin
- writeln(headerfile,aktspace,'const');
- writeln(headerfile,aktspace,' External_library=''',libfilename,'''; {Setup as you need}');
- writeln(headerfile);
- end;
- if UsePPointers then
- begin
- Writeln(headerfile,aktspace,'{ Pointers to basic pascal types, inserted by h2pas conversion program.}');
- Writeln(headerfile,aktspace,'Type');
- Writeln(headerfile,aktspace,' PLongint = ^Longint;');
- Writeln(headerfile,aktspace,' PSmallInt = ^SmallInt;');
- Writeln(headerfile,aktspace,' PByte = ^Byte;');
- Writeln(headerfile,aktspace,' PWord = ^Word;');
- Writeln(headerfile,aktspace,' PDWord = ^DWord;');
- Writeln(headerfile,aktspace,' PDouble = ^Double;');
- Writeln(headerfile);
- end;
- if PTypeList.count <> 0 then
- Writeln(headerfile,aktspace,'Type');
- for i:=0 to (PTypeList.Count-1) do
- begin
- originalstr:=copy(PTypelist[i],2,length(PTypeList[i]));
- Writeln(headerfile,aktspace,PTypeList[i],' = ^',originalstr,';');
- end;
- if not packrecords then
- begin
- writeln(headerfile,'{$IFDEF FPC}');
- writeln(headerfile,'{$PACKRECORDS C}');
- writeln(headerfile,'{$ENDIF}');
- end;
- writeln(headerfile);
- end;
- var
- SS : string;
- i : longint;
- headerfile: Text;
- finaloutfile: Text;
- begin
- pointerprefix:=false;
- { Initialize }
- PTypeList:=TStringList.Create;
- PTypeList.Sorted := true;
- PTypeList.Duplicates := dupIgnore;
- freedynlibproc:=TStringList.Create;
- loaddynlibproc:=TStringList.Create;
- yydebug:=true;
- aktspace:='';
- block_type:=bt_no;
- IsExtern:=false;
- { Read commandline options }
- ProcessOptions;
- if not CompactMode then
- aktspace:=' ';
- { open input and output files }
- assign(yyinput, inputfilename);
- {$I-}
- reset(yyinput);
- {$I+}
- if ioresult<>0 then
- begin
- writeln('file ',inputfilename,' not found!');
- halt(1);
- end;
- { This is the intermediate output file }
- assign(outfile, 'ext3.tmp');
- {$I-}
- rewrite(outfile);
- {$I+}
- if ioresult<>0 then
- begin
- writeln('file ext3.tmp could not be created!');
- halt(1);
- end;
- writeln(outfile);
- { Open tempfiles }
- { This is where the implementation section of the unit shall be stored }
- Assign(implemfile,'ext.tmp');
- rewrite(implemfile);
- Assign(tempfile,'ext2.tmp');
- rewrite(tempfile);
- { Parse! }
- yyparse;
- { Write implementation if needed }
- if not(includefile) then
- begin
- writeln(outfile);
- writeln(outfile,'implementation');
- writeln(outfile);
- end;
- { here we have a problem if a line is longer than 255 chars !! }
- reset(implemfile);
- while not eof(implemfile) do
- begin
- readln(implemfile,SS);
- writeln(outfile,SS);
- end;
- if createdynlib then
- begin
- writeln(outfile,' uses');
- writeln(outfile,' SysUtils, dynlibs;');
- writeln(outfile);
- writeln(outfile,' var');
- writeln(outfile,' hlib : tlibhandle;');
- writeln(outfile);
- writeln(outfile);
- writeln(outfile,' procedure Free',unitname,';');
- writeln(outfile,' begin');
- writeln(outfile,' FreeLibrary(hlib);');
- for i:=0 to (freedynlibproc.Count-1) do
- Writeln(outfile,' ',freedynlibproc[i]);
- writeln(outfile,' end;');
- writeln(outfile);
- writeln(outfile);
- writeln(outfile,' procedure Load',unitname,'(lib : pchar);');
- writeln(outfile,' begin');
- writeln(outfile,' Free',unitname,';');
- writeln(outfile,' hlib:=LoadLibrary(lib);');
- writeln(outfile,' if hlib=0 then');
- writeln(outfile,' raise Exception.Create(format(''Could not load library: %s'',[lib]));');
- writeln(outfile);
- for i:=0 to (loaddynlibproc.Count-1) do
- Writeln(outfile,' ',loaddynlibproc[i]);
- writeln(outfile,' end;');
- writeln(outfile);
- writeln(outfile);
- writeln(outfile,'initialization');
- writeln(outfile,' Load',unitname,'(''',unitname,''');');
- writeln(outfile,'finalization');
- writeln(outfile,' Free',unitname,';');
- end;
- { write end of file }
- writeln(outfile);
- if not(includefile) then
- writeln(outfile,'end.');
- { close and erase tempfiles }
- close(implemfile);
- erase(implemfile);
- close(tempfile);
- erase(tempfile);
- flush(outfile);
- {**** generate full file ****}
- assign(headerfile, 'ext4.tmp');
- {$I-}
- rewrite(headerfile);
- {$I+}
- if ioresult<>0 then
- begin
- writeln('file ext4.tmp could not be created!');
- halt(1);
- end;
- WriteFileHeader(HeaderFile);
- { Final output filename }
- assign(finaloutfile, outputfilename);
- {$I-}
- rewrite(finaloutfile);
- {$I+}
- if ioresult<>0 then
- begin
- writeln('file ',outputfilename,' could not be created!');
- halt(1);
- end;
- writeln(finaloutfile);
- { Read unit header file }
- reset(headerfile);
- while not eof(headerfile) do
- begin
- readln(headerfile,SS);
- writeln(finaloutfile,SS);
- end;
- { Read interface and implementation file }
- reset(outfile);
- while not eof(outfile) do
- begin
- readln(outfile,SS);
- writeln(finaloutfile,SS);
- end;
- close(HeaderFile);
- close(outfile);
- close(finaloutfile);
- erase(outfile);
- erase(headerfile);
- PTypeList.Free;
- freedynlibproc.free;
- loaddynlibproc.free;
- end.
|