39 lines
		
	
	
		
			713 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			713 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | ||
| Language: Backus–Naur Form
 | ||
| Website: https://en.wikipedia.org/wiki/Backus–Naur_form
 | ||
| Author: Oleg Efimov <efimovov@gmail.com>
 | ||
| */
 | ||
| 
 | ||
| /** @type LanguageFn */
 | ||
| function bnf(hljs) {
 | ||
|   return {
 | ||
|     name: 'Backus–Naur Form',
 | ||
|     contains: [
 | ||
|       // Attribute
 | ||
|       {
 | ||
|         className: 'attribute',
 | ||
|         begin: /</,
 | ||
|         end: />/
 | ||
|       },
 | ||
|       // Specific
 | ||
|       {
 | ||
|         begin: /::=/,
 | ||
|         end: /$/,
 | ||
|         contains: [
 | ||
|           {
 | ||
|             begin: /</,
 | ||
|             end: />/
 | ||
|           },
 | ||
|           // Common
 | ||
|           hljs.C_LINE_COMMENT_MODE,
 | ||
|           hljs.C_BLOCK_COMMENT_MODE,
 | ||
|           hljs.APOS_STRING_MODE,
 | ||
|           hljs.QUOTE_STRING_MODE
 | ||
|         ]
 | ||
|       }
 | ||
|     ]
 | ||
|   };
 | ||
| }
 | ||
| 
 | ||
| module.exports = bnf;
 |