3
v^r              !  @   s  d dl Z d dlmZ dd Zddejjjfdejjjfdejjfd	ejjfd
ejfdej	fdej
fdejfdejfdejfdejfdejfdejjfdejjfdejjfdejfdejfdejfdejfdejfdejfdejjfdejjfdejjfdejjfdejjfd ejjfd!ejjfd"ejfd#ejfd$ejfd%ejfd&ejfd'ejfd(ejjfd)ejjfd*ejfd+ejfd,ejfd-ejjfd.ejjfd/efd0ejfd1ejjfd2ejfg-iZe je jB Z d3d4 ed D Zejejejejejejejejejejejejejejejejejejj!ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejj"ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejj!ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejj"ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejj"ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejj#ejejejejejejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejejjejjejjejjejjejjejjejjd5 Z$ejj"ejj"ejj"ejj"ejj"ejj"ejj"ejjejjejjejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejd6(Z%ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejd7UZ&ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejd8$Z'ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejd9JZ(dS ):    N)tokensc             C   sB   | j  }tj|p<tj|p<tj|p<tj|p<tj|tj| fS )N)	upperKEYWORDS_COMMONgetKEYWORDS_ORACLEKEYWORDS_PLPGSQLKEYWORDS_HQLKEYWORDSr   Name)valueval r   5/usr/lib/python3.6/site-packages/sqlparse/keywords.py
is_keyword   s    



r   rootz(--|# )\+.*?(\r\n|\r|\n|$)z/\*\+[\s\S]*?\*/z(--|# ).*?(\r\n|\r|\n|$)z/\*[\s\S]*?\*/z(\r\n|\r|\n)z\s+?z:=z::z\*z`(``|[^`])*`u   ´(´´|[^´])*´u*   ((?<!\S)\$(?:[_A-ZÀ-Ü]\w*)?\$)[\s\S]*?\1z\?z%(\(\w+\))?sz(?<!\w)[$:?]\w+z\\\w+z (CASE|IN|VALUES|USING|FROM|AS)\bu   (@|##|#)[A-ZÀ-Ü]\w+u   [A-ZÀ-Ü]\w*(?=\s*\.)u   (?<=\.)[A-ZÀ-Ü]\w*u   [A-ZÀ-Ü]\w*(?=\()z-?0x[\dA-F]+z-?\d*(\.\d+)?E-?\d+u2   (?![_A-ZÀ-Ü])-?(\d+(\.\d*)|\.\d+)(?![_A-ZÀ-Ü])u#   (?![_A-ZÀ-Ü])-?\d+(?![_A-ZÀ-Ü])z'(''|\\\\|\\'|[^'])*'z"(""|\\\\|\\"|[^"])*"z(""|".*?[^\\]")z(?<![\w\])])(\[[^\]]+\])z[((LEFT\s+|RIGHT\s+|FULL\s+)?(INNER\s+|OUTER\s+|STRAIGHT\s+)?|(CROSS\s+|NATURAL\s+)?)?JOIN\bzEND(\s+IF|\s+LOOP|\s+WHILE)?\bzNOT\s+NULL\bzNULLS\s+(FIRST|LAST)\bzUNION\s+ALL\bzCREATE(\s+OR\s+REPLACE)?\bzDOUBLE\s+PRECISION\bzGROUP\s+BY\bzORDER\s+BY\bzF(LATERAL\s+VIEW\s+)(EXPLODE|INLINE|PARSE_URL_TUPLE|POSEXPLODE|STACK)\bz"(AT|WITH')\s+TIME\s+ZONE\s+'[^']+'z(NOT\s+)?(LIKE|ILIKE)\bu   [0-9_A-ZÀ-Ü][_$#\w]*z[;:()\[\],\.]z[<>=~!]+z[+/@#%^&|`?^-]+c             C   s"   g | ]\}}t j|tj|fqS r   )recompileFLAGSmatch).0Zrxttr   r   r   
<listcomp>d   s    r   (   ZABORTABSZABSOLUTEZACCESSZADAADDZADMINZAFTERZ	AGGREGATEZALIASZALLZALLOCATEZANALYSEZANALYZEANYZARRAYLENZAREASCZ
ASENSITIVEZ	ASSERTIONZ
ASSIGNMENTZ
ASYMMETRICATZATOMICZAUDITZAUTHORIZATIONZAUTO_INCREMENTAVGZBACKWARDZBEFOREBEGINZBETWEENZBITVARZ
BIT_LENGTHZBOTHZBREADTHZCACHECALLZCALLEDZCARDINALITYCASCADEZCASCADEDCASTZCATALOGZCATALOG_NAMEZCHAINZCHARACTERISTICSZCHARACTER_LENGTHZCHARACTER_SET_CATALOGZCHARACTER_SET_NAMEZCHARACTER_SET_SCHEMACHAR_LENGTHCHARSETCHECKZCHECKEDZ
CHECKPOINTZCLASSZCLASS_ORIGINZCLOBZCLOSEZCLUSTERCOALESCEZCOBOLZCOLLATE	COLLATIONZCOLLATION_CATALOGZCOLLATION_NAMEZCOLLATION_SCHEMAZCOLLECTZCOLUMNZCOLUMN_NAMEZCOMPRESSZCOMMAND_FUNCTIONZCOMMAND_FUNCTION_CODECOMMENTZCOMMITZ	COMMITTEDZ
COMPLETIONZCONCURRENTLYZCONDITION_NUMBERZCONNECTZ
CONNECTIONZCONNECTION_NAME
CONSTRAINTZCONSTRAINTSZCONSTRAINT_CATALOGZCONSTRAINT_NAMEZCONSTRAINT_SCHEMAZCONSTRUCTORZCONTAINSCONTINUEZ
CONVERSIONZCONVERTCOPYZCORRESPONDINGCOUNTZCREATEDBZ
CREATEUSERZCROSSZCUBEZCURRENTCURRENT_DATEZCURRENT_PATHZCURRENT_ROLECURRENT_TIMECURRENT_TIMESTAMPZCURRENT_USERCURSORZCURSOR_NAMEZCYCLEZDATAZDATABASEZDATETIME_INTERVAL_CODEZDATETIME_INTERVAL_PRECISIONDAYZ
DEALLOCATEZDECLAREDEFAULTZDEFAULTSZ
DEFERRABLEDEFERREDZDEFINEDZDEFINERZ	DELIMITERZ
DELIMITERSZDEREFDESCZDESCRIBEZ
DESCRIPTORZDESTROYZ
DESTRUCTORZDETERMINISTICZDIAGNOSTICSZ
DICTIONARYZDISABLEZ
DISCONNECTZDISPATCHZDOZDOMAINZDYNAMICZDYNAMIC_FUNCTIONZDYNAMIC_FUNCTION_CODEZEACHZENABLEENCODINGZ	ENCRYPTEDzEND-EXECENGINEZEQUALSESCAPEZEVERYEXCEPTZ	EXCEPTIONZ	EXCLUDINGZ	EXCLUSIVEZEXECZEXECUTEZEXISTINGZEXISTSEXPLAINEXTERNALZEXTRACTFALSEZFETCHFILEZFINALZFIRSTZFORCEFOREACHZFOREIGNZFORTRANZFORWARDFOUNDZFREEZFREEZEFULLZFUNCTIONZGENERALZ	GENERATEDGETGLOBALZGOZGOTOZGRANTZGRANTEDZGROUPINGZHANDLERHAVINGZ	HIERARCHYZHOLDHOURHOSTZ
IDENTIFIEDZIDENTITYZIGNOREZILIKEZ	IMMEDIATEZ	IMMUTABLEZIMPLEMENTATIONZIMPLICITZ	INCLUDINGZ	INCREMENTZINDEXZ
INDITCATORZINFIXZINHERITSZINITIALZ
INITIALIZEZ	INITIALLYZINOUTZINPUTZINSENSITIVEZINSTANTIABLEZINSTEADZ	INTERSECTINTOZINVOKERZISZISNULLZ	ISOLATIONZITERATEZKEYZ
KEY_MEMBERZKEY_TYPEZLANCOMPILERLANGUAGEZLARGEZLASTZLATERALZLEADINGLENGTHLESSZLEVELLIMITZLISTENZLOADZLOCALZ	LOCALTIMEZLOCALTIMESTAMPLOCATIONZLOCATORZLOCKLOWERZMAPZMATCHZ
MAXEXTENTSZMAXVALUEMESSAGE_LENGTHZMESSAGE_OCTET_LENGTHZMESSAGE_TEXTZMETHODMINUTEMINUSZMINVALUEMODZMODEZMODIFIESZMODIFYMONTHZMOREZMOVEZMUMPSZNAMESZNATIONALZNATURALZNCHARZNCLOBZNEWZNEXTZNOZNOAUDITZ
NOCOMPRESSZ
NOCREATEDBZNOCREATEUSERNONEZNOTZNOTFOUNDZNOTHINGZNOTIFYZNOTNULLZNOWAITNULLZNULLABLENULLIFZOBJECTZOCTET_LENGTHZOFZOFFZOFFLINEZOFFSETZOIDSZOLDZONLINEZONLYZOPENZ	OPERATIONZOPERATORZOPTIONOPTIONSZ
ORDINALITYZOUTZOUTPUTZOVERLAPSZOVERLAYZ
OVERRIDINGZOWNERZQUARTERZPADZ	PARAMETERZ
PARAMETERSZPARAMETER_MODEZPARAMETER_NAMEZPARAMETER_ORDINAL_POSITIONZPARAMETER_SPECIFIC_CATALOGZPARAMETER_SPECIFIC_NAMEZPARAMETER_SPECIFIC_SCHEMAZPARTIALZPASCALZPCTFREEZPENDANTZPLACINGZPLIZPOSITIONZPOSTFIXZ	PRECISIONZPREFIXZPREORDERZPREPAREZPRESERVEZPRIMARYZPRIORZ
PRIVILEGESZ
PROCEDURALZ	PROCEDUREZPUBLICZRAISERAWREADZREADSZRECHECKZ	RECURSIVEZREFZ
REFERENCESZREFERENCINGZREINDEXZRELATIVEZRENAMEZ
REPEATABLERESETZRESOURCEZRESTARTZRESTRICTZRESULTZRETURNZRETURNED_LENGTHZRETURNED_OCTET_LENGTHZRETURNED_SQLSTATE	RETURNINGZRETURNSZREVOKERIGHTZROLEZROLLBACKZROLLUPZROUTINEZROUTINE_CATALOGZROUTINE_NAMEZROUTINE_SCHEMAZROWROWSZ	ROW_COUNTZRULEZ
SAVE_POINTZSCALEZSCHEMAZSCHEMA_NAMEZSCOPEZSCROLLZSEARCHSECONDZSECURITYZSELFZ	SENSITIVEZSEQUENCEZSERIALIZABLESERVER_NAMEZSESSIONZSESSION_USERZSETOFZSETSZSHAREZSHOWZSIMILARZSIMPLEZSIZEZSOMEZSOURCESPACEZSPECIFICZSPECIFICTYPEZSPECIFIC_NAMEZSQLZSQLBUFZSQLCODEZSQLERRORZSQLEXCEPTIONZSQLSTATEZ
SQLWARNINGZSTABLEZSTARTZ	STATEMENTZSTATICZ
STATISTICSZSTDINSTDOUTZSTORAGEZSTRICTZ	STRUCTUREZSTYPEZSUBCLASS_ORIGINZSUBLIST	SUBSTRINGZ
SUCCESSFULSUMZ	SYMMETRICZSYNONYMZSYSIDZSYSTEMZSYSTEM_USERTABLEZ
TABLE_NAMETEMPTEMPLATEZ	TEMPORARYZ	TERMINATEZTHAN	TIMESTAMPZTIMEZONE_HOURZTIMEZONE_MINUTEZTOZTOASTZTRAILINGZ
TRANSATIONZTRANSACTIONS_COMMITTEDZTRANSACTIONS_ROLLED_BACKZTRANSATION_ACTIVEZ	TRANSFORMZ
TRANSFORMSZ	TRANSLATEZTRANSLATIONZTREATZTRIGGERZTRIGGER_CATALOGZTRIGGER_NAMEZTRIGGER_SCHEMATRIMTRUEZTRUNCATEZTRUSTEDTYPEZUIDZUNCOMMITTEDZUNDERZUNENCRYPTEDUNIONUNIQUEUNKNOWNZUNLISTENZUNNAMEDZUNNESTZUNTILUPPERZUSAGEZUSEUSERZUSER_DEFINED_TYPE_CATALOGZUSER_DEFINED_TYPE_NAMEZUSER_DEFINED_TYPE_SCHEMAZUSINGZVACUUMZVALIDZVALIDATEZ	VALIDATORVALUESZVARIABLEVERBOSEVERSIONZVIEWZVOLATILEZWEEKZWHENEVERZWITHZWITHOUTZWORKWRITEYEARZZONEARRAYZBIGINTZBINARYZBITBLOBZBOOLEANCHAR	CHARACTERZDATEZDECZDECIMALZ	FILE_TYPEFLOATINTZINT8ZINTEGERZINTERVALLONGZNATURALNZNVARCHARNUMBERZNUMERICZPLS_INTEGERZPOSITIVEZ	POSITIVENZREALZROWIDZROWLABELZROWNUMZSERIALZSERIAL8ZSIGNEDZSIGNTYPEZSIMPLE_DOUBLEZSIMPLE_FLOATZSIMPLE_INTEGERZSMALLINTZSYS_REFCURSORZSYSDATETEXTZTINYINTZUNSIGNEDZUROWIDZUTL_FILEZVARCHARZVARCHAR2ZVARYING)(ZSELECTZINSERTDELETEZUPDATEZUPSERTREPLACEZMERGEZDROPCREATEZALTERWHEREZFROMINNERZJOINZSTRAIGHT_JOINANDORZLIKEZONINSETZBYZGROUPORDERLEFTZOUTERr>   IFENDTHENLOOPASELSEFORZWHILECASEWHENMINMAXZDISTINCT)UZARCHIVEZ
ARCHIVELOGZBACKUPZBECOMEBLOCKZBODYZCANCELCHANGEZCOMPILEZCONTENTSZCONTROLFILEZDATAFILEZDBAZDISMOUNTZDOUBLEZDUMPZEVENTSZ
EXCEPTIONSr8   ZEXTENTZ
EXTERNALLYZFLUSHZFREELISTZ	FREELISTSZ	INDICATORZINITRANSZINSTANCEZLAYERZLINKZLISTSZLOGFILEZMANAGEZMANUALZMAXDATAFILESZMAXINSTANCESZMAXLOGFILESZMAXLOGHISTORYZMAXLOGMEMBERSZMAXTRANSZ
MINEXTENTSZMODULEZMOUNTZNOARCHIVELOGZNOCACHEZNOCYCLEZ
NOMAXVALUEZ
NOMINVALUEZNOORDERZNORESETLOGSZNORMALZNOSORTZOPTIMALZOWNZPACKAGEZPARALLELZPCTINCREASEZPCTUSEDZPLANZPRIVATEZPROFILEZQUOTAZRECOVERZ	RESETLOGSZ
RESTRICTEDZREUSEZROLESZ	SAVEPOINTZSCNZSECTIONZSEGMENTZSHAREDZSNAPSHOTZSORTZSTATEMENT_IDSTOPZSWITCHZTABLESZ
TABLESPACEZTHREADZTIMEZTRACINGZTRANSACTIONZTRIGGERSZ	UNLIMITEDZUNLOCK)$Z	PARTITIONZOVERZPERFORMNOTICEZPLPGSQLZINHERITZINDEXESZBYTEAZ	BIGSERIALzBIT VARYINGZBOXrt   zCHARACTER VARYINGZCIDRZCIRCLEzDOUBLE PRECISIONZINETZJSONZJSONBZLINEZLSEGZMACADDRZMONEYPATHZPG_LSNZPOINTZPOLYGONZSMALLSERIALZTSQUERYZTSVECTORZTXID_SNAPSHOTUUIDZXMLr   r   r   )JZEXPLODEZ	DIRECTORYZ
DISTRIBUTEZINCLUDEZLOCATEZ	OVERWRITEZ
POSEXPLODEZARRAY_CONTAINSZCMPZCOLLECT_LISTCONCAT	CONDITIONZDATE_ADDZDATE_SUBZDECODEZDBMS_OUTPUTZELEMENTSZEXCHANGEZEXTENDEDFLOOR	FOLLOWINGZFROM_UNIXTIMEZFTPrB   ZINLINEINSTRZLENZ
MAXELEMENTZMAXINDEXZMAX_PART_DATEZMAX_PART_INTZMAX_PART_STRINGZ
MINELEMENTZMININDEXZMIN_PART_DATEZMIN_PART_INTZMIN_PART_STRINGZNOWZNVLZNVL2ZPARSE_URL_TUPLEZPART_LOCZ
PART_COUNTZPART_COUNT_BYZPRINTZPUT_LINERANGEREDUCEZREGEXP_REPLACEZRESIGNALRTRIMSIGNZSIGNALSINZSPLITSQRTZSTACKZSTRSUBSTRZSUMMARYZTBLPROPERTIESZTIMESTAMP_ISOZTO_CHARZTO_DATEZTO_TIMESTAMPZTRUNCZ	UNBOUNDEDZ
UNIQUEJOINZUNIX_TIMESTAMPZUTC_TIMESTAMPZVIEWSZEXITZBREAKZLEAVE))r   sqlparser   r   CommentSingleZHint	MultilineNewline
Whitespace
AssignmentPunctuationWildcardr
   LiteralPlaceholderCommandKeywordNumberZHexadecimalFloatIntegerStringSymbolDDLBuiltinTZCastOperator
Comparison	SQL_REGEX
IGNORECASEUNICODEr   OrderDMLCTEr	   r   r   r   r   r   r   r   r   <module>	   s  



















