3

V'ícÐmã@sÔdZddlZddlmZmZmZmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddlmZdddd	d
dgZGdd„deƒZGd
d„deƒZGdd„deƒZGdd	„d	eƒZGdd
„d
eƒZGdd„deƒZdS)zÞ
    pygments.lexers.business
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for "business-oriented" languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
éN)Ú
RegexLexerÚincludeÚwordsÚbygroups)
ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚ
Whitespace)ÚOPENEDGEKEYWORDSÚ
CobolLexerÚCobolFreeformatLexerÚ	ABAPLexerÚ
OpenEdgeLexerÚGoodDataCLLexerÚ	MaqlLexerc'@s$eZdZdZdZdgZddddgZdgZej	ej
BZed	ƒed
ƒedƒedƒd
e
jfdefgdefgde
jfed	dkdldmejfed
dkdldmejfeddkdldmefdüejfdýefdþefdÿe
jfde
jfdejfg
dejfdejfgde j!fde j"fde j"fgdœZ#dS(rz>
    Lexer for OpenCOBOL code.

    .. versionadded:: 1.6
    ZCOBOLZcobolz*.cobz*.COBz*.cpyz*.CPYztext/x-cobolÚcommentÚstringsÚcoreÚnumsz-z0-9]([\w\-]*[a-z0-9]+)?z[ \t]+z(^.{6}[*/].*\n|^.{6}|\*>.*\n)za(^|(?<=[^\w\-]))(ALL\s+)?((ZEROES)|(HIGH-VALUE|LOW-VALUE|QUOTE|SPACE|ZERO)(S)?)\s*($|(?=[^\w\-]))ÚACCEPTÚADDÚALLOCATEÚCALLÚCANCELÚCLOSEÚCOMPUTEÚ
CONFIGURATIONÚCONTINUEÚDATAÚDELETEÚDISPLAYÚDIVIDEÚDIVISIONÚELSEÚENDú
END-ACCEPTúEND-ADDúEND-CALLúEND-COMPUTEú
END-DELETEúEND-DISPLAYú
END-DIVIDEúEND-EVALUATEúEND-IFúEND-MULTIPLYúEND-OF-PAGEúEND-PERFORMúEND-READú
END-RETURNúEND-REWRITEú
END-SEARCHú	END-STARTú
END-STRINGúEND-SUBTRACTúEND-UNSTRINGú	END-WRITEÚENVIRONMENTÚEVALUATEÚEXITÚFDÚFILEúFILE-CONTROLÚFOREVERÚFREEÚGENERATEÚGOÚGOBACKÚIDENTIFICATIONÚIFÚ
INITIALIZEÚINITIATEúINPUT-OUTPUTÚINSPECTÚINVOKEúI-O-CONTROLÚLINKAGEú
LOCAL-STORAGEÚMERGEÚMOVEÚMULTIPLYÚOPENÚPERFORMÚ	PROCEDUREú
PROGRAM-IDÚRAISEÚREADÚRELEASEÚRESUMEÚRETURNÚREWRITEÚSCREENÚSDÚSEARCHÚSECTIONÚSETÚSORTÚSTARTÚSTOPÚSTRINGÚSUBTRACTÚSUPPRESSÚ	TERMINATEÚTHENÚUNLOCKÚUNSTRINGÚUSEÚVALIDATEúWORKING-STORAGEÚWRITEz(^|(?<=[^\w\-]))z\s*($|(?=[^\w\-])))ÚprefixÚsuffixÚACCESSÚADDRESSÚ	ADVANCINGÚAFTERÚALLÚALPHABETÚ
ALPHABETICúALPHABETIC-LOWERúALPHABETIC-UPPERÚALPHANUMERICúALPHANUMERIC-EDITEDÚALSOÚALTERÚALTERNATEANYÚAREÚAREAÚAREASúARGUMENT-NUMBERúARGUMENT-VALUEÚASÚ	ASCENDINGÚASSIGNÚATÚAUTOú	AUTO-SKIPÚ	AUTOMATICÚ
AUTOTERMINATEúBACKGROUND-COLORÚBASEDÚBEEPÚBEFOREÚBELLÚBLANKÚBLINKÚBLOCKÚBOTTOMÚBYúBYTE-LENGTHÚCHAININGÚ	CHARACTERÚ
CHARACTERSÚCLASSÚCODEúCODE-SETÚCOLÚ	COLLATINGÚCOLSÚCOLUMNÚCOLUMNSÚCOMMAúCOMMAND-LINEÚCOMMITÚCOMMONÚCONSTANTÚCONTAINSÚCONTENTÚCONTROLÚCONTROLSÚ
CONVERTINGÚCOPYÚCORRÚ
CORRESPONDINGÚCOUNTÚCRTÚCURRENCYÚCURSORÚCYCLEÚDATEÚDAYúDAY-OF-WEEKÚDEÚ	DEBUGGINGú
DECIMAL-POINTÚDECLARATIVESÚDEFAULTÚ	DELIMITEDÚ	DELIMITERÚ	DEPENDINGÚ
DESCENDINGÚDETAILÚDISKÚDOWNÚ
DUPLICATESÚDYNAMICÚEBCDICÚENTRYúENVIRONMENT-NAMEúENVIRONMENT-VALUEÚEOLÚEOPÚEOSÚERASEÚERRORÚESCAPEÚ	EXCEPTIONÚ	EXCLUSIVEÚEXTENDÚEXTERNALúFILE-IDÚFILLERÚFINALÚFIRSTÚFIXEDú
FLOAT-LONGúFLOAT-SHORTÚFOOTINGÚFORúFOREGROUND-COLORÚFORMATÚFROMÚFULLÚFUNCTIONúFUNCTION-IDÚGIVINGÚGLOBALÚGROUPÚHEADINGÚ	HIGHLIGHTúI-OÚIDÚIGNOREÚIGNORINGÚINÚINDEXÚINDEXEDÚINDICATEÚINITIALÚINITIALIZEDÚINPUTÚINTOÚ	INTRINSICÚINVALIDÚISÚJUSTÚ	JUSTIFIEDÚKEYÚLABELÚLASTÚLEADINGÚLEFTÚLENGTHÚLIMITÚLIMITSÚLINAGEúLINAGE-COUNTERÚLINEÚLINESÚLOCALEÚLOCKÚLOWLIGHTÚMANUALÚMEMORYÚMINUSÚMODEÚMULTIPLEÚNATIONALúNATIONAL-EDITEDÚNATIVEÚNEGATIVEÚNEXTÚNOÚNULLÚNULLSÚNUMBERÚNUMBERSÚNUMERICúNUMERIC-EDITEDúOBJECT-COMPUTERÚOCCURSÚOFÚOFFÚOMITTEDÚONÚONLYÚOPTIONALÚORDERÚORGANIZATIONÚOTHERÚOUTPUTÚOVERFLOWÚOVERLINEúPACKED-DECIMALÚPADDINGÚPAGEÚ	PARAGRAPHÚPLUSÚPOINTERÚPOSITIONÚPOSITIVEÚPRESENTÚPREVIOUSÚPRINTERÚPRINTINGúPROCEDURE-POINTERÚ
PROCEDURESÚPROCEEDÚPROGRAMúPROGRAM-POINTERÚPROMPTÚQUOTEÚQUOTESÚRANDOMÚRDÚRECORDÚ	RECORDINGÚRECORDSÚ	RECURSIVEÚ	REDEFINESÚREELÚ	REFERENCEÚRELATIVEÚ	REMAINDERÚREMOVALÚRENAMESÚ	REPLACINGÚREPORTÚ	REPORTINGÚREPORTSÚ
REPOSITORYÚREQUIREDÚRESERVEÚ	RETURNINGú
REVERSE-VIDEOÚREWINDÚRIGHTÚROLLBACKÚROUNDEDÚRUNÚSAMEÚSCROLLÚSECUREú
SEGMENT-LIMITÚSELECTÚSENTENCEÚSEPARATEÚSEQUENCEÚ
SEQUENTIALÚSHARINGÚSIGNÚSIGNEDú
SIGNED-INTúSIGNED-LONGúSIGNED-SHORTÚSIZEú
SORT-MERGEÚSOURCEúSOURCE-COMPUTERú
SPECIAL-NAMESÚSTANDARDú
STANDARD-1ú
STANDARD-2ÚSTATUSÚSUBKEYÚSUMÚSYMBOLICÚSYNCÚSYNCHRONIZEDÚTALLYINGÚTAPEÚTESTÚTHROUGHÚTHRUÚTIMEÚTIMESÚTOÚTOPÚTRAILINGÚ	TRANSFORMÚTYPEÚ	UNDERLINEÚUNITÚUNSIGNEDúUNSIGNED-INTú
UNSIGNED-LONGúUNSIGNED-SHORTÚUNTILÚUPÚUPDATEÚUPONÚUSAGEÚUSINGÚVALUEÚVALUESÚVARYINGÚWAITÚWHENÚWITHÚWORDSÚYYYYDDDÚYYYYMMDDúACTIVE-CLASSÚALIGNEDÚANYCASEÚ
ARITHMETICÚ	ATTRIBUTEúB-ANDúB-NOTúB-ORúB-XORÚBITÚBOOLEANÚCDÚCENTERÚCFÚCHÚCHAINúCLASS-IDÚCLASSIFICATIONÚ
COMMUNICATIONÚ	CONDITIONúDATA-POINTERÚDESTINATIONÚDISABLEÚECÚEGIÚEMIÚENABLEúEND-RECEIVEúENTRY-CONVENTIONÚEOÚESIúEXCEPTION-OBJECTÚEXPANDSÚFACTORYúFLOAT-BINARY-16úFLOAT-BINARY-34úFLOAT-BINARY-7úFLOAT-DECIMAL-16úFLOAT-DECIMAL-34úFLOAT-EXTENDEDúFUNCTION-POINTERÚGETúGROUP-USAGEÚ
IMPLEMENTSÚINFINITYÚINHERITSÚ	INTERFACEúINTERFACE-IDÚLC_ALLÚ
LC_COLLATEÚLC_CTYPEÚLC_MESSAGESÚLC_MONETARYÚ
LC_NUMERICÚLC_TIMEúLINE-COUNTERÚMESSAGEÚMETHODú	METHOD-IDÚNESTEDÚNONEÚNORMALÚOBJECTúOBJECT-REFERENCEÚOPTIONSÚOVERRIDEúPAGE-COUNTERÚPFÚPHÚPROPERTYÚ	PROTOTYPEÚPURGEÚQUEUEÚRAISINGÚRECEIVEÚRELATIONÚREPLACEúREPRESENTS-NOT-A-NUMBERÚRESETÚRETRYÚRFÚRHÚSECONDSÚSEGMENTÚSELFÚSENDÚSOURCESÚ	STATEMENTÚSTEPÚSTRONGúSUB-QUEUE-1úSUB-QUEUE-2úSUB-QUEUE-3ÚSUPERÚSYMBOLúSYSTEM-DEFAULTÚTABLEÚTERMINALÚTEXTÚTYPEDEFúUCS-4Ú	UNIVERSALúUSER-DEFAULTúUTF-16úUTF-8ú
VAL-STATUSÚVALIDúVALIDATE-STATUSzÈ(^|(?<=[^\w\-]))(PIC\s+.+?(?=(\s|\.\s))|PICTURE\s+.+?(?=(\s|\.\s))|(COMPUTATIONAL)(-[1-5X])?|(COMP)(-[1-5X])?|BINARY-C-LONG|BINARY-CHAR|BINARY-DOUBLE|BINARY-LONG|BINARY-SHORT|BINARY)\s*($|(?=[^\w\-]))z"(\*\*|\*|\+|-|/|<=|>=|<|>|==|/=|=)z([(),;:&%.])a½(^|(?<=[^\w\-]))(ABS|ACOS|ANNUITY|ASIN|ATAN|BYTE-LENGTH|CHAR|COMBINED-DATETIME|CONCATENATE|COS|CURRENT-DATE|DATE-OF-INTEGER|DATE-TO-YYYYMMDD|DAY-OF-INTEGER|DAY-TO-YYYYDDD|EXCEPTION-(?:FILE|LOCATION|STATEMENT|STATUS)|EXP10|EXP|E|FACTORIAL|FRACTION-PART|INTEGER-OF-(?:DATE|DAY|PART)|INTEGER|LENGTH|LOCALE-(?:DATE|TIME(?:-FROM-SECONDS)?)|LOG(?:10)?|LOWER-CASE|MAX|MEAN|MEDIAN|MIDRANGE|MIN|MOD|NUMVAL(?:-C)?|ORD(?:-MAX|-MIN)?|PI|PRESENT-VALUE|RANDOM|RANGE|REM|REVERSE|SECONDS-FROM-FORMATTED-TIME|SECONDS-PAST-MIDNIGHT|SIGN|SIN|SQRT|STANDARD-DEVIATION|STORED-CHAR-LENGTH|SUBSTITUTE(?:-CASE)?|SUM|TAN|TEST-DATE-YYYYMMDD|TEST-DAY-YYYYDDD|TRIM|UPPER-CASE|VARIANCE|WHEN-COMPILED|YEAR-TO-YYYY)\s*($|(?=[^\w\-]))z.(^|(?<=[^\w\-]))(true|false)\s*($|(?=[^\w\-]))z\(^|(?<=[^\w\-]))(equal|equals|ne|lt|le|gt|ge|greater|less|than|not|and|or)\s*($|(?=[^\w\-]))z"[^"\n]*("|\n)z'[^'\n]*('|\n)z\d+(\s*|\.$|$)z[+-]?\d*\.\d+(E[-+]?\d+)?z[+-]?\d+\.\d*(E[-+]?\d+)?)ÚrootrrrrN)Zrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrt("rwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—r˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—r˜)qr™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrãrÁrÂrÃrÄrÅrÆrÇrÈrQrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrár\rârãrärårærçr_rèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrr)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚ
IGNORECASEÚ	MULTILINEÚflagsrr
ÚVariablerrÚConstantrr	ZReservedZPseudorÚTyperr
ÚFunctionÚBuiltinÚWordrÚDoubleÚSinglerÚIntegerÚFloatÚtokens©rrú</tmp/pip-build-gk9425m9/Pygments/pygments/lexers/business.pyrsþ




c@s@eZdZdZdZdgZddgZgZej	ej
BZddefgiZ
dS)	rzJ
    Lexer for Free format OpenCOBOL code.

    .. versionadded:: 1.6
    Z	COBOLFreeZ	cobolfreez*.cblz*.CBLrz(\*>.*\n|^\w*\*.*$)N)rrrr	r
rrr
rrrrrrrrrrrÝsc@sxeZdZdZdZdgZddgZdgZej	ej
BZdefde
jfd	e
jfd
e
jfgdejfdejfged
ƒdefdefdeeeejƒfdeeeeejeƒfdeeeejeeƒfdeeeejƒfdeeejeejƒfdejfdeeeejƒfdeeeejƒfdefdefdefdeejeƒfdefdejfdejfedƒd efd!ejfd"ejfd#eeejeƒfd$efd%eeeƒfgd&œZd'S)(rzO
    Lexer for ABAP, SAP's integrated language.

    .. versionadded:: 1.1
    ZABAPZabapz*.abapz*.ABAPztext/x-abapz\s+z^\*.*$z\".*?\nz##\w+z<\S+>z\w[\w~]*(?:(\[\])|->\*)?Úcommonz*CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION)zR(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|TRANSACTION|TRANSFORMATION))\bz(FORM|PERFORM)(\s+)(\w+)z(PERFORM)(\s+)(\()(\w+)(\))z%(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)z(METHOD)(\s+)([\w~]+)z (\s+)([\w\-]+)([=\-]>)([\w\-~]+)z(?<=(=|-)>)([\w\-~]+)(?=\()z(TEXT)(-)(\d{3})z(TEXT)(-)(\w{3})a(ADD-CORRESPONDING|AUTHORITY-CHECK|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|DELETE-ADJACENT|DIVIDE-CORRESPONDING|EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|FIELD-GROUPS|FIELD-SYMBOLS|FIELD-SYMBOL|FUNCTION-POOL|INTERFACE-POOL|INVERTED-DATE|LOAD-OF-PROGRAM|LOG-POINT|MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|OUTPUT-LENGTH|PRINT-CONTROL|SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYSTEM-EXCEPTIONS|TYPE-POOL|TYPE-POOLS|NO-DISPLAY)\ba	(?<![-\>])(CREATE\s+(PUBLIC|PRIVATE|DATA|OBJECT)|(PUBLIC|PRIVATE|PROTECTED)\s+SECTION|(TYPE|LIKE)\s+((LINE\s+OF|REF\s+TO|(SORTED|STANDARD|HASHED)\s+TABLE\s+OF))?|FROM\s+(DATABASE|MEMORY)|CALL\s+METHOD|(GROUP|ORDER) BY|HAVING|SEPARATED BY|GET\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|PF-STATUS|(PROPERTY|REFERENCE)\s+OF|RUN\s+TIME|TIME\s+(STAMP)?)?|SET\s+(BIT|BLANK\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\s+CHECK|HANDLER|HOLD\s+DATA|LANGUAGE|LEFT\s+SCROLL-BOUNDARY|LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\s+OF|RUN\s+TIME\s+(ANALYZER|CLOCK\s+RESOLUTION)|SCREEN|TITLEBAR|UPADTE\s+TASK\s+LOCAL|USER-COMMAND)|CONVERT\s+((INVERTED-)?DATE|TIME|TIME\s+STAMP|TEXT)|(CLOSE|OPEN)\s+(DATASET|CURSOR)|(TO|FROM)\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|DATABASE|SHARED\s+(MEMORY|BUFFER))|DESCRIBE\s+(DISTANCE\s+BETWEEN|FIELD|LIST|TABLE)|FREE\s(MEMORY|OBJECT)?|PROCESS\s+(BEFORE\s+OUTPUT|AFTER\s+INPUT|ON\s+(VALUE-REQUEST|HELP-REQUEST))|AT\s+(LINE-SELECTION|USER-COMMAND|END\s+OF|NEW)|AT\s+SELECTION-SCREEN(\s+(ON(\s+(BLOCK|(HELP|VALUE)-REQUEST\s+FOR|END\s+OF|RADIOBUTTON\s+GROUP))?|OUTPUT))?|SELECTION-SCREEN:?\s+((BEGIN|END)\s+OF\s+((TABBED\s+)?BLOCK|LINE|SCREEN)|COMMENT|FUNCTION\s+KEY|INCLUDE\s+BLOCKS|POSITION|PUSHBUTTON|SKIP|ULINE)|LEAVE\s+(LIST-PROCESSING|PROGRAM|SCREEN|TO LIST-PROCESSING|TO TRANSACTION)(ENDING|STARTING)\s+AT|FORMAT\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|AS\s+(CHECKBOX|SUBSCREEN|WINDOW)|WITH\s+(((NON-)?UNIQUE)?\s+KEY|FRAME)|(BEGIN|END)\s+OF|DELETE(\s+ADJACENT\s+DUPLICATES\sFROM)?|COMPARING(\s+ALL\s+FIELDS)?|(INSERT|APPEND)(\s+INITIAL\s+LINE\s+(IN)?TO|\s+LINES\s+OF)?|IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|END-OF-(DEFINITION|PAGE|SELECTION)|WITH\s+FRAME(\s+TITLE)|(REPLACE|FIND)\s+((FIRST|ALL)\s+OCCURRENCES?\s+OF\s+)?(SUBSTRING|REGEX)?|MATCH\s+(LENGTH|COUNT|LINE|OFFSET)|(RESPECTING|IGNORING)\s+CASE|IN\s+UPDATE\s+TASK|(SOURCE|RESULT)\s+(XML)?|REFERENCE\s+INTO|AND\s+(MARK|RETURN)|CLIENT\s+SPECIFIED|CORRESPONDING\s+FIELDS\s+OF|IF\s+FOUND|FOR\s+EVENT|INHERITING\s+FROM|LEAVE\s+TO\s+SCREEN|LOOP\s+AT\s+(SCREEN)?|LOWER\s+CASE|MATCHCODE\s+OBJECT|MODIF\s+ID|MODIFY\s+SCREEN|NESTING\s+LEVEL|NO\s+INTERVALS|OF\s+STRUCTURE|RADIOBUTTON\s+GROUP|RANGE\s+OF|REF\s+TO|SUPPRESS DIALOG|TABLE\s+OF|UPPER\s+CASE|TRANSPORTING\s+NO\s+FIELDS|VALUE\s+CHECK|VISIBLE\s+LENGTH|HEADER\s+LINE|COMMON\s+PART)\ba(^|(?<=(\s|\.)))(ABBREVIATED|ABSTRACT|ADD|ALIASES|ALIGN|ALPHA|ASSERT|AS|ASSIGN(ING)?|AT(\s+FIRST)?|BACK|BLOCK|BREAK-POINT|CASE|CAST|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|COND|CONV|CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|COUNTRY|CURRENCY|DATA|DATE|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|DETAIL|DIRECTORY|DIVIDE|DO|DUMMY|ELSE(IF)?|ENDAT|ENDCASE|ENDCATCH|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|ENDIF|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|ENDWHILE|ENHANCEMENT|EVENTS|EXACT|EXCEPTIONS?|EXIT|EXPONENT|EXPORT|EXPORTING|EXTRACT|FETCH|FIELDS?|FOR|FORM|FORMAT|FREE|FROM|FUNCTION|HIDE|ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|LANGUAGE|LEAVE|LENGTH|LINES|LOAD|LOCAL|JOIN|KEY|NEW|NEXT|MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFIER|MODIFY|MOVE|MULTIPLY|NODES|NUMBER|OBLIGATORY|OBJECT|OF|OFF|ON|OTHERS|OVERLAY|PACK|PAD|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|PF\d\d|RAISE|RAISING|RANGES?|READ|RECEIVE|REDEFINITION|REFRESH|REJECT|REPORT|RESERVE|REF|RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|REPLACE|SCROLL|SEARCH|SELECT|SHIFT|SIGN|SINGLE|SIZE|SKIP|SORT|SPLIT|STATICS|STOP|STYLE|SUBMATCHES|SUBMIT|SUBTRACT|SUM(?!\()|SUMMARY|SUMMING|SUPPLY|SWITCH|TABLE|TABLES|TIMESTAMP|TIMES?|TIMEZONE|TITLE|\??TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|ULINE|UNDER|UNPACK|UPDATE|USING|VALUE|VALUES|VIA|VARYING|VARY|WAIT|WHEN|WHERE|WIDTH|WHILE|WITH|WINDOW|WRITE|XSD|ZERO)\ba8(abs|acos|asin|atan|boolc|boolx|bit_set|char_off|charlen|ceil|cmax|cmin|condense|contains|contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|count|count_any_of|count_any_not_of|dbmaxlen|distance|escape|exp|find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|insert|lines|log|log10|match|matches|nmax|nmin|numofchar|repeat|replace|rescale|reverse|round|segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|substring|substring_after|substring_from|substring_before|substring_to|tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|xstrlen)(\()\bz&[0-9]z[0-9]+z¤(?<=(\s|.))(AND|OR|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|IS\s+(NOT\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\bzvariable-namesz[?*<>=\-+&]z'(''|[^'])*'z	`([^`])*`z([|}])([^{}|]*?)([|{])z
[/;:()\[\],.]z(!)(\w+))rzvariable-namesrN)rrrr	r
rrr
rrrrrrrÚSpecialr
rrr	rrr
rrrrrrrrrrrrðsh


8c@s
eZdZdZdZdddgZddgZdd	gZd
Ze	e
ddd
Zdej
dfdejdfdejfdejfdejfeejfeejfdejfdejfdejfdejfdefdefdefdejfgdej
fdej
dfdej
d fd!ej
fgd"ejfdejdfd#ejd fgd$œZd%d&„Z d'S)(rz’
    Lexer for `OpenEdge ABL (formerly Progress)
    <http://web.progress.com/en/openedge/abl.html>`_ source code.

    .. versionadded:: 1.5
    zOpenEdge ABLZopenedgeZablÚprogressz*.pz*.clsztext/x-openedgezapplication/x-openedgezê(?i)(^|(?<=[^\w\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|COM-HANDLE|DATE|DATETIME|DATETIME-TZ|DECIMAL|DEC|DECI|DECIM|DECIMA|HANDLE|INT64|INTEGER|INT|INTE|INTEG|INTEGE|LOGICAL|LONGCHAR|MEMPTR|RAW|RECID|ROWID)\s*($|(?=[^\w\-]))z(?i)(^|(?<=[^\w\-]))z\s*($|(?=[^\w\-])))rurvz/\*rz\{Úpreprocessorz\s*&.*z0[xX][0-9a-fA-F]+[LlUu]*z(?i)(DEFINE|DEF|DEFI|DEFIN)\bz"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*'z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z[0-9]+z\s+z[+*/=-]z[.:()]Ú.z[^*/]z#pushz\*/z#popz[*/]z[^{}]z\})rrr"cCs8d}d|kr|d7}d|kr$|d7}d|kr4|d7}|S)z>Try to identify OpenEdge ABL based on a few common constructs.rzEND.gš™™™™™©?zEND PROCEDURE.zELSE DO:r)ÚtextÚresultrrrÚanalyse_textöszOpenEdgeLexer.analyse_textN)!rrrr	r
rrr
ÚtypesrrÚkeywordsrZ	MultilineZPreprocrZHexr	ZDeclarationrr
rrrrrrrrr
rrr&rrrrrÁs@







c	@s¢eZdZdZdZdgZdgZdgZej	Z
dejfde
jfded	fd
efdefgded
fdefde
jfdefdedfdefdefgdejfded
fdefgdœZdS)rzÃ
    Lexer for `GoodData-CL
    <https://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/com/gooddata/processor/COMMANDS.txt>`_
    script files.

    .. versionadded:: 1.4
    zGoodData-CLzgooddata-clz*.gdcztext/x-gooddata-clz#.*z[a-z]\w*z\(z	args-listú;z\s+z\)z#popú,ú=ú"zstring-literalz([0-9]+(?:\.[0-9]+)?(?:e[+-]?[0-9]{1,3})?z\sz\\[tnrfbae"\\]z[^\\"]+)rz	args-listzstring-literalN)rrrr	r
rrr
rrrrrr
rr
rrrrrrÚEscaperrrrrrs*cS@s²eZdZdZdZdgZdgZddgZej	Z
dejfdej
fd	efd
edfdefd
efdefdej
jfededZd[efd\ejfd]ejfd^efd_efg
d`ejfd
edafdbefgdcœZddS)frz–
    Lexer for `GoodData MAQL
    <https://secure.gooddata.com/docs/html/advanced.metric.tutorial.html>`_
    scripts.

    .. versionadded:: 1.4
    ZMAQLZmaqlz*.maqlztext/x-gooddata-maqlzapplication/x-gooddata-maqlzIDENTIFIER\bz	\{[^}]+\}z([0-9]+(?:\.[0-9]+)?(?:e[+-]?[0-9]{1,3})?r,zstring-literalz	\<\>|\!\=z\=|\>\=|\>|\<\=|\<z\:\=z	\[[^]]+\]Ú	DIMENSIONÚ
DIMENSIONSršÚMETRICrµr(ÚFACTr•r€ÚORrÚCREATEÚPARENTÚFALSEÚROWÚROWSrär{rŠrÜr¦r§ÚDEFINErNrrùÚLIKEÚANDr›ÚBETWEENÚEXCEPTr_ÚMATCHÚWHEREÚTRUErárñÚWITHOUTÚFILTERÚALIASr”ÚNOTr#ÚKEYSrþÚFULLSETÚPRIMARYÚLABELSrÿÚVISUALÚTITLEÚDESCRIPTIONÚFOLDERrƒÚDROPrÚDATASETÚDATATYPEÚINTÚBIGINTÚDOUBLErºÚVARCHARÚDECIMALÚSYNCHRONIZErƒrÁr&ÚASCÚDESCÚ	HYPERLINKÚINCLUDEÚTEMPLATEÚMODIFYz\b)rvz
[a-z]\w*\bz#.*z[,;()]z\s+z\\[tnrfbae"\\]z#popz[^\\"]+)rzstring-literalN)Jr.r/ršr0rµr(r1r•r€r2rr3r4r5r6r7rär{rŠrÜr¦r§r8rNrrùr9r:r›r;r<r_r=r>r?rárñr@rArBr”rCr#rDrþrErFrGrÿrHrIrJrKrƒrLrrMrNrOrPrQrºrRrSrTrƒrÁr&rUrVrWrXrYrZ)rrrr	r
rrr
rrrr
rrrrrZClassrr	rrrr
rr-rrrrrr5sF
)r	rZpygments.lexerrrrrZpygments.tokenrrrr	r
rrr
rrZ"pygments.lexers._openedge_builtinsrÚ__all__rrrrrrrrrrÚ<module>	s0GRE/