| /** |
| * @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 |
| }; |