o
    Ñ­jR  ã                   @   sŒ   d Z ddlZddlmZ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mZ ddgZG dd„ deƒZG d	d„ deƒZG d
d„ deƒZdS )z×
    pygments.lexers.vip
    ~~~~~~~~~~~~~~~~~~~

    Lexers for Visual Prolog & Grammar files.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚinheritÚwordsÚinclude)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ
WhitespaceÚVisualPrologLexerÚVisualPrologGrammarLexerc                   @   s‚  e Zd ZdZdZdZdefeeddd�ej	fdefeedd	�ej	fd
e
fde
fdejjfdejfdejfdefdedfdedfdejdfdejdfdejdfdefdefdefgeeddd�ejfdefgedƒdefd ed!fgedƒd"efded#fd$ed!fd%efgd&ejfd'ejfged(ƒdejd!fd)efd*ejjd!fged(ƒdejd!fd+efd*ejjd!fgd,ejfdejd!fd-efgd.œZd/S )0ÚVisualPrologBaseLexer)ÚtryÚforeachÚif)ÚandÚcatchÚdoÚelseÚelseifÚ	erroneousÚ
externallyÚfailureÚfinallyr   r   ÚorÚorelseÚ	otherwiseÚthenr   ÚdivÚmodÚremÚquot)ÚshortÚdetailÚendÚ
withdomainz\s+z\bend\s+ú\b©ÚprefixÚsuffixr(   ©r-   z0[xo][\da-fA-F_]+z(((\d[\d_]*)?\.)?\d[\d_]*([eE][\-+]?\d+)?z_\w*z[A-Z]\w*z@\w+z[a-z]\w*z/\*Úcommentz\%Úcommentlineú"Ústringz\'Ústringsinglez@"Úatstringz[\-+*^/!?<>=~:]+z[$,.[\]|(){}\\]+Ú.ú@Ú
commentdocz[^@\n]+ú$z#popz[^@*/]+z#pushz\*/z[*/]z\\u[0-9a-fA-F]{4}z\\[\'"ntr\\]Ústringescapez
[^\'\\\n]+z\nz	[^"\\\n]+z""z[^"]+)Úrootr7   r0   r/   r9   r3   r2   r4   N)Ú__name__Ú
__module__Ú__qualname__Ú
minorendkwÚ
minorkwexpÚdockwr   r   r	   ÚMinorr   r
   ÚVariableÚ	Anonymousr   r   ÚSymbolr   r   r   ÚPreprocr   ÚEscapeÚErrorÚtokens© rI   rI   úP/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/vip.pyr      sl    



îþýûþ
ü
ü
ý
Ër   c                   @   sx   e Zd ZdZdZdZdgZg d¢ZdZdZ	dZ
d	Zd
ee
dd�ejfee	dd�efeeddd�ejfegiZdd„ ZdS )r   zLexer for VisualProlog
    zVisual Prologúhttps://www.visual-prolog.com/Úvisualprolog)z*.proz*.clz*.iz*.packz*.phú2.17)ÚgoalÚ	namespaceÚ	interfaceÚclassÚ	implementÚwhereÚopenÚinheritsÚsupportsÚresolveÚdelegateÚmonitorÚ	constantsÚdomainsÚ
predicatesÚconstructorsÚ
propertiesÚclausesÚfacts)ÚalignÚanyflowÚasÚbitsizeÚdetermÚdigitsr   r   r   ÚfromÚguardÚmultiÚ	nondetermr   r   r    Ú	procedurerW   ÚsingleÚ
suspending)Ú
binincluder   r   ÚendifÚerrorÚexportr   rg   ÚgrammargenerateÚgrammarincluder   r   ÚmessageÚoptionsÚ
orrequiresÚrequiresÚstringincluder!   r:   r*   r.   ú#r+   c                 C   ó   t  d| ¡rdS dS )zMCompetes with IDL and Prolog on *.pro; div. lisps on*.cl and SwigLexer on *.izc^\s*(end\s+(interface|class|implement)|(clauses|predicates|domains|facts|constants|properties)\s*$)ç\�Âõ(\ï?r   ©ÚreÚsearch©ÚtextrI   rI   rJ   Úanalyse_textn   ó   zVisualPrologLexer.analyse_textN)r;   r<   r=   Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚversion_addedÚmajorkwÚminorkwÚdirectivekwr   r	   rA   Ú	Directiver   rH   r�   rI   rI   rI   rJ   r   V   s$    üÿ	c                   @   sb   e Zd ZdZdZdZdgZdgZdZdZ	dZ
d	ee	d
d�efee
dd
d�ejfegiZdd„ ZdS )r   z#Lexer for VisualProlog grammar
    zVisual Prolog GrammarrK   Úvisualprologgrammarz*.vipgrmrM   )rT   rO   ÚgrammarÚnonterminalsÚstartsymbolsÚ	terminalsÚrulesÚ
precedence)rn   rx   r:   r*   r.   ry   r+   c                 C   rz   )zNo competditors (currently)zN^\s*(end\s+grammar|(nonterminals|startsymbols|terminals|rules|precedence)\s*$)r{   r   r|   r   rI   rI   rJ   r�   Ž   r‚   z%VisualPrologGrammarLexer.analyse_textN)r;   r<   r=   rƒ   r„   r…   r†   r‡   rˆ   r‰   r‹   r   r	   rŒ   r   rH   r�   rI   rI   rI   rJ   r   y   s     ýÿ)rƒ   r}   Úpygments.lexerr   r   r   r   Úpygments.tokenr   r   r   r	   r
   r   r   r   r   Ú__all__r   r   r   rI   rI   rI   rJ   Ú<module>   s    
,B#