mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-10-31 03:24:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.0 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>
 | |
| 		<!-- ===================================================== [ 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>
 |