31 lines
		
	
	
		
			897 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			897 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
/**
 | 
						|
 * @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,
 | 
						|
};
 |