o
    3Ih$                     @   sb   d Z ddl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gZG dd deZdS )z
    pygments.lexers.sas
    ~~~~~~~~~~~~~~~~~~~

    Lexer for SAS.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludewords)CommentKeywordNameNumberStringTextOtherGenericSASLexerc                   @   s  e Zd ZdZdZdgZddgZg dZdZdZ	e
je
jB Zd	Zd
ZdZdZdZedededededdefgdefdefdejfdejfgdejfgdedfgdedfgdedfgdedfd ejdfd!ejdfedged"ed#ed$ed%geed&d&d'efeed&d&d'efeed&d&d'efeed(d&d'ejfeed&d)d'ejfgd*ej fd+ej!fd,e"d-fd.e"d/fgd0e"dfd1e"j#fd2e"fd3e"fgd.e"dfd1e"j#fd4ej d5fd6e"fd7e"fgd8ej dfgd9e$fgd:ej%fgd;Z&d<S )=r   z
    For SAS files.
    SASsasz*.SASz*.sas)z
text/x-sasztext/saszapplication/x-sasz,https://en.wikipedia.org/wiki/SAS_(software)z2.2):bquotenrbquotecmpresqcmprescompstordatatypdisplaydoelseendevalglobalgotoifindexinputkeydeflabelleftlengthletlocallowcasemacromendnrquotenrstrputqleftqlowcaseqscanqsubstrqsysfuncqtrimquotequpcasescanstrsubstrsuperqsyscallsysevalfsysexecsysfuncsysgetsyslputsysprodsysrcsysrputthentotrimunquoteuntilupcaseverifywhilewindow)r   r   rA   r   r   rE   rH   )>abortarrayattribbycallcardscards4catnamecontinue	datalines
datalines4deletedelim	delimiterr   dmdropendsaserrorfilefilenamefootnoteformatr   ininfileinformatr   keepr!   leaver#   libnamelinklistlostcardmergemissingmodifyoptionsoutputoutpager+   redirectremoverenamereplaceretainreturnselectsetskipstartsasstoptitleupdatewaitsaswhererI   xsystask))addandalterascascadecheckcreaterU   describedistinctrY   foreignfromgrouphavingr   insertintor`   keylikemessagerk   msgtypenotnullonororderprimary
referencesresetrestrictrv   rw   tableuniquer|   validateviewr~   (  absaddrairyarcosarsinatanattrcattrnbandbetainvblshiftbnotborbrshiftbxorbytecdfceilcexistcinvclosecnonctcollatecompblcompoundcompresscoscoshcsscurobscvdaccdbdaccdbsldaccsldaccsyddacctabdairydatedatejuldatepartdatetimedaydclosedepdbdepdbsldepsldepsyddeptabdequotedhmsdifdigammadimdinfodnumdopendoptnamedoptnumdreaddropnotedsnameerferfcexistexpfappendfclosefcolfdeletefetchfetchobsfexistfget	fileexistr]   filereffinfofinvfipnamefipnamelfipstatefloorfnonctfnotefopenfoptnamefoptnumfpointfposfputfreadfrewindfrlenfsepfuzzfwritegaminvgamma	getoptiongetvarcgetvarnhboundhmshosthelphouribesselr   indexcindexwr   inputcinputnintintckintnxintrrirrjbesseljuldatekurtosislaglboundr"   r#   lgammare   librefloglog10log2logpdflogpmflogsdfr&   maxmdymeanminminutemodmonthmopenmortnnetpvnmissnormalnotenpvopenordinalpathnamepdfpeekpeekcpmfpointpoissonpokeprobbetaprobbnmlprobchiprobfprobgamprobhyprprobitprobnegbprobnormprobtr+   putcputnqtrr2   ranbinrancauranexprangamrangerankrannorranpoirantblrantriranunirepeatresolvereverserewindrightroundsavingr4   sdfsecondsignsinsinhskewnesssoundexspedissqrtstdstderrstfipsstnamestnamelr6   sumsymgetr<   sysmsgr>   r?   systemtantanhtimetimeparttinvtnoncttoday	translatetranwrdtrigammarC   trimntruncuniformrF   ussvarvarfmtvarinfmtvarlabelvarlenvarnamevarnumvarrayvarrayxvartyperG   vformatvformatd	vformatdxvformatn	vformatnxvformatw	vformatwxvformatxvinarray	vinarrayx	vinformat
vinformatdvinformatdx
vinformatnvinformatnx
vinformatwvinformatwx
vinformatxvlabelvlabelxvlengthvlengthxvnamevnamexvtypevtypexweekdayyearyyqzipfipszipnamezipnamelzipstatecomments	proc-datacards-datalineslogsgeneral.z
^\s*\*.*?;z	/\*.*?\*/z^\s*\*(.|\n)*?;z/[*](.|\n)*?[*]/z%(^|;)\s*(proc \w+|data|run|quit)[\s;]z^\s*(datalines|cards)\s*;\s*$dataz(.|\n)*^\s*;\s*$z#popz\n?^\s*%?put log-messageszNOTE(:|-).*zWARNING(:|-).*zERROR(:|-).*keywordsvars-stringsspecialnumbersz\b)prefixsuffix%z\(z&[a-z_]\w{0,31}\.?z%[a-z_]\w{0,31}z\'string_squote"string_dquote'z\\\\|\\"|\\\nz	[^$\'\\]+z[$\'\\]&validvarz	[^$&"\\]+z[$"\\]z[a-z_]\w{0,31}\.?z9\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)(E[+-]?[0-9]+)?i?\bza(null|missing|_all_|_automatic_|_character_|_n_|_infile_|_name_|_null_|_numeric_|_user_|_webout_))rootr  r  r  r  r  r  r  r  r  r  r  r  r  r  N)'__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedre
IGNORECASE	MULTILINEflagsbuiltins_macrosbuiltins_conditionalsbuiltins_statementsbuiltins_sqlbuiltins_functionsr   r
   r   	Multiliner   Reservedr   r   EmphErrorr   r   BuiltinVariableFunctionr	   Escaper   Constanttokens r  r  S/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/pygments/lexers/sas.pyr      s    	4


	


)r  r  pygments.lexerr   r   r   pygments.tokenr   r   r   r   r	   r
   r   r   __all__r   r  r  r  r  <module>   s    
(