• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 * @fileoverview Common utils for AST.
3 *
4 * This file contains only shared items for core and rules.
5 * If you make a utility for rules, please see `../rules/utils/ast-utils.js`.
6 *
7 * @author Toru Nagashima <https://github.com/mysticatea>
8 */
9"use strict";
10
11const breakableTypePattern = /^(?:(?:Do)?While|For(?:In|Of)?|Switch)Statement$/u;
12const lineBreakPattern = /\r\n|[\r\n\u2028\u2029]/u;
13const shebangPattern = /^#!([^\r\n]+)/u;
14
15/**
16 * Creates a version of the `lineBreakPattern` regex with the global flag.
17 * Global regexes are mutable, so this needs to be a function instead of a constant.
18 * @returns {RegExp} A global regular expression that matches line terminators
19 */
20function createGlobalLinebreakMatcher() {
21    return new RegExp(lineBreakPattern.source, "gu");
22}
23
24module.exports = {
25    breakableTypePattern,
26    lineBreakPattern,
27    createGlobalLinebreakMatcher,
28    shebangPattern
29};
30