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.
		
		
		
		
			
				
					30 lines
				
				910 B
			
		
		
			
		
	
	
					30 lines
				
				910 B
			| 
								 
											4 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @fileoverview Common utils for AST.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This file contains only shared items for core and rules.
							 | 
						||
| 
								 | 
							
								 * If you make a utility for rules, please see `../rules/utils/ast-utils.js`.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @author Toru Nagashima <https://github.com/mysticatea>
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const breakableTypePattern = /^(?:(?:Do)?While|For(?:In|Of)?|Switch)Statement$/u;
							 | 
						||
| 
								 | 
							
								const lineBreakPattern = /\r\n|[\r\n\u2028\u2029]/u;
							 | 
						||
| 
								 | 
							
								const shebangPattern = /^#!([^\r\n]+)/u;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Creates a version of the `lineBreakPattern` regex with the global flag.
							 | 
						||
| 
								 | 
							
								 * Global regexes are mutable, so this needs to be a function instead of a constant.
							 | 
						||
| 
								 | 
							
								 * @returns {RegExp} A global regular expression that matches line terminators
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function createGlobalLinebreakMatcher() {
							 | 
						||
| 
								 | 
							
								    return new RegExp(lineBreakPattern.source, "gu");
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								    breakableTypePattern,
							 | 
						||
| 
								 | 
							
								    lineBreakPattern,
							 | 
						||
| 
								 | 
							
								    createGlobalLinebreakMatcher,
							 | 
						||
| 
								 | 
							
								    shebangPattern
							 | 
						||
| 
								 | 
							
								};
							 |