You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.0 KiB
62 lines
2.0 KiB
2 years ago
|
<?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>
|
||
|
<!-- ===================================================== [ NppExec ] -->
|
||
|
|
||
|
<parser
|
||
|
displayName="NppExec"
|
||
|
id ="nppexec_syntax"
|
||
|
>
|
||
|
<!-- Define NppExec script as the range started by a pair of colons
|
||
|
and ending right before the next pair of colons or the file's
|
||
|
end, respectively
|
||
|
-->
|
||
|
<classRange
|
||
|
mainExpr="(?x) # free-spacing (see `RegEx - Pattern Modifiers`)
|
||
|
(?ims) # ignore case, ^ and $ match start/end of line, dot matches newline
|
||
|
^\h*
|
||
|
::
|
||
|
.*?
|
||
|
(?=::|\Z)
|
||
|
"
|
||
|
>
|
||
|
<className>
|
||
|
<!-- The script's name is shown without its preceding pair
|
||
|
of colons
|
||
|
-->
|
||
|
<nameExpr expr="(?im-s)^\h*::\K(?:(.+?)(?=\h*\/{2}|$))" />
|
||
|
</className>
|
||
|
|
||
|
<!-- Define jump labels as functions. Names are starting with one
|
||
|
or two colons (thus the script's name itself is shown as a
|
||
|
function) and terminated by a line comment, the line's end
|
||
|
or the file's end
|
||
|
-->
|
||
|
<function
|
||
|
mainExpr="(?x) # free-spacing (see `RegEx - Pattern Modifiers`)
|
||
|
(?im-s) # ignore case, ^ and $ match start/end of line, dot doesn't match newline
|
||
|
^\h*
|
||
|
:{1,2}.+?
|
||
|
\h*(?=\/{2}|$|\Z)
|
||
|
"
|
||
|
>
|
||
|
<functionName>
|
||
|
<!-- The script name is shown including its preceding pair
|
||
|
of colons, jump labels are shown without the preceding
|
||
|
single colon
|
||
|
-->
|
||
|
<funcNameExpr expr="(?im-s)\h*(?(?=::)(.+)|(?::\K(.+)))" />
|
||
|
</functionName>
|
||
|
</function>
|
||
|
</classRange>
|
||
|
</parser>
|
||
|
</functionList>
|
||
|
</NotepadPlus>
|