o
    ThO                     @   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-2025 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   T/home/air/segue/gemini/back/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#