| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?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|(?&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>
|