YBFjXdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZgdZGddeZGdd eZGd d eZdS) z pygments.lexers.hdl ~~~~~~~~~~~~~~~~~~~ Lexers for hardware descriptor languages. :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) RegexLexerbygroupsincludeusingthiswords) TextCommentOperatorKeywordNameStringNumber Punctuation Whitespace) VerilogLexerSystemVerilogLexer VhdlLexerceZdZdZdZddgZdgZdgZdZdZ dZ d e j d fd e fd eeje fd e jfde jfdefdedfdejfdejfdejfdejfdejfdejfdejfdefdejfdefdefdejfdee eje fdee eje d fe!d!d"#efe!d$d%d"&e j fe!d'd(d"&ej"fe!d)d"#ej#fd*ej$fd+efd,efgd-ed.fd/ejfd0efd eeje fd1efgd2e j fd3e jfd4e jd.fd5e j fd6e j fd7e d.fgd8ejd.fgd9Z%d:Z&d;S)/-] [()\[\],.;\'] `[a-zA-Z_]\w*^(\s*)(package)(\s+)^(\s*)(import)(\s+)import)qalways always_comb always_ff always_latchandassign automaticbeginbreakbufbufif0bufif1casecasexcasezcmosconstcontinuedeassigndefaultdefparamdisabledoedgeelseendendcase endfunction endgenerate endmodule endpackage endprimitive endspecifyendtableendtaskenumeventfinalforforceforeverforkfunctiongenerategenvarhighz0highz1ifinitialinoutinputintegerjoinlarge localparam macromodulemediummodulenandnegedgenmosnornotnotif0notif1oroutputpacked parameterpmosposedge primitivepull0pull1pulldownpulluprcmosrefreleaserepeatreturnrnmosrpmosrtranrtranif0rtranif1scalaredsignedsmallspecify specparamstrengthr strong0strong1structtabletasktrantranif0tranif1typetypedefunsignedvarvectoredvoidwaitweak0weak1whilexnorxor\bsuffix) accelerateautoexpand_vectornets celldefinedefault_nettyperBelsif endcelldefineendif endprotect endprotectedexpand_vectornetsifdefifndefr noacceleratenoexpand_vectornetsnoremove_gatenamesnoremove_netnamesnounconnected_driveprotect protectedremove_gatenamesremove_netnamesresetall timescaleunconnected_driveundef`)prefixr)4bits bitstorealbitstoshortreal countdriversdisplayfclosefdisplayfinishfloorfmonitorfopenfstrobefwrite getpatternhistoryincsaver\itorkeylistlogmonitor monitoroff monitoronnokeynologprinttimescalerandomreadmembreadmemhrealtime realtobitsreset reset_count reset_valuerestartrtoisavescalescopeshortrealtobits showscopes showvariablesshowvars sreadmemb sreadmemhstimestopstrobetime timeformatwritez\$)byteshortintintlongintr]rbitlogicregsupply0supply1tritriandtriortri0tri1trireguwirewirewand worshortrealrealr[a-zA-Z_]\w*:(?!:)\$?[a-zA-Z_]\w*\\(\S+)"#pop/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3}) [^\\"\n]+\\[^/\n]+/[*](.|\n)*?[*]/z//.*?\n/ (?<=\\)\n\n [\w:]+\*?rootr rr)c@d}d|vr|dz }d|vr|dz }d|vr|dz }|S)z`Verilog code will use one of reg/wire/assign for sure, and that is not common elsewhere.rrg?rr/)textresults AC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/hdl.py analyse_textzVerilogLexer.analyse_textsF D== cMF T>> cMF t   cMF N)'__name__ __module__ __qualname____doc__namealiases filenames mimetypesurl version_added_wsr PreprocrrrEscapeSingle MultilinerCharrFloatHexBinIntegerOctr r Constantr Namespacer rBuiltinTypeLabeltokensrrrrrrs D#GI!"I 1CM )CW_g 6 Z ((6=*== > -w~ > .0A B  $ VX & Dfk R 5v| D -v| < *FJ 7 #VZ 0 $fn 5 $fj 1 & ! &. ) !8 , { + t} - $hhz7;Ld&S&S T #XXj':KT%R%R  U:"CH#III$% (U"&e555_ UWU , , ,\ U1:? @@@ \   #DJ /  &  WL \66 " ? O 6 " ((6=*== > FO   ) '"3 4  0 7? # 7? + J '  4>6 2 {``FD     rrc eZdZdZdZddgZddgZdgZdZdZ d Z gd e e e jd fd e e eje fd e e eje dfde fde eje fde jfde jfdefdedfdejfdejfdejfdejfdejfdejfdejfdefdejfdefed d!"ejfd#efd$e j!fed%d!"efd&e ej"e e j#fd'e ej"e e j#fd(e ej"e ee e j#fed)d!"ej$fed*d!"e jfed+d!"e j%fd,e j&fd-e fd.e fd/ed0fd1ejfd2efde eje fd3efgd4e jfd5e jfd6e jd0fd7e jfd8e jfd9e d0fgd:e jd0fgd;Z'ddesignr?r@rArBrCrD endchecker endclocking endconfigrErFendgroup endinterfacerGrHrI endprogram endproperty endsequencerJrKrLrM eventuallyexpectexportexternrO first_matchrPrQforeachrRrSforkjoinrTrUrVglobalrWrXrYiffifnone ignore_bins illegal_binsimplies implementsr)incdirrrZr[r\instance interconnect interface intersectr^join_any join_noner_letliblistlibrarylocalr`ramatchesrbmodportrcrdrenettypenewnexttimerfrgnoshowcancelledrhrirjnullrkrlpackagermrnrorprqpriorityprogrampropertyrrrrsrtrupulsestyle_ondetectpulsestyle_oneventpurerandrandcrandcase randsequencervrw reject_onrxryrestrictrzr{r|r}r~rs_always s_eventually s_nexttimes_until s_until_withrsequence showcancelledrsoftsolverrstaticstrongrrrsupersync_accept_onsync_reject_onrtaggedrr throughout timeprecisiontimeunitrrrrunionuniqueunique0until until_withuntypeduservirtualr wait_orderweakrrrwildcardwithwithinrrz(class)(\s+)([a-zA-Z_]\w*)z(extends)(\s+)([a-zA-Z_]\w*)z,(endclass\b)(?:(\s*)(:)(\s*)([a-zA-Z_]\w*))?)!rrchandler:rNrr]rrrrrr shortrealrr rrrrrrrrrrrrrrrrwor)z `__FILE__z `__LINE__z`begin_keywordsz `celldefinez`default_nettypez`definez`elsez`elsifz `end_keywordsz`endcelldefinez`endifz`ifdefz`ifndefz`includez`linez`nounconnected_drivez`pragmaz `resetallz `timescalez`unconnected_drivez`undefz `undefineall)z$exitz$finishz$stopz $realtimez$stimez$timez$printtimescalez $timeformatz $bitstorealz$bitstoshortrealz$castz$itorz $realtobitsz$rtoiz$shortrealtobitsz$signedz $unsignedz$bitsz $isunboundedz $typenamez $dimensionsz$highz $incrementz$leftz$lowz$rightz$sizez$unpacked_dimensionsz$acosz$acoshz$asinz$asinhz$atanz$atan2z$atanhz$ceilz$clog2z$cosz$coshz$expz$floorz$hypotz$lnz$log10z$powz$sinz$sinhz$sqrtz$tanz$tanhz $countbitsz $countonesz $isunknownz$onehotz$onehot0z$infoz$errorz$fatalz$warningz$assertcontrolz$assertfailoffz $assertfailonz $assertkillz$assertnonvacuousonz $assertoffz $assertonz$assertpassoffz $assertpassonz$assertvacuousoffz$changedz $changed_gclkz$changing_gclkz $falling_gclkz$fellz $fell_gclkz $future_gclkz$pastz $past_gclkz $rising_gclkz$rosez $rose_gclkz$sampledz$stablez $stable_gclkz $steady_gclkz$coverage_controlz $coverage_getz$coverage_get_maxz$coverage_mergez$coverage_savez $get_coveragez$load_coverage_dbz$set_coverage_db_namez$dist_chi_squarez $dist_erlangz$dist_exponentialz $dist_normalz $dist_poissonz$dist_tz $dist_uniformz$randomz$q_addz$q_examz$q_fullz $q_initializez $q_removez$async$and$arrayz$async$and$planez$async$nand$arrayz$async$nand$planez$async$nor$arrayz$async$nor$planez$async$or$arrayz$async$or$planez$sync$and$arrayz$sync$and$planez$sync$nand$arrayz$sync$nand$planez$sync$nor$arrayz$sync$nor$planez$sync$or$arrayz$sync$or$planez$systemz$displayz $displaybz $displayhz $displayoz$monitorz $monitorbz $monitorhz $monitoroz $monitoroffz $monitoronz$strobez$strobebz$strobehz$strobeoz$writez$writebz$writehz$writeoz$fclosez $fdisplayz $fdisplaybz $fdisplayhz $fdisplayoz$feofz$ferrorz$fflushz$fgetcz$fgetsz $fmonitorz $fmonitorbz $fmonitorhz $fmonitoroz$fopenz$freadz$fscanfz$fseekz$fstrobez $fstrobebz $fstrobehz $fstrobeoz$ftellz$fwritez$fwritebz$fwritehz$fwriteoz$rewindz$sformatz $sformatfz$sscanfz$swritez$swritebz$swritehz$swriteoz$ungetcz $readmembz $readmemhz $writemembz $writememhz$test$plusargsz$value$plusargsz$dumpallz $dumpfilez $dumpflushz $dumplimitz$dumpoffz$dumponz $dumpportsz $dumpportsallz$dumpportsflushz$dumpportslimitz $dumpportsoffz $dumpportsonz $dumpvarsrrrrrrrrrrz//.*?$r r r r r N)(rrrrrrrrrrr rrr r!r r,rr"r#r$rr%rr&r(r*r)r'r rWordr r+ DeclarationClassr.r-r/r0rrrrrsn D%G!I'(I 7CM )C} *go!F!F P} $hhz7;Lj&Y&Y Z} $XXj':KZ%X%XZb c} Z } ((6=*== > } .w~ >} /0A B}  $} VX &} Efk R} 6v| D} .v| <} E Z !} $G Z %} (G ^ )} ,S Z -} 2F #3} 4fn -5} 8"8 ,9} :U%e 4 4 4hm D;} > ,?} @t} -A} DU(RS)))TU* E} \+ Xg):tz B B D]} `- Xg):tz B B Da} d= Xg):{JPTPZ [ [ ]e} jU@   \ k} BUN  _ C} TUMZ [M!M!M!\\]N U} t#DJ /u} v  &w} x y} ~66 " ? O 6 " ((6=*== > FO   ) '"3 4  / 7? # 7? + J '  4>6 2 ]QQFFFrrceZdZdZdZdgZddgZdgZdZdZ e j e j zZ defd eejefd ejfd ejfd ejfd efdejfdefdefdeeeejfdeeeefdeeeejefdeeeejfdeejejfeddejfdeeeejfdeeeejeeeejee fdeejeeefdeeeedfe de de d d!efge dd!ejfdefd"ed#fged$dej!fged%defgd&e"j#fd'e"j#fd(e"j$fd)e"j%fd*e"j&fd+e"j'fgd,Z(d-S).rz For VHDL source code. vhdlz*.vhdlz*.vhdz text/x-vhdlz"https://en.wikipedia.org/wiki/VHDLr4rrz--.*?$rz'(U|X|0|1|Z|W|L|H|-)'r$z '[a-z_]\w*r%z "[^\n\\"]*"z(library)(\s+)([a-z_]\w*)z(use)(\s+)(entity)z(use)(\s+)([a-z_][\w.]*\.)(all)z(use)(\s+)([a-z_][\w.]*)z(std|ieee)(\.[a-z_]\w*))stdieeeworkrrz"(entity|component)(\s+)([a-z_]\w*)zN(architecture|configuration)(\s+)([a-z_]\w*)(\s+)(of)(\s+)([a-z_]\w*)(\s+)(is)z ([a-z_]\w*)(:)(\s+)(process|for)z (end)(\s+)endblocktypeskeywordsnumbersz [a-z_]\w*;r)booleanr characterseverity_levelr]r delay_lengthnaturalpositiver bit_vectorfile_open_kindfile_open_status std_ulogicstd_ulogic_vector std_logicstd_logic_vectorrr)_absaccessafterr8allr. architecturearrayr9 attributer1blockbodybufferbusr6 component configurationconstant disconnectdowntorBrrCentityexitfilerPrTrUgenericgroupguardedrYimpureininertialr[islabelrilinkageliteralloopmapmodrdrnnextrgrhrqofonopenrkothersoutrrport postponed procedureprocessrxrangerecordregisterrejectremrzrolrorselectseveritysignalsharedslasllsrasrlsubtypethento transportrunitsrrvariablerwhenrrrrz\d{1,2}#[0-9a-f_]+#?z\d+z(\d+\.\d*|\.\d+|\d+)E[+-]?\d+z X"[0-9a-f_]+"z O"[0-7_]+"z B"[01_]+")rrrrrN))rrrrrrrrrrre MULTILINE IGNORECASEflagsrrrr"r r#r$r%r r Attributerr r,rrrrrr.rr)r&r'r*r(r0rrrrrus DhG7#II .CM L2= (EZ ((6=*== >  ' .0A B %v{ 3 !8 , DN + { + V $ ) Xgz4> : : < "HHWj'$J$J K / Xgz4>7 C C E ( Xgz4> : : < ' Xdndn 5 5 7 U*5 9 9 9 ^  2 Xgz4: 6 6 8. Xgz4:z7Jj*g77 81 Xdj(J @ @ B HHUU4[[*==z J GG   GJ   GI   4 I% N GJ   4: & Z ; '  UGPU VVV \   U0 9>!???"#  *%fn 5 V^ $ -v| < vz * FJ ' 6: &  SQQFFFrr)rrpygments.lexerrrrrrrpygments.tokenr r r r r rrrr__all__rrrrrrrsi LLLLLLLLLLLLLLLL$$$$$$$$$$$$$$$$$$$$$$ > = ={{{{{:{{{|````````F]]]]] ]]]]]r