Your IP : 216.73.216.213
B
ʽ�\I � @ s� d Z ddlZddlmZmZmZmZmZmZ ddl m
Z
mZmZm
Z
mZmZmZmZmZ dddgZG dd� de�ZG d d� de�ZG d
d� de�ZdS )z�
pygments.lexers.hdl
~~~~~~~~~~~~~~~~~~~
Lexers for hardware descriptor languages.
:copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�bygroups�include�using�this�words) �Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Error�VerilogLexer�SystemVerilogLexer� VhdlLexerc @ s� e Zd ZdZdZddgZdgZdgZdZde j
dfd efd
efdefde jfd
e j
fdefdedfdejfdejfdejfdejfdejfdejfdejfdefdejfdefdefdefdejfdeeeje�fdeeeje�d fed!d"d#�efed$d%d"d&�e j
fed'd(d"d&�ejfed)d"d#�ej fd*ej!fd+efgd,ed-fd.ej"fd/efdefd0efgd1e j
fd2e j
fd3e jd-fd4e j
fd5e j
fd e j
d-fgd6ejd-fgd7�Z#d8d9� Z$d:S );r zZ
For verilog source code with preprocessor directives.
.. versionadded:: 1.4
Zverilog�vz*.vztext/x-verilogz(?:\s|//.*?\n|/[*].*?[*]/)+z^\s*`define�macroz\nz\s+z\\\nz/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z[{}#@]zL?"�stringz4L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'z%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z([0-9]+)|(\'h)[0-9a-fA-F]+z([0-9]+)|(\'b)[01]+z([0-9]+)|(\'d)[0-9]+z([0-9]+)|(\'o)[0-7]+z\'[01xz]z\d+[Ll]?z\*/z[~!%^&*+=|?:<>/-]z
[()\[\],.;\']z
`[a-zA-Z_]\w*z^(\s*)(package)(\s+)z^(\s*)(import)(\s+)�import)q�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� specparamZstrengthr �strong0�strong1�struct�table�task�tran�tranif0�tranif1�type�typedef�unsigned�var�vectored�void�wait�weak0�weak1�while�xnor�xorz\b)�suffix)Z
accelerateZautoexpand_vectornetsZ
celldefineZdefault_nettyper0 �elsifZ
endcelldefineZendifZ
endprotectZendprotectedZexpand_vectornetsZifdefZifndefr ZnoaccelerateZnoexpand_vectornetsZnoremove_gatenamesZnoremove_netnamesZnounconnected_driveZprotect� protectedZremove_gatenamesZremove_netnamesZresetallZ timescaleZunconnected_driveZundef�`)�prefixr� )4�bitsZ
bitstorealZbitstoshortrealZcountdriversZdisplayZfcloseZfdisplayZfinish�floorZfmonitorZfopenZfstrobeZfwriteZ
getpattern�historyZincsaverJ Zitor�key�list�logZmonitorZ
monitoroffZ monitoronZnokeyZnologZprinttimescale�randomZreadmembZreadmemh�realtimeZ
realtobits�resetZreset_countZreset_valueZrestartZrtoiZsaveZscaleZscopeZshortrealtobitsZ
showscopesZ
showvariablesZshowvarsZ sreadmembZ sreadmemhZstime�stopZstrobe�timeZ
timeformat�writez\$)�byte�shortint�int�longintrK r� �bit�logic�reg�supply0�supply1�tri�triand�trior�tri0�tri1�trireg�uwire�wire�wand�woshortreal�realr� z[a-zA-Z_]\w*:(?!:)z\$?[a-zA-Z_]\w*�"z#popz/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z [^\\"\n]+z\\z[^/\n]+z/[*](.|\n)*?[*]/z//.*?\n�/z (?<=\\)\nz [\w:]+\*?)�rootr r r c c sB x<t �| |�D ],\}}}|tkr.|�� r.tj}|||fV qW d S )N)r �get_tokens_unprocessedr �isupper�Constant)�self�text�index�token�value� r� �D/opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/hdl.pyr� � s z#VerilogLexer.get_tokens_unprocessedN)%�__name__�
__module__�__qualname__�__doc__�name�aliases� filenames� mimetypes�_wsr �Preprocr �Single� Multiliner r
�Charr �Float�Hex�Bin�Integer�Octr r
r r� r r � Namespacer �Builtin�Type�Label�Escape�tokensr� r� r� r� r� r sz
c @ s� e Zd ZdZdZddgZddgZdgZdZde j
d fd
eee
je�fdeee
je�dfd
efdefdefde jfde jfdefdedfdejfdejfdejfdejfdejfdejfdejfdefdejfdefdefd efd!ejfed"d#d$�e
fed%d#d$�e j
fed&d#d$�ejfd'ee
e�d(fed)d#d$�e
j fd*ej!fd+efgd,ej"d-fgd.ed-fd/ej#fd0efdefd1efgd2e j
fd3e jfd4e jd-fd5e j
fd6e j
fd
e j
d-fgd7ejd-fgd8�Z$d9d:� Z%d;S )<r z�
Extends verilog lexer to recognise all SystemVerilog keywords from IEEE
1800-2009 standard.
.. versionadded:: 1.5
Z
systemverilog�svz*.svz*.svhztext/x-systemverilogz(?:\s|//.*?\n|/[*].*?[*]/)+z^\s*`definer z^(\s*)(package)(\s+)z^(\s*)(import)(\s+)r z\nz\s+z\\\nz/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z[{}#@]zL?"r z4L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'z%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z([0-9]+)|(\'h)[0-9a-fA-F]+z([0-9]+)|(\'b)[01]+z([0-9]+)|(\'d)[0-9]+z([0-9]+)|(\'o)[0-7]+z\'[01xz]z\d+[Ll]?z\*/z[~!%^&*+=|?:<>/-]z
[()\[\],.;\']z
`[a-zA-Z_]\w*)�Z accept_on�aliasr r r r r �assertr Zassumer �beforer �bindZbinsZbinsofr� r r! r"