12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021(*
Copyright 2012-2025 Codinuum Software Lab <https://codinuum.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*)openCommonopenLabel_commontypewirespec=|WS_NORMAL|WS_UNRESOLVEDletwirespec_to_string=function|WS_NORMAL->"NORMAL"|WS_UNRESOLVED->"UNRESOLVED"letwirespec_to_rep=function|WS_NORMAL->"wire"|WS_UNRESOLVED->"uwire"typegate=|BUFIF0|BUFIF1|CMOS|NMOS|PMOS|NOTIF0|NOTIF1|PULLDOWN|PULLUP|RCMOS|RNMOS|RPMOS|RTRAN|RTRANIF0|RTRANIF1|TRAN|TRANIF0|TRANIF1letgate_to_string=function|BUFIF0->"BUFIF0"|BUFIF1->"BUFIF1"|CMOS->"CMOS"|NMOS->"NMOS"|PMOS->"PMOS"|NOTIF0->"NOTIF0"|NOTIF1->"NOTIF1"|RCMOS->"RCMOS"|RNMOS->"RNMOS"|RPMOS->"RPMOS"|PULLDOWN->"PULLDOWN"|PULLUP->"PULLUP"|RTRAN->"RTRAN"|RTRANIF0->"RTRANIF0"|RTRANIF1->"RTRANIF1"|TRAN->"TRAN"|TRANIF0->"TRANIF0"|TRANIF1->"TRANIF1"letgate_to_rep=function|BUFIF0->"bufif0"|BUFIF1->"bufif1"|CMOS->"cmos"|NMOS->"nmos"|PMOS->"pmos"|NOTIF0->"notif0"|NOTIF1->"notif1"|RCMOS->"rcmos"|RNMOS->"rnmos"|RPMOS->"rpmos"|PULLDOWN->"pulldown"|PULLUP->"pullup"|RTRAN->"rtran"|RTRANIF0->"rtranif0"|RTRANIF1->"rtranif1"|TRAN->"tran"|TRANIF0->"tranif0"|TRANIF1->"tranif1"moduleOverloadOperator=structtypet=|Add|Incr|Subt|Decr|Mult|Pow|Div|Mod|Eq|Neq|Lt|Le|Gt|Ge|Assignletto_stringoo=letconv=function|Add->"Add"|Incr->"Incr"|Subt->"Subt"|Decr->"Decr"|Mult->"Mult"|Pow->"Pow"|Div->"Div"|Mod->"Mod"|Eq->"Eq"|Neq->"Neq"|Lt->"Lt"|Le->"Le"|Gt->"Gt"|Ge->"Ge"|Assign->"Assign"in"OverloadOperator."^(convoo)letto_simple_string=function|Add->"+"|Incr->"++"|Subt->"-"|Decr->"--"|Mult->"*"|Pow->"**"|Div->"/"|Mod->"%"|Eq->"=="|Neq->"!="|Lt->"<"|Le->"<="|Gt->">"|Ge->">="|Assign->"="letto_tagoo=lettail="OverloadOp"inletname=matchoowith|Add->"Add"|Incr->"Incr"|Subt->"Subt"|Decr->"Decr"|Mult->"Mult"|Pow->"Pow"|Div->"Div"|Mod->"Mod"|Eq->"Eq"|Neq->"Neq"|Lt->"Lt"|Le->"Le"|Gt->"Gt"|Ge->"Ge"|Assign->"Assign"inname^tail,[]letto_tag_nameoo=letn,_=to_tagooinnend(* of module OverloadOperator *)moduleAssignmentOperator=structtypet=|Eq|AddEq|SubtEq|MultEq|DivEq|ModEq|AndEq|OrEq|XorEq|ShiftLEq|ShiftREq|SShiftREqletto_stringao=letconv=function|Eq->"Eq"|AddEq->"AddEq"|SubtEq->"SubtEq"|MultEq->"MultEq"|DivEq->"DivEq"|ModEq->"ModEq"|AndEq->"AndEq"|OrEq->"OrEq"|XorEq->"XorEq"|ShiftLEq->"ShiftLEq"|ShiftREq->"ShiftREq"|SShiftREq->"SShiftREq"in"AssignmentOperator."^(convao)letto_simple_string=function|Eq->"="|AddEq->"+="|SubtEq->"-="|MultEq->"*="|DivEq->"/="|ModEq->"%="|AndEq->"&="|OrEq->"|="|XorEq->"^="|ShiftLEq->"<<="|ShiftREq->">>="|SShiftREq->">>>="letto_tagao=lettail="AssignOp"inletname=matchaowith|Eq->"Eq"|AddEq->"AddEq"|SubtEq->"SubtEq"|MultEq->"MultEq"|DivEq->"DivEq"|ModEq->"ModEq"|AndEq->"AndEq"|OrEq->"OrEq"|XorEq->"XorEq"|ShiftLEq->"ShiftLEq"|ShiftREq->"ShiftREq"|SShiftREq->"SShiftREq"inname^tail,[]letto_tag_nameao=letn,_=to_tagaoinnend(* of module AssignmentOperator *)moduleIncOrDecOperator=structtypet=|PreIncr|PreDecr|PostIncr|PostDecrletto_stringido=letconv=function|PreIncr->"PreIncr"|PreDecr->"PreDecr"|PostIncr->"PostIncr"|PostDecr->"PostDecr"in"IncOrDecOperator."^(convido)letto_simple_string=function|PreIncr->"++()"|PreDecr->"--()"|PostIncr->"()++"|PostDecr->"()--"letto_tagido=letname=matchidowith|PreIncr->"PreIncr"|PreDecr->"PreDecr"|PostIncr->"PostIncr"|PostDecr->"PostDecr"inname,[]letto_tag_nameido=letn,_=to_tagidoinnend(* of module IncOrDecOperator *)moduleUnaryOperator=structtypet=|Plus|Minus|Not|And|Neg|Or|Xor|Nand|Nor|Xnor|Inc|Decletto_stringuo=letconv=function|Plus->"Plus"|Minus->"Minus"|Not->"Not"|And->"And"|Neg->"Neg"|Or->"Or"|Xor->"Xor"|Nand->"Nand"|Nor->"Nor"|Xnor->"Xnor"|Inc->"Inc"|Dec->"Dec"in"UnaryOperator."^(convuo)letto_simple_string=function|Plus->"+"|Minus->"-"|Not->"!"|And->"&"|Neg->"~"|Or->"|"|Xor->"^"|Nand->"~&"|Nor->"~|"|Xnor->"~^"|Inc->"++"|Dec->"--"letto_taguo=lettail="UnaryOp"inletname=matchuowith|Plus->"Plus"|Minus->"Minus"|Not->"Not"|And->"And"|Neg->"Neg"|Or->"Or"|Xor->"Xor"|Nand->"Nand"|Nor->"Nor"|Xnor->"Xnor"|Inc->"Inc"|Dec->"Dec"inname^tail,[]end(* of module UnaryOperator *)moduleBinaryOperator=structtypet=|Add|Subt|Mult|Div|Mod|Eq|Neq|CaseEq|CaseNeq|WildEq|WildNeq|LogAnd|LogOr|Pow|Lt|Le|Gt|Ge|And|Or|Xor|Xnor|Nor|Nand|ShiftL|ShiftR|SShiftR|Constraint|LtMinusGt(* ? *)letto_stringbo=letconv=function|Add->"Add"|Subt->"Subt"|Mult->"Mult"|Div->"Div"|Mod->"Mod"|Eq->"Eq"|Neq->"Neq"|CaseEq->"CaseEq"|CaseNeq->"CaseNeq"|WildEq->"WildEq"|WildNeq->"WildNeq"|LogAnd->"LogAnd"|LogOr->"LogOr"|Pow->"Pow"|Lt->"Lt"|Le->"Le"|Gt->"Gt"|Ge->"Ge"|And->"And"|Or->"Or"|Xor->"Xor"|Xnor->"Xnor"|Nor->"Nor"|Nand->"Nand"|ShiftL->"ShiftL"|ShiftR->"ShiftR"|SShiftR->"SShiftR"|Constraint->"Constraint"|LtMinusGt->"LtMinusGt"in"BinaryOperator."^(convbo)letto_simple_string=function|Add->"+"|Subt->"-"|Mult->"*"|Div->"/"|Mod->"%"|Eq->"=="|Neq->"!="|CaseEq->"==="|CaseNeq->"!=="|WildEq->"==?"|WildNeq->"!=?"|LogAnd->"&&"|LogOr->"||"|Pow->"**"|Lt->"<"|Le->"<="|Gt->">"|Ge->">="|And->"&"|Or->"|"|Xor->"^"|Xnor->"~^"|Nor->"~|"|Nand->"~&"|ShiftL->"<<"|ShiftR->">>"|SShiftR->">>>"|Constraint->"->"|LtMinusGt->"<->"letto_tagbo=lettail="BinaryOp"inletname=matchbowith|Add->"Add"|Subt->"Subt"|Mult->"Mult"|Div->"Div"|Mod->"Mod"|Eq->"Eq"|Neq->"Neq"|CaseEq->"CaseEq"|CaseNeq->"CaseNeq"|WildEq->"WildEq"|WildNeq->"WildNeq"|LogAnd->"LogAnd"|LogOr->"LogOr"|Pow->"Pow"|Lt->"Lt"|Le->"Le"|Gt->"Gt"|Ge->"Ge"|And->"And"|Or->"Or"|Xor->"Xor"|Xnor->"Xnor"|Nor->"Nor"|Nand->"Nand"|ShiftL->"ShiftL"|ShiftR->"ShiftR"|SShiftR->"SShiftR"|Constraint->"Constraint"|LtMinusGt->"LtMinusGt"inname^tail,[]end(* of module BinaryOperator *)moduleTimingCheck=structtypet=|Setup|Hold|Recovery|Removal|Skew|Setuphold|Recrem|Timeskew|Fullskew|Period|Width|Nochange|Anonymousletto_stringtc=letconv=function|Setup->"Setup"|Hold->"Hold"|Recovery->"Recovery"|Removal->"Removal"|Skew->"Skew"|Setuphold->"SetupHold"|Recrem->"RecRem"|Timeskew->"TimeSkew"|Fullskew->"FullSkew"|Period->"Period"|Width->"Width"|Nochange->"NoChange"|Anonymous->"<anonymous>"in"TimingCheck."^(convtc)letto_simple_string=function|Setup->"$setup"|Hold->"$hold"|Recovery->"$recovery"|Removal->"$removal"|Skew->"$skew"|Setuphold->"$setuphold"|Recrem->"$recrem"|Timeskew->"$timeskew"|Fullskew->"$fullskew"|Period->"$period"|Width->"$width"|Nochange->"$nochange"|Anonymous->"<anonymous>"letget_name=to_simple_stringletto_tagtc=lettail="TimingCheck"inletname=matchtcwith|Setup->"Setup"|Hold->"Hold"|Recovery->"Recovery"|Removal->"Removal"|Skew->"Skew"|Setuphold->"Setuphold"|Recrem->"Recrem"|Timeskew->"Timeskew"|Fullskew->"Fullskew"|Period->"Period"|Width->"Width"|Nochange->"Nochange"|Anonymous->"Anonymous"inname^tail,[]end(* of module TimingCheck *)moduleSystemTask=structtypet=|Error|Fatal|Info|Root|Unit|Warning|Anonymousletto_stringst=letconv=function|Error->"Error"|Fatal->"Fatal"|Info->"Info"|Root->"Root"|Unit->"Unit"|Warning->"Warning"|Anonymous->"<anonymous>"in"SystemTask."^(convst)letto_simple_string=function|Error->"$error"|Fatal->"$fatal"|Info->"$info"|Root->"$root"|Unit->"$unit"|Warning->"$warning"|Anonymous->"<anonymous>"letget_name=to_simple_stringletto_tagst=lettail="SystemTask"inletname=matchstwith|Error->"Error"|Fatal->"Fatal"|Info->"Info"|Root->"Root"|Unit->"Unit"|Warning->"Warning"|Anonymous->"Anonymous"inname^tail,[]letto_id=function|Error->"$error"|Fatal->"$fatal"|Info->"$info"|Root->"$root"|Unit->"$unit"|Warning->"$warning"|Anonymous->"<anonymous>"end(* of module SystemTask *)moduleQualifier=structtypet=|Protected|Local|Static|Virtual|PureVirtual|Rand|Randc|Automaticletto_stringq=letconv=function|Protected->"Protected"|Local->"Local"|Static->"Static"|Virtual->"Virtual"|PureVirtual->"PureVirtual"|Rand->"Rand"|Randc->"Randc"|Automatic->"Automatic"in"Qualifier."^(convq)letto_simple_string=function|Protected->"protected"|Local->"local"|Static->"static"|Virtual->"virtual"|PureVirtual->"pure virtual"|Rand->"rand"|Randc->"randc"|Automatic->"automatic"letto_tagq=lettail="Qualifier"inletname=matchqwith|Protected->"Protected"|Local->"Local"|Static->"Static"|Virtual->"Virtual"|PureVirtual->"PureVirtual"|Rand->"Rand"|Randc->"Randc"|Automatic->"Automatic"inname^tail,[]end(* of module Qualifier *)moduleNetType=structtypet=|Supply0|Supply1|Tri|Tri0|Tri1|Triand|Trior|Trireg|Wand|Wire|Uwire|Wor|Anonymousletto_stringnt=letconv=function|Supply0->"Supply0"|Supply1->"Supply1"|Tri->"Tri"|Tri0->"Tri0"|Tri1->"Tri1"|Triand->"Triand"|Trior->"Trior"|Trireg->"Trireg"|Wand->"Wand"|Wire->"Wire"|Uwire->"Wire"|Wor->"Wor"|Anonymous->"<anonymous>"in"NetType."^(convnt)letto_simple_string=function|Supply0->"supply0"|Supply1->"supply1"|Tri->"tri"|Tri0->"tri0"|Tri1->"tri1"|Triand->"triand"|Trior->"trior"|Trireg->"trireg"|Wand->"wand"|Wire->"wire"|Uwire->"uwire"|Wor->"wor"|Anonymous->"<anonymous>"letto_tagnt=lettail="NetType"inletname=matchntwith|Supply0->"Supply0"|Supply1->"Supply1"|Tri->"Tri"|Tri0->"Tri0"|Tri1->"Tri1"|Triand->"Triand"|Trior->"Trior"|Trireg->"Trireg"|Wand->"Wand"|Wire->"Wire"|Uwire->"Uwire"|Wor->"Wor"|Anonymous->"Anonymous"inname^tail,[]end(* of module NetType *)modulePortDirection=structtypet=|Input|Output|Inout|Ref|ConstRef|Anonymousletto_stringpd=letconv=function|Input->"Input"|Output->"Output"|Inout->"Inout"|Ref->"Ref"|ConstRef->"ConstRef"|Anonymous->"<anonymous>"in"PortDirection."^(convpd)letto_simple_string=function|Input->"input"|Output->"output"|Inout->"inout"|Ref->"ref"|ConstRef->"const_ref"|Anonymous->"<anonymous>"letto_tagpd=lettail="PortDirection"inletname=matchpdwith|Input->"Input"|Output->"Output"|Inout->"Inout"|Ref->"Ref"|ConstRef->"ConstRef"|Anonymous->"Anonymous"inname^tail,[]end(* of module PortDirection *)moduleGate=structtypet=|Gateofgate|And|Buf|Nand|Nor|Not|Or|Xnor|Xor|Anonymousletto_stringgate=letconv=function|Gateg->"Gate:"^(gate_to_stringg)|And->"And"|Buf->"Buf"|Nand->"Nand"|Nor->"NOr"|Not->"not"|Or->"Or"|Xnor->"XNOr"|Xor->"XOr"|Anonymous->"<anonymous>"in"Gate."^(convgate)letto_simple_string=function|Gateg->gate_to_repg|And->"and"|Buf->"buf"|Nand->"nand"|Nor->"nor"|Not->"not"|Or->"or"|Xnor->"xnor"|Xor->"xor"|Anonymous->"<anonymous>"letgate_to_tag=function|BUFIF0->"Bufif0"|BUFIF1->"Bufif1"|CMOS->"Cmos"|NMOS->"Nmos"|PMOS->"Pmos"|NOTIF0->"Notif0"|NOTIF1->"Notif1"|RCMOS->"Rcmos"|RNMOS->"Rnmos"|RPMOS->"Rpmos"|PULLDOWN->"Pulldown"|PULLUP->"Pullup"|RTRAN->"Rtran"|RTRANIF0->"Rtranif0"|RTRANIF1->"Rtranif1"|TRAN->"Tran"|TRANIF0->"Tranif0"|TRANIF1->"Tranif1"letto_taggate=lettail="Gate"inletname=matchgatewith|Gateg->gate_to_tagg|And->"And"|Buf->"Buf"|Nand->"Nand"|Nor->"Nor"|Not->"Not"|Or->"Or"|Xnor->"Xnor"|Xor->"Xor"|Anonymous->"Anonymous"inname^tail,[]end(* of module Gate *)moduleDataType=structtypet=|Byte|Shortint|Int|Longint|Integer|Time|Bit|Logic|Reg|Shortreal|Real|Realtime|Struct|Union|Enum|PsTypeofidentifier|String|Chandle|Event|VirtualInterfaceofidentifier|TypeReference|PsCovergroupofidentifier|ClassScopeTypeofidentifier|ClassType|Namedofidentifier|Implicitletto_stringdt=letconv=function|Byte->"Byte"|Shortint->"Shortint"|Int->"Int"|Longint->"Longint"|Integer->"Integer"|Time->"Time"|Bit->"Bit"|Logic->"Logic"|Reg->"Reg"|Shortreal->"Shortreal"|Real->"Real"|Realtime->"Realtime"|Struct->"Struct"|Union->"Union"|Enum->"Enum"|PsTypeid->"PsType:"^id|String->"String"|Chandle->"Chandle"|Event->"Event"|VirtualInterfaceid->"VirtualInterface:"^id|TypeReference->"TypeReferenct"|PsCovergroupid->"PsCovergroup:"^id|ClassScopeTypeid->"ClassScopeType:"^id|ClassType->"ClassType"|Namedid->"Named:"^id|Implicit->"Implicit"in"DataType."^(convdt)letget_name=function|PsTypeid|VirtualInterfaceid|PsCovergroupid|ClassScopeTypeid|Namedid->id|_->raiseNot_foundletto_simple_string=function|Byte->"byte"|Shortint->"shortint"|Int->"int"|Longint->"longint"|Integer->"integer"|Time->"time"|Bit->"bit"|Logic->"logic"|Reg->"reg"|Shortreal->"shortreal"|Real->"real"|Realtime->"realtime"|Struct->"struct"|Union->"union"|Enum->"enum"|PsTypeid->id|String->"string"|Chandle->"chandle"|Event->"event"|VirtualInterfaceid->id|TypeReference->"<type_reference>"|PsCovergroupid->id|ClassScopeTypeid->id|ClassType->"<class_type>"|Namedid->id|Implicit->"<implicit>"letto_tagdt=lettail="DataType"inletname,attrs=matchdtwith|Byte->"Byte",[]|Shortint->"Shortint",[]|Int->"Int",[]|Longint->"Longint",[]|Integer->"Integer",[]|Time->"Time",[]|Bit->"Bit",[]|Logic->"Logic",[]|Reg->"Reg",[]|Shortreal->"Shortreal",[]|Real->"Real",[]|Realtime->"Realtime",[]|Struct->"Struct",[]|Union->"Union",[]|Enum->"Enum",[]|PsTypeid->"PsType",[ident_attr_name,id]|String->"String",[]|Chandle->"Chandle",[]|Event->"Event",[]|VirtualInterfaceid->"VirtualInterface",[ident_attr_name,id]|TypeReference->"TypeReference",[]|PsCovergroupid->"PsCovergroup",[ident_attr_name,id]|ClassScopeTypeid->"ClassScopeType",[ident_attr_name,id]|ClassType->"ClassType",[]|Namedid->"Named",[ident_attr_name,id]|Implicit->"Implicit",[]inname^tail,attrsletget_identifier=function|PsTypeid|VirtualInterfaceid|PsCovergroupid|ClassScopeTypeid|Namedid->id|_->raiseNot_foundend(* of module DataType *)moduleExpression=structtypet=|IntegralNumberofstring|RealNumberofstring|TimeNumberofstring|Null|UOpofUnaryOperator.t|BOpofBinaryOperator.t|Cond|Paren|Taggedofidentifier|Inside|Concat|EmptyQueue|Last|MinTypeMax|Cast|Constraint|ConstraintIf|ConstraintForeach|ConstraintSet|Stream|PreIncr|PreDecr|PostIncr|PostDecr|OperatorAssignmentofAssignmentOperator.t|SystemFCallofidentifier|SystemTCallofSystemTask.t|TfCallofidentifier|MethodCallofidentifier|ArrayMethodCallUnique|ArrayMethodCallAnd|ArrayMethodCallOr|ArrayMethodCallXor|CycleDelayConstRange|ConstantRange|ClassNew|ClassNewAletto_stringe=letconv=function|IntegralNumbers->"IntegralNumber:"^s|RealNumbers->"RealNumber:"^s|TimeNumbers->"TimeNumber:"^s|Null->"Null"|UOpuo->UnaryOperator.to_stringuo|BOpbo->BinaryOperator.to_stringbo|Cond->"Cond"|Paren->"Paren"|Taggedid->"Tagged:"^id|Inside->"Inside"|Concat->"Concat"|EmptyQueue->"EmptyQueue"|Last->"Last"|MinTypeMax->"MinTypeMax"|Cast->"Cast"|Constraint->"Constraint"|ConstraintIf->"ConstraintIf"|ConstraintForeach->"ConstraintForeach"|ConstraintSet->"ConstraintSet"|Stream->"Stream"|PreIncr->"PreIncr"|PreDecr->"PreDecr"|PostIncr->"PostIncr"|PostDecr->"PostDecr"|OperatorAssignmentao->AssignmentOperator.to_stringao|SystemFCallid->"SystemFCall:"^id|SystemTCallst->SystemTask.to_stringst|TfCallid->"TfCall:"^id|MethodCallid->"MethodCall:"^id|ArrayMethodCallUnique->"ArrayMethodCallUnique"|ArrayMethodCallAnd->"ArrayMethodCallAnd"|ArrayMethodCallOr->"ArrayMethodCallOr"|ArrayMethodCallXor->"ArrayMethodCallXor"|CycleDelayConstRange->"CycleDelayConstRange"|ConstantRange->"ConstantRange"|ClassNew->"ClassNew"|ClassNewA->"ClassNewA"in"Expression."^(conve)letto_simple_string=function|IntegralNumbers->s|RealNumbers->s|TimeNumbers->s|Null->"null"|UOpuo->UnaryOperator.to_simple_stringuo|BOpbo->BinaryOperator.to_simple_stringbo|Cond->"?:"|Paren->"()"|Taggedid->"tagged:"^id|Inside->"inside"|Concat->"{{}}"|EmptyQueue->"{}"|Last->"last"|MinTypeMax->"<min_type_max>"|Cast->"cast"|Constraint->"->"|ConstraintIf->"if"|ConstraintForeach->"foreach"|ConstraintSet->"<constraint_set>"|Stream->"stream"|PreIncr->"++"|PreDecr->"--"|PostIncr->"++"|PostDecr->"--"|OperatorAssignmentao->AssignmentOperator.to_simple_stringao|SystemFCallid->id|SystemTCallst->SystemTask.to_simple_stringst|TfCallid->id|MethodCallid->"."^id|ArrayMethodCallUnique->".unique"|ArrayMethodCallAnd->".and"|ArrayMethodCallOr->".or"|ArrayMethodCallXor->".xor"|CycleDelayConstRange->"<cycle_delay_const_range>"|ConstantRange->"<constant_range>"|ClassNew->"new"|ClassNewA->"new()"letget_name=function|Taggedid|SystemFCallid|TfCallid|MethodCallid->id|SystemTCallst->SystemTask.get_namest|_->raiseNot_foundletget_value=function|IntegralNumbers|RealNumbers|TimeNumbers->s|_->raiseNot_foundletto_tage=lettail=""inletname,attrs=matchewith|IntegralNumbers->"IntegralNumber",[value_attr_name,XML.encode_strings]|RealNumbers->"RealNumber",[value_attr_name,XML.encode_strings]|TimeNumbers->"TimeNumber",[value_attr_name,XML.encode_strings]|Null->"Null",[]|UOpuo->UnaryOperator.to_taguo|BOpbo->BinaryOperator.to_tagbo|Cond->"Cond",[]|Paren->"Paren",[]|Taggedid->"Tagged",[ident_attr_name,id]|Inside->"Inside",[]|Concat->"Concat",[]|EmptyQueue->"EmptyQueue",[]|Last->"Last",[]|MinTypeMax->"MinTypeMax",[]|Cast->"Cast",[]|Constraint->"Constraint",[]|ConstraintIf->"ConstraintIf",[]|ConstraintForeach->"ConstraintForeach",[]|ConstraintSet->"ConstraintSet",[]|Stream->"Stream",[]|PreIncr->"PreIncr",[]|PreDecr->"PreDecr",[]|PostIncr->"PostIncr",[]|PostDecr->"PostDecr",[]|OperatorAssignmentao->AssignmentOperator.to_tagao|SystemFCallid->"System_f_call:",[ident_attr_name,id]|SystemTCallst->SystemTask.to_tagst|TfCallid->"TfCall",[ident_attr_name,id]|MethodCallid->"MethodCall",[ident_attr_name,id]|ArrayMethodCallUnique->"ArrayMethodCallUnique",[]|ArrayMethodCallAnd->"ArrayMethodCallAnd",[]|ArrayMethodCallOr->"AarrayMethodCallOr",[]|ArrayMethodCallXor->"ArrayMethodCallXor",[]|CycleDelayConstRange->"CycleDelayConstRange",[]|ConstantRange->"ConstantRange",[]|ClassNew->"ClassNew",[]|ClassNewA->"ClassNewA",[]inname^tail,attrsletget_identifier=function|Taggedid|SystemFCallid|TfCallid|MethodCallid->id|SystemTCallst->SystemTask.to_idst|_->raiseNot_foundend(* of module Expression *)moduleEventExpression=structtypet=|Posedge|Negedge|Edge|Iff|Or|Multiletto_stringee=letconv=function|Posedge->"Posedge"|Negedge->"Negedge"|Edge->"Edge"|Iff->"Iff"|Or->"Or"|Multi->"Multi"in"EventExpression."^(convee)letto_simple_string=function|Posedge->"posedge"|Negedge->"negedge"|Edge->"edge"|Iff->"iff"|Or->"or"|Multi->"<multi>"letto_tagee=lettail="EventExpr"inletname=matcheewith|Posedge->"Posedge"|Negedge->"Negedge"|Edge->"Edge"|Iff->"Iff"|Or->"Or"|Multi->"Multi"inname^tail,[]letget_identifier=function|_->raiseNot_foundend(* of module EventExpression *)modulePropertyExpression=structtypet=|Not|Strong|Weak|ImplicationOverlapped|ImplicationNonOverlapped|SharpMinusSharp|SharpEqSharp|Nexttime|S_nexttime|Always|S_always|Eventually|S_eventually|Until|S_until|Until_with|S_until_with|Implies|Iff|Accept_on|Sync_accept_on|Reject_on|Sync_reject_on|If|Case|Specletto_stringpe=letconv=function|Not->"Not"|Strong->"Strong"|Weak->"Weak"|ImplicationOverlapped->"ImplicationOverlapped"|ImplicationNonOverlapped->"ImplicationNonOverlapped"|SharpMinusSharp->"SharpMinusSharp"|SharpEqSharp->"SharpEqSharp"|Nexttime->"Nexttime"|S_nexttime->"S_nexttime"|Always->"Always"|S_always->"S_always"|Eventually->"Eventually"|S_eventually->"S_eventually"|Until->"Until"|S_until->"S_until"|Until_with->"Until_with"|S_until_with->"S_UntilWith"|Implies->"Implies"|Iff->"Iff"|Accept_on->"Accept_on"|Sync_accept_on->"Sync_accept_on"|Reject_on->"Reject_on"|Sync_reject_on->"Sync_reject_on"|If->"If"|Case->"Case"|Spec->"Spec"in"PropertyExpression."^(convpe)letto_simple_string=function|Not->"not"|Strong->"strong"|Weak->"weak"|ImplicationOverlapped->"|->"|ImplicationNonOverlapped->"|=>"|SharpMinusSharp->"#-#"|SharpEqSharp->"#=#"|Nexttime->"nexttime"|S_nexttime->"s_nexttime"|Always->"always"|S_always->"s_always"|Eventually->"eventually"|S_eventually->"s_eventually"|Until->"until"|S_until->"s_until"|Until_with->"until_with"|S_until_with->"s_until_with"|Implies->"implies"|Iff->"iff"|Accept_on->"accept_on"|Sync_accept_on->"sync_accept_on"|Reject_on->"reject_on"|Sync_reject_on->"sync_reject_on"|If->"if"|Case->"case"|Spec->"<spec>"letto_tagpe=lettail="PropertyExpr"inletname=matchpewith|Not->"Not"|Strong->"Strong"|Weak->"Weak"|ImplicationOverlapped->"ImplicationOverlapped"|ImplicationNonOverlapped->"ImplicationNonOverlapped"|SharpMinusSharp->"SharpMinusSharp"|SharpEqSharp->"SharpEqSharp"|Nexttime->"Nexttime"|S_nexttime->"S_nexttime"|Always->"Always"|S_always->"S_always"|Eventually->"Eventually"|S_eventually->"S_eventually"|Until->"Until"|S_until->"S_until"|Until_with->"Until_with"|S_until_with->"S_until_with"|Implies->"Implies"|Iff->"Iff"|Accept_on->"Accept_on"|Sync_accept_on->"Sync_accept_on"|Reject_on->"Reject_on"|Sync_reject_on->"Sync_reject_on"|If->"If"|Case->"Case"|Spec->"Spec"inname^tail,[]letget_identifier=function|_->raiseNot_foundend(* of module PropertyExpression *)moduleSequenceExpression=structtypet=|Concat|Repetition|OnMatch|And|Or|Intersect|First_match|Throughout|Within|Clockingletto_stringse=letconv=function|Concat->"Concat"|Repetition->"Repetition"|OnMatch->"OnMatch"|And->"And"|Or->"Or"|Intersect->"Intersect"|First_match->"First_match"|Throughout->"Throughout"|Within->"Within"|Clocking->"Clocking"in"SequenceExpression."^(convse)letto_simple_string=function|Concat->"<concat>"|Repetition->"<repetition>"|OnMatch->"<on_match>"|And->"and"|Or->"or"|Intersect->"intersect"|First_match->"first_match"|Throughout->"throughout"|Within->"within"|Clocking->"clocking"letto_tagse=lettail="SequenceExpr"inletname=matchsewith|Concat->"Concat"|Repetition->"Repetition"|OnMatch->"OnMatch"|And->"And"|Or->"Or"|Intersect->"Intersect"|First_match->"First_match"|Throughout->"Throughout"|Within->"Within"|Clocking->"Clocking"inname^tail,[]letget_identifier=function|_->raiseNot_foundend(* of module SequenceExpression *)moduleJoinSpec=structtypet=|NORMAL|ANY|NONEletto_string=function|NORMAL->"NORMAL"|ANY->"ANY"|NONE->"NONE"letto_rep=function|NORMAL->"join"|ANY->"join_any"|NONE->"join_none"endmoduleStatement=structtypet=|Empty|OperatorAssignmentofAssignmentOperator.t|Labeledofidentifier|BlockingAssignment|NonBlockingAssignment|Assign|Deassign|Force|Release|Case|Casex|Casez|Conditional|IncOrDec|SubroutineCall|SubroutineCallVoid|Disable|DisableFork|EventTrigger|EventTriggerNonBlocking|Forever|Repeat|While|For|Do|Foreach|Return|Break|Continue|ParBlockofidentifier*JoinSpec.t|ProceduralTimingControl|SeqBlockofidentifier|Wait|WaitFork|WaitOrder|ProceduralAssertion|ClockingDrive|Randsequenceofidentifier|Randcase|ExpectProperty|ExprofExpression.t|PExprofPropertyExpression.tletto_stringstmt=letconv=function|Empty->"Empty"|OperatorAssignmentao->AssignmentOperator.to_stringao|Labeledid->"Labeled:"^id|BlockingAssignment->"BlockingAssignment"|NonBlockingAssignment->"NonBlockingAssignment"|Assign->"Assign"|Deassign->"Deassign"|Force->"Force"|Release->"Release"|Case->"Case"|Casex->"Casex"|Casez->"Casez"|Conditional->"Conditional"|IncOrDec->"IncOrDec"|SubroutineCall->"SubroutineCall"|SubroutineCallVoid->"SubroutineCallVoid"|Disable->"Disable"|DisableFork->"DisableFork"|EventTrigger->"EventTrigger"|EventTriggerNonBlocking->"EventTriggerNonBlocking"|Forever->"Forever"|Repeat->"Repeat"|While->"While"|For->"For"|Do->"Do"|Foreach->"Foreach"|Return->"Return"|Break->"Break"|Continue->"Continue"|ParBlock(id,js)->"ParBlock:"^id^":"^(JoinSpec.to_stringjs)|ProceduralTimingControl->"ProceduralTimingControl"|SeqBlockid->"SeqBlock:"^id|Wait->"Wait"|WaitFork->"WaitFork"|WaitOrder->"WaitOrder"|ProceduralAssertion->"ProceduralAssertion"|ClockingDrive->"ClockingDrive"|Randsequenceid->"Randsequence:"^id|Randcase->"Randcase"|ExpectProperty->"ExpectProperty"|Expre->Expression.to_stringe|PExprpe->PropertyExpression.to_stringpein"Statement."^(convstmt)letget_name=function|Labeledid|ParBlock(id,_)|SeqBlockid|Randsequenceid->id|Expre->Expression.get_namee|_->raiseNot_foundletto_simple_string=function|Empty->";"|OperatorAssignmentao->AssignmentOperator.to_simple_stringao|Labeledid->id^":"|BlockingAssignment->"="|NonBlockingAssignment->"<="|Assign->"assign"|Deassign->"deassign"|Force->"force"|Release->"release"|Case->"case"|Casex->"casex"|Casez->"casez"|Conditional->"if"|IncOrDec->"<inc_or_dec>"|SubroutineCall->"<subroutine_call>"|SubroutineCallVoid->"<subroutine_call_void>"|Disable->"disable"|DisableFork->"disable_fork"|EventTrigger->"->"|EventTriggerNonBlocking->"->>"|Forever->"forever"|Repeat->"repeat"|While->"while"|For->"for"|Do->"do"|Foreach->"foreach"|Return->"return"|Break->"break"|Continue->"continue"|ParBlock(id,js)->"<par_block:"^id^":"^(JoinSpec.to_repjs)^">"|ProceduralTimingControl->"<procedural_timing_control>"|SeqBlockid->"<seq_block:"^id^">"|Wait->"wait"|WaitFork->"wait_fork"|WaitOrder->"wait_order"|ProceduralAssertion->"<procedural_assertion>"|ClockingDrive->"<clocking_drive>"|Randsequenceid->"randsequence("^id^")"|Randcase->"randcase"|ExpectProperty->"expect"|Expre->Expression.to_simple_stringe|PExprpe->PropertyExpression.to_simple_stringpeletto_tagstmt=lettail="Stmt"inletname,attrs=matchstmtwith|Empty->"Empty",[]|OperatorAssignmentao->AssignmentOperator.to_tagao|Labeledid->"Labeled",[label_attr_name,id]|BlockingAssignment->"BlockingAssignment",[]|NonBlockingAssignment->"NonBlockingAssignment",[]|Assign->"Assign",[]|Deassign->"Deassign",[]|Force->"Force",[]|Release->"Release",[]|Case->"Case",[]|Casex->"Casex",[]|Casez->"Casez",[]|Conditional->"If",[]|IncOrDec->"IncOrDec",[]|SubroutineCall->"SubroutineCall",[]|SubroutineCallVoid->"SubroutineCallVoid",[]|Disable->"Disable",[]|DisableFork->"DisableFork",[]|EventTrigger->"EventTrigger",[]|EventTriggerNonBlocking->"EventTriggerNonBlocking",[]|Forever->"Forever",[]|Repeat->"Repeat",[]|While->"While",[]|For->"For",[]|Do->"Do",[]|Foreach->"Foreach",[]|Return->"Return",[]|Break->"Break",[]|Continue->"Continue",[]|ParBlock(id,js)->"ParBlock",[ident_attr_name,id;"joinspec",JoinSpec.to_repjs]|ProceduralTimingControl->"ProceduralTimingControl",[]|SeqBlockid->"SeqBlock",[ident_attr_name,id]|Wait->"Wait",[]|WaitFork->"WaitFork",[]|WaitOrder->"WaitOrder",[]|ProceduralAssertion->"ProceduralAssertion",[]|ClockingDrive->"ClockingDrive",[]|Randsequenceid->"Randsequence",[ident_attr_name,id]|Randcase->"Randcase",[]|ExpectProperty->"ExpectProperty",[]|Expre->Expression.to_tage|PExprpe->PropertyExpression.to_tagpeinname^tail,attrsletget_identifier=function|Labeledid|ParBlock(id,_)|SeqBlockid|Randsequenceid->id|Expre->Expression.get_identifiere|PExprpe->PropertyExpression.get_identifierpe|_->raiseNot_foundend(* of module Statement *)moduleCompilerDirective=structtypet=|Defineofidentifier|Undefofidentifier|Undefineall|Includeofstring|SysIncludeofstring|Timescaleofstring*string|Errorofstring|Lineofstring*string*string|Resetall|Default_nettypeNone|Default_nettype|Pragmaofidentifier|Begin_keywordsofstring|End_keywords|Default_decay_timeofstring|Default_trireg_strengthofstring|Delay_mode_distributed|Delay_mode_path|Delay_mode_unit|Delay_mode_zero|Celldefine|Endcelldefine|Unconnected_drive|Nounconnected_driveletto_stringcd=letconv=function|Defineid->"Define:"^id|Undefid->"Undef:"^id|Undefineall->"Undefineall"|Includes->"Include:"^s|SysIncludes->"SysInclude:"^s|Timescale(s1,s2)->"Timescale:"^s1^":"^s2|Errors->"Error:"^s|Line(n1,s,n2)->"Line:"^n1^":"^s^":"^n2|Resetall->"Resetall"|Default_nettypeNone->"Default_nettypeNone"|Default_nettype->"Default_nettype"|Pragmaid->"Pragma:"^id|Begin_keywordss->"Begin_keywords:"^s|End_keywords->"End_keywords"|Default_decay_times->"Default_decay_time:"^s|Default_trireg_strengths->"Default_trireg_strength:"^s|Delay_mode_distributed->"Delay_mode_distributed"|Delay_mode_path->"Delay_mode_path"|Delay_mode_unit->"Delay_mode_unit"|Delay_mode_zero->"Delay_mode_zero"|Celldefine->"Celldfine"|Endcelldefine->"Endcelldefine"|Unconnected_drive->"Unconnected_drive"|Nounconnected_drive->"Nounconnected_drive"in"CompilerDirective."^(convcd)letto_simple_string=function|Defineid->"`define "^id|Undefid->"`undef "^id|Undefineall->"`undefineall"|Includes->"`include "^s|SysIncludes->"`include "^s|Timescale(s1,s2)->"`timescale "^s1^"/"^s2|Errors->"`error "^s|Line(n1,s,n2)->"`line "^n1^" "^s^" "^n2|Resetall->"`resetall"|Default_nettypeNone->"`default_nettype none"|Default_nettype->"`default_nettype"|Pragmaid->"`pragma "^id|Begin_keywordss->"`begin_keywords "^s|End_keywords->"`end_keywords"|Default_decay_times->"`default_decay_time "^s|Default_trireg_strengths->"`default_trireg_strength "^s|Delay_mode_distributed->"`delay_mode_distributed"|Delay_mode_path->"`delay_mode_path"|Delay_mode_unit->"`delay_mode_unit"|Delay_mode_zero->"`delay_mode_zero"|Celldefine->"`celldefine"|Endcelldefine->"`endcelldefine"|Unconnected_drive->"`unconnected_drive"|Nounconnected_drive->"`nounconnected_drive"letget_name=function|Defineid|Undefid|Pragmaid->id|_->raiseNot_foundletto_tagcd=lettail="Directive"inletname,attrs=matchcdwith|Defineid->"Define",[ident_attr_name,id]|Undefid->"Undef",[ident_attr_name,id]|Undefineall->"Undefineall",[]|Includes->"Include",[path_attr_name,strlit_to_encoded_paths]|SysIncludes->"SysInclude",[path_attr_name,strlit_to_encoded_paths]|Timescale(s1,s2)->"Timescale",["unit",s1;"precision",s2]|Errors->"Error",["message",XML.encode_strings]|Line(n1,s,n2)->"Line",["line_number",n1;path_attr_name,strlit_to_encoded_paths;"level",n2]|Resetall->"Resetall",[]|Default_nettypeNone->"Default_nettypeNone",[]|Default_nettype->"Default_nettype",[]|Pragmaid->"Pragma",[ident_attr_name,id]|Begin_keywordss->"Begin_keywords",["version",XML.encode_strings]|End_keywords->"End_keywords",[]|Default_decay_times->"Default_decay_time",["time",s]|Default_trireg_strengths->"Default_trireg_strength",["strength",s]|Delay_mode_distributed->"Delay_mode_distributed",[]|Delay_mode_path->"Delay_mode_path",[]|Delay_mode_unit->"Delay_mode_unit",[]|Delay_mode_zero->"Delay_mode_zero",[]|Celldefine->"Celldefine",[]|Endcelldefine->"Endcelldefine",[]|Unconnected_drive->"Unconnected_drive",[]|Nounconnected_drive->"Nounconnected_drive",[]inname^tail,attrsend(* of module CompilerDirective *)moduleStrength=structtypet=|HIGHZ0|HIGHZ1|LARGE|MEDIUM|SMALL|PULL0|PULL1|STRONG0|STRONG1|WEAK0|WEAK1|Anonymousletto_string=function|HIGHZ0->"HIGHZ0"|HIGHZ1->"HIGHZ1"|LARGE->"LARGE"|MEDIUM->"MEDIUM"|SMALL->"SMALL"|PULL0->"PULL0"|PULL1->"PULL1"|STRONG0->"STRONG0"|STRONG1->"STRONG1"|WEAK0->"WEAK0"|WEAK1->"WEAK1"|Anonymous->"<anonymous>"letto_rep=function|HIGHZ0->"highz0"|HIGHZ1->"highz1"|LARGE->"large"|MEDIUM->"medium"|SMALL->"small"|PULL0->"pull0"|PULL1->"pull1"|STRONG0->"strong0"|STRONG1->"strong1"|WEAK0->"weak0"|WEAK1->"weak1"|Anonymous->"<anonymous>"letto_tagstrength=lettail="Strength"inletname=matchstrengthwith|HIGHZ0->"Highz0"|HIGHZ1->"Highz1"|LARGE->"Large"|MEDIUM->"Medium"|SMALL->"Small"|PULL0->"Pull0"|PULL1->"Pull1"|STRONG0->"Strong0"|STRONG1->"Strong1"|WEAK0->"Weak0"|WEAK1->"Weak1"|Anonymous->"Anonymous"inname^tail,[]endmoduleSimpleImmediateAssertion=structtypet=|Assert|Assume|Coverletto_stringsia=letconv=function|Assert->"Assert"|Assume->"Assume"|Cover->"Cover"in"SimpleImmediateAssertion."^(convsia)letto_simple_string=function|Assert->"assert"|Assume->"assume"|Cover->"cover"letto_tagsia=lettail="ImmediateAssertion"inletname=matchsiawith|Assert->"Assert"|Assume->"Assume"|Cover->"Cover"inname^tail,[]endmoduleDeferredImmediateAssertion=structtypet=(* strings are always "0" *)|Assertofstring|Assumeofstring|Coverofstring|Anonymousletto_stringdia=letconv=function|Asserts->"Assert:"^s|Assumes->"Assume:"^s|Covers->"Cover:"^s|Anonymous->"<anonymous>"in"DeferredImmediateAssertion."^(convdia)letto_simple_string=function|Asserts->"assert "^s|Assumes->"assume "^s|Covers->"cover "^s|Anonymous->"<anonymous>"letto_tagdia=lettail="DeferredImmediateAssertion"inletname=matchdiawith|Assert_->"Assert"|Assume_->"Assume"|Cover_->"Cover"|Anonymous->"Anonymous"inname^tail,[]endmoduleConcurrentAssertion=structtypet=|AssertProp|AssumeProp|CoverProp|CoverSeq|RestrictPropletto_stringca=letconv=function|AssertProp->"AssertProp"|AssumeProp->"AssumeProp"|CoverProp->"CoverProp"|CoverSeq->"CoverSeq"|RestrictProp->"RestrictProp"in"ConcurrentAssertion."^(convca)letto_simple_string=function|AssertProp->"assert property"|AssumeProp->"assume property"|CoverProp->"cover property"|CoverSeq->"cover sequence"|RestrictProp->"restrict property"letto_tagca=lettail="ConcurrentAssertion"inletname=matchcawith|AssertProp->"AssertProp"|AssumeProp->"AssumeProp"|CoverProp->"CoverProp"|CoverSeq->"CoverSeq"|RestrictProp->"RestrictProp"inname^tail,[]endmoduleModuleSpec=structtypet=|NORMAL|MACROletto_string=function|NORMAL->"NORMAL"|MACRO->"MACRO"letto_rep=function|NORMAL->"module"|MACRO->"macromodule"endmoduleAlwaysSpec=structtypet=|NORMAL|COMB|FF|LATCHletto_string=function|NORMAL->"NORMAL"|COMB->"COMB"|FF->"FF"|LATCH->"LATCH"letto_rep=function|NORMAL->"always"|COMB->"always_comb"|FF->"always_ff"|LATCH->"always_latch"endmoduleBinsSpec=structtypet=|Normal|Illegal|Ignoreletto_string=function|Normal->"Normal"|Illegal->"Illegal"|Ignore->"Ignore"letto_simple_string=function|Normal->"normal"|Illegal->"illegal"|Ignore->"ignore"letto_rep=function|Normal->"bins"|Illegal->"illegal_bins"|Ignore->"ignore_bins"end