o
    ‡ÎÖaD  ã                   @   sl   d Z ddlmZmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZ ddgZG dd„ deƒZG dd„ deƒZdS )	zò
    pygments.lexers.verification
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for Intermediate Verification Languages (IVLs).

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚincludeÚwords)ÚCommentÚOperatorÚKeywordÚNameÚNumberÚPunctuationÚTextÚGenericÚBoogieLexerÚSilverLexerc                   @   sÒ   e Zd ZdZdZdgZdgZdefdefdefdej	fd	ej
fd
ejdfeddd�efeddd�ejfeddd�ejfedƒdefdejfdefdefgdejfd
ejdfdejdfdejfgdejfgdœZdS )r   z^
    For `Boogie <https://boogie.codeplex.com/>`_ source code.

    .. versionadded:: 2.1
    ÚBoogieÚboogiez*.bplú\nú\s+ú\\\nú//[/!](.*?)\nú	//(.*?)\nú/\*Úcomment)ÚaxiomÚbreakÚcallÚensuresÚelseÚexistsÚfunctionÚforallÚifÚ	invariantÚmodifiesÚ	procedureÚrequiresÚthenÚvarÚwhileú\b©Úsuffix)Úconst)ÚboolÚintÚrefÚnumbersz((>=|<=|:=|!=|==>|&&|\|\||[+/\-=>*<\[\]])ú\{.*?\}ú([{}():;,.])z[a-zA-Z_]\w*ú[^*/]+ú#pushú\*/ú#popú[*/]ú[0-9]+©Úrootr   r/   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesr   r   ÚDocÚSingleÚ	Multiliner   r   ÚReservedÚTyper   r   r   ÚEmphr
   r   r	   ÚIntegerÚtokens© rI   rI   ú>/usr/lib/python3/dist-packages/pygments/lexers/verification.pyr      s@    
üüê

üÿ
ác                   @   sÔ   e Zd ZdZdZdgZddgZdefdefdefd	ej	fd
ej
fdejdfeddd�efeddd�ejfeddd�ejfedƒdefdejfdefdefgdejfdejdfdejdfdejfgdejfgdœZdS )r   zk
    For `Silver <https://bitbucket.org/viperproject/silver>`_ source code.

    .. versionadded:: 2.2
    ÚSilverÚsilverz*.silz*.vprr   r   r   r   r   r   r   )4ÚresultÚtrueÚfalseÚnullÚmethodr   Ú	predicateÚprogramÚdomainr   r&   ÚreturnsÚfieldÚdefineÚfoldÚunfoldÚinhaleÚexhaleÚnewÚassertÚassumeÚgotor'   r    Úelseifr   ÚfreshÚconstrainingÚSeqÚSetÚMultisetÚunionÚintersectionÚsetminusÚsubsetÚ	unfoldingÚinÚoldr   r   ÚaccÚwildcardÚwriteÚnoneÚepsilonÚpermÚuniqueÚapplyÚpackageÚfoldingÚlabelÚforpermr(   r)   )r$   r   r!   )ÚIntÚPermÚBoolÚRefÚRationalr/   z[!%&*+=|?:<>/\-\[\]]r0   r1   z[\w$]\w*r2   r3   r4   r5   r6   r7   r8   N)r:   r;   r<   r=   r>   r?   r@   r   r   rA   rB   rC   r   r   r   Ú	DecoratorrE   r   r   r   rF   r
   r	   rG   rH   rI   rI   rI   rJ   r   A   s@    
	÷	÷
æ

üÿ
ÝN)r=   Úpygments.lexerr   r   r   Úpygments.tokenr   r   r   r   r	   r
   r   r   Ú__all__r   r   rI   rI   rI   rJ   Ú<module>   s    
(/