notepad-plus-plus-legacy/PowerEditor/installer/functionList/krl.xml
Don HO c0c070abaf
Split functionList.xml into multifile in "functionList" Folder
New "functionList" will be added beside of notepad++.exe or "%APPDATA%\Notepad++\", according the installation mode. If the portable package is used, after removing "doLocalConf.xml", the "functionList" folder should be copied manually from Notepad++ installed directory to "%APPDATA%\Notepad++\" to make function list work again.

All splited files are localized in this folder with the explicit language name.

"overrideMap.xml" is optional for overriding the default functionList parse rule files, and for adding UDL parse rule files.

Close #4896
2020-10-21 18:05:08 +02:00

76 lines
2.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!-- ==========================================================================\
|
| To learn how to make your own language parser, please check the following
| link:
| https://npp-user-manual.org/docs/function-list/
|
\=========================================================================== -->
<NotepadPlus>
<functionList>
<!-- ========================================================= [ KRL ] -->
<!-- KRL - KUKA Robot Language -->
<!--
| https://notepad-plus-plus.org/community/topic/12264/function-list-for-new-language
\-->
<parser
displayName="KRL"
id ="krl_function"
commentExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`)
(?m-s:;.*$) # Single Line Comment
"
>
<function
mainExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`)
(?i:
(?:GLOBAL\h+)?
DEF # start-of-procedure indicator, possible extended to...
(?:
FCT # ...start-of-function indicator
\h+
(?:BOOL|CHAR|INT|REAL|(?&amp;VALID_ID)) # returning a primitive type or a user-defined-type...
(?: # ...optionally as an array
\h*\[
\h*(?:\d+|\x27(?:H[0-9A-Fa-f]+|B[01]+)\x27)?
\h*\]
)?
)?
)
\h+
\K # keep the text matched so far, out of the overall match
(?'VALID_ID' # valid identifier, use as subroutine
\b(?!(?i:
AN(?:D|IN|OUT)
| B(?:OOL|RAKE|_(?:AND|EXOR|NOT|OR))
| C(?:ASE|AST_(?:FROM|TO)|HAR|IRC(?:_REL)?|ON(?:ST|TINUE)|_(?:DIS|ORI|PTP|VEL))
| D(?:ECL|EF(?:AULT|DAT|FCT)|ELAY|O)
| E(?:LSE|ND(?:DAT|FCT|FOR|IF|LOOP|SWITCH|WHILE)?|NUM|X(?:IT|OR|T(?:FCT)?))
| F(?:ALSE|OR)
| G(?:LOBAL|OTO)
| HALT
| I(?:[FS]|MPORT|NT(?:ERRUPT)?)
| L(?:IN(?:_REL)?|OOP)
| M(?:AXI|INI)MUM
| NOT
| OR
| P(?:RIO|TP(?:_REL)?|UBLIC)
| RE(?:AL|PEAT|SUME|TURN)
| S(?:EC|IGNAL|TRUC|WITCH)
| T(?:HEN|O|RIGGER|RUE)
| UNTIL
| W(?:AIT|HEN|HILE)
)\b) # keywords, not to be used as identifier
[$A-Za-z_\x7F-\xFF][$\w\x7F-\xFF]{0,23} # valid character combination for identifiers
)
\h*\([^)]*\)
"
>
<!-- comment out the following node to display the method with its parameters -->
<functionName>
<nameExpr expr="[$A-Za-z_\x7F-\xFF][$\w\x7F-\xFF]{0,23}" />
</functionName>
</function>
</parser>
</functionList>
</NotepadPlus>