ó Z-Qc@sÏdZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZdddgZdefd„ƒYZdefd „ƒYZdefd „ƒYZdS( sÔ pygments.lexers.hdl ~~~~~~~~~~~~~~~~~~~ Lexers for hardware descriptor languages. :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. iÿÿÿÿN(t RegexLexertbygroupstincludetusingtthis( tTexttCommenttOperatortKeywordtNametStringtNumbert PunctuationtErrort VerilogLexertSystemVerilogLexert VhdlLexercBsOeZdZdZddgZdgZdgZdZidej dfde fd e fd e fd ej fd ej fd e fdedfdejfdejfdejfdejfdejfdejfdejfdefdejfdefdefde fdejfdee eje ƒfdee eje ƒdfd efd!ej fd"ejfd#ejfd$ejfd%efgd&6d'ed(fd)ejfd*efd efd+efgd6d,ej fd-ej fd.ej d(fd/ej fd0ej fdej d(fgd6d1ejd(fgd6Z d2„Z!RS(3s[ For verilog source code with preprocessor directives. *New in Pygments 1.4.* tverilogtvs*.vstext/x-verilogs(?:\s|//.*?\n|/[*].*?[*]/)+s ^\s*`definetmacros\ns\s+s\\\ns/(\\\n)?/(\n|(.|\n)*?[^\\]\n)s/(\\\n)?[*](.|\n)*?[*](\\\n)?/s[{}#@]sL?"tstrings4L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'s%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?s(\d+\.\d*|\.\d+|\d+[fF])[fF]?s([0-9]+)|(\'h)[0-9a-fA-F]+s([0-9]+)|(\'b)[0-1]+s([0-9]+)|(\'d)[0-9]+s([0-9]+)|(\'o)[0-7]+s\'[01xz]s\d+[Ll]?s\*/s[~!%^&*+=|?:<>/-]s [()\[\],.;\']s`[a-zA-Z_][a-zA-Z0-9_]*s^(\s*)(package)(\s+)s^(\s*)(import)(\s+)timports%(always|always_comb|always_ff|always_latch|and|assign|automatic|begin|break|buf|bufif0|bufif1|case|casex|casez|cmos|const|continue|deassign|default|defparam|disable|do|edge|else|end|endcase|endfunction|endgenerate|endmodule|endpackage|endprimitive|endspecify|endtable|endtask|enum|event|final|for|force|forever|fork|function|generate|genvar|highz0|highz1|if|initial|inout|input|integer|join|large|localparam|macromodule|medium|module|nand|negedge|nmos|nor|not|notif0|notif1|or|output|packed|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|ref|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|signed|small|specify|specparam|strength|string|strong0|strong1|struct|table|task|tran|tranif0|tranif1|type|typedef|unsigned|var|vectored|void|wait|weak0|weak1|while|xnor|xor)\bsV`(accelerate|autoexpand_vectornets|celldefine|default_nettype|else|elsif|endcelldefine|endif|endprotect|endprotected|expand_vectornets|ifdef|ifndef|include|noaccelerate|noexpand_vectornets|noremove_gatenames|noremove_netnames|nounconnected_drive|protect|protected|remove_gatenames|remove_netnames|resetall|timescale|unconnected_drive|undef)\bs·\$(bits|bitstoreal|bitstoshortreal|countdrivers|display|fclose|fdisplay|finish|floor|fmonitor|fopen|fstrobe|fwrite|getpattern|history|incsave|input|itor|key|list|log|monitor|monitoroff|monitoron|nokey|nolog|printtimescale|random|readmemb|readmemh|realtime|realtobits|reset|reset_count|reset_value|restart|rtoi|save|scale|scope|shortrealtobits|showscopes|showvariables|showvars|sreadmemb|sreadmemh|stime|stop|strobe|time|timeformat|write)\bs•(byte|shortint|int|longint|integer|time|bit|logic|reg|supply0|supply1|tri|triand|trior|tri0|tri1|trireg|uwire|wire|wand|worshortreal|real|realtime)\bs[a-zA-Z_][a-zA-Z0-9_]*:(?!:)s[a-zA-Z_][a-zA-Z0-9_]*troott"s#pops/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})s [^\\"\n]+s\\s[^/\n]+s/[*](.|\n)*?[*]/s//.*?\nt/s (?<=\\)\ns[a-zA-Z0-9_:]+\*?ccs_xXtj||ƒD]D\}}}|tkrI|jƒrItj}qIn|||fVqWdS(N(Rtget_tokens_unprocessedR tisuppertConstant(tselfttexttindexttokentvalue((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyRzs   ("t__name__t __module__t__doc__tnametaliasest filenamest mimetypest_wsRtPreprocRtSinglet MultilineR R tCharR tFloattHextIntegertOctR RR RRRt NamespacetBuiltintTypetLabeltEscapettokensR(((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyRsl                                   c Bs†eZdZdZddgZddgZdgZdZidej dfd e e e j e ƒfd e e e j e ƒd fd e fd e fde fdejfdejfdefdedfdejfdejfdejfdejfdejfdejfdejfdefdejfdefdefdefd ejfd!e fd"ej fd#ejfd$e e e ƒd%fd&e jfd'ejfd(efgd)6d(ejd*fgd%6d+ed*fd,ej fd-efdefd.efgd6d/ej fd0ejfd1ejd*fd2ej fd3ej fd ej d*fgd6d4ej d*fgd 6Z!d5„Z"d6„Z#RS(7s… Extends verilog lexer to recognise all SystemVerilog keywords from IEEE 1800-2009 standard. *New in Pygments 1.5.* t systemverilogtsvs*.svs*.svhstext/x-systemverilogs(?:\s|//.*?\n|/[*].*?[*]/)+s ^\s*`defineRs^(\s*)(package)(\s+)s^(\s*)(import)(\s+)Rs\ns\s+s\\\ns/(\\\n)?/(\n|(.|\n)*?[^\\]\n)s/(\\\n)?[*](.|\n)*?[*](\\\n)?/s[{}#@]sL?"Rs4L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'s%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?s(\d+\.\d*|\.\d+|\d+[fF])[fF]?s([0-9]+)|(\'h)[0-9a-fA-F]+s([0-9]+)|(\'b)[0-1]+s([0-9]+)|(\'d)[0-9]+s([0-9]+)|(\'o)[0-7]+s\'[01xz]s\d+[Ll]?s\*/s[~!%^&*+=|?:<>/-]s [()\[\],.;\']s`[a-zA-Z_][a-zA-Z0-9_]*s[(accept_on|alias|always|always_comb|always_ff|always_latch|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|checker|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endchecker|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|eventually|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|global|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|implies|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|let|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nexttime|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|reject_on|release|repeat|restrict|return|rnmos|rpmos|rtran|rtranif0|rtranif1|s_always|s_eventually|s_nexttime|s_until|s_until_with|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong|strong0|strong1|struct|super|supply0|supply1|sync_accept_on|sync_reject_on|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unique0|unsigned|until|until_with|untyped|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\bsô(`__FILE__|`__LINE__|`begin_keywords|`celldefine|`default_nettype|`define|`else|`elsif|`end_keywords|`endcelldefine|`endif|`ifdef|`ifndef|`include|`line|`nounconnected_drive|`pragma|`resetall|`timescale|`unconnected_drive|`undef|`undefineall)\bs(\$display|\$displayb|\$displayh|\$displayo|\$dumpall|\$dumpfile|\$dumpflush|\$dumplimit|\$dumpoff|\$dumpon|\$dumpports|\$dumpportsall|\$dumpportsflush|\$dumpportslimit|\$dumpportsoff|\$dumpportson|\$dumpvars|\$fclose|\$fdisplay|\$fdisplayb|\$fdisplayh|\$fdisplayo|\$feof|\$ferror|\$fflush|\$fgetc|\$fgets|\$fmonitor|\$fmonitorb|\$fmonitorh|\$fmonitoro|\$fopen|\$fread|\$fscanf|\$fseek|\$fstrobe|\$fstrobeb|\$fstrobeh|\$fstrobeo|\$ftell|\$fwrite|\$fwriteb|\$fwriteh|\$fwriteo|\$monitor|\$monitorb|\$monitorh|\$monitoro|\$monitoroff|\$monitoron|\$plusargs|\$readmemb|\$readmemh|\$rewind|\$sformat|\$sformatf|\$sscanf|\$strobe|\$strobeb|\$strobeh|\$strobeo|\$swrite|\$swriteb|\$swriteh|\$swriteo|\$test|\$ungetc|\$value\$plusargs|\$write|\$writeb|\$writeh|\$writememb|\$writememh|\$writeo)\bs (class)(\s+)t classnames•(byte|shortint|int|longint|integer|time|bit|logic|reg|supply0|supply1|tri|triand|trior|tri0|tri1|trireg|uwire|wire|wand|worshortreal|real|realtime)\bs[a-zA-Z_][a-zA-Z0-9_]*:(?!:)s[a-zA-Z_][a-zA-Z0-9_]*Rs#popRs/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})s [^\\"\n]+s\\s[^/\n]+s/[*](.|\n)*?[*]/s//.*?\nRs (?<=\\)\ns[a-zA-Z0-9_:]+\*?ccs_xXtj||ƒD]D\}}}|tkrI|jƒrItj}qIn|||fVqWdS(N(RRR RR(RRRRR ((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyRs   cCs&|jdƒs|jdƒr"dSdS(Ns//s/*gà?(t startswith(R((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyt analyse_text s($R!R"R#R$R%R&R'R(RR)RRRR1R*R+R R R,R R-R.R/R0R RR RR2R3R4tClassR5R6RR;(((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyR„sp                                    cBs!eZdZdZdgZddgZdgZejej BZ ide fde fde fde j fd ejfd efd ejfd efd efdeee ejƒfdeee eƒfdeee ejƒfdeee ejƒfdeee eje ee eje eƒ fdeeeƒe ƒdfedƒedƒedƒdefgd6edƒdejfde fdedfgd6dejfgd6defgd6dejfd ejfd!ejfd"ejfd#ejfd$ejfd%ejfgd6Z RS(&s; For VHDL source code. *New in Pygments 1.5.* tvhdls*.vhdls*.vhds text/x-vhdls\ns\s+s\\\ns--(?![!#$%&*+./<=>?@\^|_~]).*?$s'(U|X|0|1|Z|W|L|H|-)'s[~!%^&*+=|?:<>/-]s'[a-zA-Z_][a-zA-Z0-9_]*s [()\[\],.;\']s "[^\n\\]*"s&(library)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)s(use)(\s+)(entity)s$(use)(\s+)([a-zA-Z_][\.a-zA-Z0-9_]*)s/(entity|component)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)sh(architecture|configuration)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)(\s+)(of)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)(\s+)(is)s (end)(\s+)tendblockttypestkeywordstnumberss[a-zA-Z_][a-zA-Z0-9_]*Rs(\s+)t;s#pops½(boolean|bit|character|severity_level|integer|time|delay_length|natural|positive|string|bit_vector|file_open_kind|file_open_status|std_ulogic|std_ulogic_vector|std_logic|std_logic_vector)\bsB(abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|return|rol|ror|select|severity|signal|shared|sla|sli|sra|srl|subtype|then|to|transport|type|units|until|use|variable|wait|when|while|with|xnor|xor)\bs\d{1,2}#[0-9a-fA-F_]+#?s[0-1_]+(\.[0-1_])s\d+s (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+sH"[0-9a-fA-F_]+"s O"[0-7_]+"s B"[0-1_]+"(!R!R"R#R$R%R&R'tret MULTILINEt IGNORECASEtflagsRRR*R R,RR t AttributeR RRR1R<RRRR3R R/R-R0R6(((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyRs\                         (R#RCtpygments.lexerRRRRRtpygments.tokenRRRRR R R R R t__all__RRR(((s=/usr/local/lib/python2.7/site-packages/pygments/lexers/hdl.pyt s (@o