+
    TBin                         R t ^ RIt^ RIHtHtHtHt ^ RIHtH	t	H
t
HtHtHtHtHtHtHt ^ RIHt . ROt ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R	]4      t ! R R
]4      tR# )z
pygments.lexers.business
~~~~~~~~~~~~~~~~~~~~~~~~

Lexers for "business-oriented" languages.

:copyright: Copyright 2006-2025 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                   j   ] tR t^tRtRtR.t. R OtR.tRt	Rt
]P                  ]P                  ,          tR]! R4      ]! R	4      ]! R
4      ]! R4      R]P"                  3R]3.RR]3.R
R]P(                  3]! R!RRR7      ]P.                  3]! R"RRR7      ]P0                  3]! R#RRR7      ]3R]P4                  3R]3R]3R]P:                  3R]P<                  3R]P>                  3.
R	R] PB                  3R] PD                  3.RR]#PH                  3R]#PJ                  3R]#PJ                  3./t&Rt'R# )$r   z
Lexer for OpenCOBOL code.
COBOLcobolztext/x-cobolz#https://en.wikipedia.org/wiki/COBOL1.6rootcommentstringscorenumsz[a-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\-]))z(^|(?<=[^\w\-]))\s*($|(?=[^\w\-]))prefixsuffixz(^|(?<=[^\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+)? N)z*.cobz*.COBz*.cpyz*.CPY)ZACCEPTADDALLOCATECALLCANCELCLOSECOMPUTECONFIGURATIONCONTINUEDATADELETEDISPLAYDIVIDEDIVISIONELSEENDz
END-ACCEPTzEND-ADDzEND-CALLzEND-COMPUTEz
END-DELETEzEND-DISPLAYz
END-DIVIDEzEND-EVALUATEzEND-IFzEND-MULTIPLYzEND-OF-PAGEzEND-PERFORMzEND-READz
END-RETURNzEND-REWRITEz
END-SEARCHz	END-STARTz
END-STRINGzEND-SUBTRACTzEND-UNSTRINGz	END-WRITEENVIRONMENTEVALUATEEXITFDFILEzFILE-CONTROLFOREVERFREEGENERATEGOGOBACKIDENTIFICATIONIF
INITIALIZEINITIATEzINPUT-OUTPUTINSPECTINVOKEzI-O-CONTROLLINKAGEzLOCAL-STORAGEMERGEMOVEMULTIPLYOPENPERFORM	PROCEDUREz
PROGRAM-IDRAISEREADRELEASERESUMERETURNREWRITESCREENSDSEARCHSECTIONSETSORTSTARTSTOPSTRINGSUBTRACTSUPPRESS	TERMINATETHENUNLOCKUNSTRINGUSEVALIDATEzWORKING-STORAGEWRITE("  ACCESSADDRESS	ADVANCINGAFTERALLALPHABET
ALPHABETICzALPHABETIC-LOWERzALPHABETIC-UPPERALPHANUMERICzALPHANUMERIC-EDITEDALSOALTERALTERNATEANYAREAREAAREASzARGUMENT-NUMBERzARGUMENT-VALUEAS	ASCENDINGASSIGNATAUTOz	AUTO-SKIP	AUTOMATICAUTOTERMINATEzBACKGROUND-COLORBASEDBEEPBEFOREBELLBLANKBLINKBLOCKBOTTOMBYzBYTE-LENGTHCHAINING	CHARACTER
CHARACTERSCLASSCODEzCODE-SETCOL	COLLATINGCOLSCOLUMNCOLUMNSCOMMAzCOMMAND-LINECOMMITCOMMONCONSTANTCONTAINSCONTENTCONTROLCONTROLS
CONVERTINGCOPYCORRCORRESPONDINGCOUNTCRTCURRENCYCURSORCYCLEDATEDAYzDAY-OF-WEEKDE	DEBUGGINGzDECIMAL-POINTDECLARATIVESDEFAULT	DELIMITED	DELIMITER	DEPENDING
DESCENDINGDETAILDISKDOWN
DUPLICATESDYNAMICEBCDICENTRYzENVIRONMENT-NAMEzENVIRONMENT-VALUEEOLEOPEOSERASEERRORESCAPE	EXCEPTION	EXCLUSIVEEXTENDEXTERNALzFILE-IDFILLERFINALFIRSTFIXEDz
FLOAT-LONGzFLOAT-SHORTFOOTINGFORzFOREGROUND-COLORFORMATFROMFULLFUNCTIONzFUNCTION-IDGIVINGGLOBALGROUPHEADING	HIGHLIGHTz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LINAGEzLINAGE-COUNTERLINELINESLOCALELOCKLOWLIGHTMANUALMEMORYMINUSMODEMULTIPLENATIONALzNATIONAL-EDITEDNATIVENEGATIVENEXTNONULLNULLSNUMBERNUMBERSNUMERICzNUMERIC-EDITEDzOBJECT-COMPUTEROCCURSOFOFFOMITTEDONONLYOPTIONALORDERORGANIZATIONOTHEROUTPUTOVERFLOWOVERLINEzPACKED-DECIMALPADDINGPAGE	PARAGRAPHPLUSPOINTERPOSITIONPOSITIVEPRESENTPREVIOUSPRINTERPRINTINGzPROCEDURE-POINTER
PROCEDURESPROCEEDPROGRAMz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	RETURNINGzREVERSE-VIDEOREWINDRIGHTROLLBACKROUNDEDRUNSAMESCROLLSECUREzSEGMENT-LIMITSELECTSENTENCESEPARATESEQUENCE
SEQUENTIALSHARINGSIGNSIGNEDz
SIGNED-INTzSIGNED-LONGzSIGNED-SHORTSIZEz
SORT-MERGESOURCEzSOURCE-COMPUTERzSPECIAL-NAMESSTANDARDz
STANDARD-1z
STANDARD-2STATUSSUBKEYSUMSYMBOLICSYNCSYNCHRONIZEDTALLYINGTAPETESTTHROUGHTHRUTIMETIMESTOTOPTRAILING	TRANSFORMTYPE	UNDERLINEUNITUNSIGNEDzUNSIGNED-INTzUNSIGNED-LONGzUNSIGNED-SHORTUNTILUPUPDATEUPONUSAGEUSINGVALUEVALUESVARYINGWAITWHENWITHWORDSYYYYDDDYYYYMMDD)qzACTIVE-CLASSALIGNEDANYCASE
ARITHMETIC	ATTRIBUTEzB-ANDzB-NOTzB-ORzB-XORBITBOOLEANCDCENTERCFCHCHAINzCLASS-IDCLASSIFICATIONCOMMUNICATION	CONDITIONzDATA-POINTERDESTINATIONDISABLEECEGIEMIENABLEzEND-RECEIVEzENTRY-CONVENTIONEOESIzEXCEPTION-OBJECTEXPANDSFACTORYzFLOAT-BINARY-16zFLOAT-BINARY-34zFLOAT-BINARY-7zFLOAT-DECIMAL-16zFLOAT-DECIMAL-34zFLOAT-EXTENDEDr   zFUNCTION-POINTERGETzGROUP-USAGE
IMPLEMENTSINFINITYINHERITS	INTERFACEzINTERFACE-IDrD   LC_ALL
LC_COLLATELC_CTYPELC_MESSAGESLC_MONETARY
LC_NUMERICLC_TIMEzLINE-COUNTERMESSAGEMETHODz	METHOD-IDNESTEDNONENORMALOBJECTzOBJECT-REFERENCEOPTIONSOVERRIDEzPAGE-COUNTERPFPHPROPERTY	PROTOTYPEPURGEQUEUErL   RAISINGRECEIVERELATIONREPLACEzREPRESENTS-NOT-A-NUMBERRESETrO   RETRYRFRHSECONDSSEGMENTSELFSENDSOURCES	STATEMENTSTEPSTRONGzSUB-QUEUE-1zSUB-QUEUE-2zSUB-QUEUE-3SUPERSYMBOLzSYSTEM-DEFAULTTABLETERMINALTEXTTYPEDEFzUCS-4	UNIVERSALzUSER-DEFAULTzUTF-16zUTF-8z
VAL-STATUSVALIDrb   zVALIDATE-STATUS)(__name__
__module____qualname____firstlineno____doc__namealiases	filenames	mimetypesurlversion_addedre
IGNORECASE	MULTILINEflagsr   r
   Variabler   r   Constantr   r	   ReservedPseudor   Typer   r   FunctionBuiltinWordr   DoubleSingler   IntegerFloattokens__static_attributes__r$       =/usr/lib/python3.14/site-packages/pygments/lexers/business.pyr   r      s    DiG4I I
/CMMMBLL(E 	IIFOFO+T]];
#
 	-w7
 	# ]]  ,  5H,#.$ %*  4Hj +3Hk5Jl ^^m6r  F, .6K-M. /4*
 ,3<<9 3H= k*  "&0 ?M@AIPaR
j 	 ..	
 	/)6<<8)6<<8
SnFr  c                       ] tR t^tRtRtR.tRR.t. tRt	Rt
]P                  ]P                  ,          tRR	]3./tR
tR# )r   z'
Lexer for Free format OpenCOBOL code.
	COBOLFree	cobolfreez*.cblz*.CBLz!https://opencobol.add1tocobol.comr   r   z(\*>.*\n|^\w*\*.*$)r$   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r$   r  r  r   r      sY     DmG'"II
-CMMMBLL(E 	#W-
Fr  c            "          ] tR t^tRtRtR.tRR.tR.tRt	Rt
]P                  ]P                  ,          tR	R
]3R]P"                  3R]P"                  3R]P$                  3.RR]P(                  3R]P(                  3.R]! R	4      R]3R]3R]! ]]]P0                  4      3R]! ]]]]P(                  ]4      3R]! ]]]P0                  ]]4      3R]! ]]]P0                  4      3R]! ]]P(                  ]]P0                  4      3R]P0                  3R]! ]]]P8                  4      3R]! ]]]P(                  4      3R]3R]3R]3R]! ]P:                  ]4      3R ]3R!]P8                  3R"]P<                  3]! R4      R#]3R$]P"                  3R%]P"                  3R&]! ]]P"                  ]4      3R']3R(]! ]]4      3./t R)t!R*# )+r   z,
Lexer for ABAP, SAP's integrated language.
ABAPabapz*.abapz*.ABAPztext/x-abapz%https://community.sap.com/topics/abapz1.1common\s+z^\*.*$z\".*?\nz##\w+zvariable-namesz<\S+>z\w[\w~]*(?:(\[\])|->\*)?r   z*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][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))\bz[?*<>=\-+&]z'(''|[^'])*'z	`([^`])*`z([|}])([^{}|]*?)([|{])z[/;:()\[\],.]z(!)(\w+)r$   N)"r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  Specialr
   r  r   r	   r   r  r   r   r   r  r  r  r   r  r  r$   r  r  r   r      sw    DhG8$II
1CMMMBLL(E 	Z '(w'	
 	t}}%($--8
 	H:/ )gz4==9;+gz;{SU5gz4==*gNP &gz4==9; 1j$--4==IK ,T]]; !g{FNN;= g{DMM:<  8Np PWq8XvJ> LS?TD  !){ C!E$ 'DEM]]T $% X&fmm,6==)&k6==+>@{+(8T23iu
AFr  c                     a  ] tR tRt o RtRt. R(OtRR.tRR.tRt	R	t
R
t]! ]RRR7      tRR]P                   R3R]P"                  R3R]P"                  3R]P&                  3R]P*                  3]]P,                  3]]P0                  3R]P4                  3R]P6                  3R]P8                  3R]P:                  3R]3R]3R] 3R]PB                  3.RR]P                   3R]P                   R3R ]P                   R!3R"]P                   3.RR#]P"                  3R]P"                  R3R$]P"                  R!3./t"R% t#R&t$V t%R'# ))r   i  z9
Lexer for OpenEdge ABL (formerly Progress) source code.
zOpenEdge ABLz*.pz*.clsztext/x-openedgezapplication/x-openedgez.https://www.progress.com/openedge/features/ablz1.5z(?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\-]))r    r!   r   z/\*r   z\{preprocessorz\s*&.*z0[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]?r  r  z[+*/=-]z[.:()].z[^*/]z#pushz\*/#popz[*/]z[^{}]z\}c                j    ^ pRV 9   d
   VR,          pRV 9   d
   VR,          pRV 9   d
   VR,          pV# )z>Try to identify OpenEdge ABL based on a few common constructs.zEND.g?zEND PROCEDURE.zELSE DO:r$   )textresults   & r  analyse_textOpenEdgeLexer.analyse_text  s>    T>dNFt#dNFdNFr  r$   N)openedgeablprogress)&r  r  r  r  r  r  r  r  r  r  r  typesr   r   keywordsr   	MultilinePreprocr   Hexr	   Declarationr  r
   r  r   r  r  r  r  r   r   r   r  r  r  r  __classdictcell__)__classdict__s   @r  r   r     s     D-G I"$<=I
:CMKE %313H
 	W&&	2GOO^4((&**5-w/B/BCGLL!t||$(&--8(&--85v||D'Z "$4==!
" 	w(()W&&0W&&/g''(	
 	w'GOOW-GOOV,
1F> r  c                      ] tR tRtRtRtR.tR.tR.tRt	Rt
]P                  tR	R
]P                  3R]P"                  3R]R3R]3R]3.RR]R3R]3R]P(                  3R]3R]R3R]3R]3.RR]P2                  3R]R3R]3./tRtR# )r   i  z%
Lexer for GoodData-CL script files.
zGoodData-CLzgooddata-clz*.gdcztext/x-gooddata-clz'https://github.com/gooddata/GoodData-CL1.4r   #.*z[a-z]\w*z\(z	args-list;r  z\)r  ,="string-literal([0-9]+(?:\.[0-9]+)?(?:e[+-]?[0-9]{1,3})?z\s\\[tnrfbae"\\][^\\"]+r$   N)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   Escaper  r  r$   r  r  r   r     s     DoG	I%&I
3CMMME
 	W^^$$--(K-;TN
 	K(;$--(86+,8&AJ	
 	.66" 
/Fr  c                   ^   ] tR tRtRtRtR.tR.tRR.tRt	R	t
]P                  tR
R]P                  3R]P                   3R]3R]R3R]3R]3R]3R]P                   P(                  3]! RRR7      ]3R]P.                  3R]P2                  3R]3R]3.RR]P8                  3R]R3R]3./tRtR# ) r   i6  z"
Lexer for GoodData MAQL scripts.
MAQLmaqlz*.maqlztext/x-gooddata-maqlzapplication/x-gooddata-maqlzbhttps://help.gooddata.com/doc/enterprise/en/dashboards-and-insights/maql-analytical-query-languager  r   zIDENTIFIER\bz	\{[^}]+\}r  r  r  z	\<\>|\!\=z\=|\>\=|\>|\<\=|\<z\:\=z	\[[^]]+\]z\b)r#   z
[a-z]\w*\br  z[,;()]r  r  r  r  r$   N)J	DIMENSION
DIMENSIONSr   METRICr   r   FACTrZ  rH  ORra  CREATEPARENTFALSEROWROWSr   rh   rr   r  r   r   DEFINEr   r   r  LIKEANDr   BETWEENEXCEPTr/  MATCHWHERETRUEr   r   WITHOUTFILTERALIASrY  NOTr   KEYSr   FULLSETPRIMARYLABELSr   VISUALTITLEDESCRIPTIONFOLDERrm   DROPr&   DATASETDATATYPEINTBIGINTDOUBLEr   VARCHARDECIMALSYNCHRONIZErK  r   r   ASCDESC	HYPERLINKINCLUDETEMPLATEMODIFY)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
   r  r  r   r   r   Classr   r	   r  r   r  r   r   r  r  r  r$   r  r  r   r   6  s    DhG
I')FGI
nCMMMEdll+4==)8&A6+,8$"H-h4==../ M   DMM*W^^$$Z M'
P 	.66" 
S.Fr  )r   r   r   r   r   r   )r  r  pygments.lexerr   r   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   r   r   "pygments.lexers._openedge_builtinsr   __all__r   r   r   r   r   r   r$   r  r  <module>r&     s    
 ? ?+ + + @+D DN: (N
 NbAJ AH,j ,^;
 ;r  