Skip to content

Commit

Permalink
Replaces normal strings with template literals in every string relate…
Browse files Browse the repository at this point in the history
…d to patterns in AbstractParserWithWordBoundaryChecking,AbstractTimeExpressionParser and ru locale
  • Loading branch information
Mikhail Mikhailov committed Jun 29, 2022
1 parent 824f832 commit 42cbc1d
Show file tree
Hide file tree
Showing 9 changed files with 45 additions and 45 deletions.
2 changes: 1 addition & 1 deletion src/common/parsers/AbstractParserWithWordBoundary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export abstract class AbstractParserWithWordBoundaryChecking implements Parser {
private cachedPattern?: RegExp = null;

patternLeftBoundary(): string {
return "(\\W|^)";
return `(\\W|^)`;
}

pattern(context: ParsingContext): RegExp {
Expand Down
50 changes: 25 additions & 25 deletions src/common/parsers/AbstractTimeExpressionParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ import { Meridiem } from "../../index";
// prettier-ignore
function primaryTimePattern(leftBoundary: string, primaryPrefix: string, primarySuffix: string, flags: string) {
return new RegExp(
leftBoundary +
`${leftBoundary}` +
`${primaryPrefix}` +
"(\\d{1,4})" +
"(?:" +
"(?:\\.|:|:)" +
"(\\d{1,2})" +
"(?:" +
"(?::|:)" +
"(\\d{2})" +
"(?:\\.(\\d{1,6}))?" +
")?" +
")?" +
"(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?" +
`(\\d{1,4})` +
`(?:` +
`(?:\\.|:|:)` +
`(\\d{1,2})` +
`(?:` +
`(?::|:)` +
`(\\d{2})` +
`(?:\\.(\\d{1,6}))?` +
`)?` +
`)?` +
`(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?` +
`${primarySuffix}`,
flags
);
Expand All @@ -27,16 +27,16 @@ function primaryTimePattern(leftBoundary: string, primaryPrefix: string, primary
function followingTimePatten(followingPhase: string, followingSuffix: string) {
return new RegExp(
`^(${followingPhase})` +
"(\\d{1,4})" +
"(?:" +
"(?:\\.|\\:|\\:)" +
"(\\d{1,2})" +
"(?:" +
"(?:\\.|\\:|\\:)" +
"(\\d{1,2})(?:\\.(\\d{1,6}))?" +
")?" +
")?" +
"(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?" +
`(\\d{1,4})` +
`(?:` +
`(?:\\.|\\:|\\:)` +
`(\\d{1,2})` +
`(?:` +
`(?:\\.|\\:|\\:)` +
`(\\d{1,2})(?:\\.(\\d{1,6}))?` +
`)?` +
`)?` +
`(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?` +
`${followingSuffix}`,
"i"
);
Expand All @@ -62,15 +62,15 @@ export abstract class AbstractTimeExpressionParser implements Parser {
}

primaryPatternLeftBoundary(): string {
return "(^|\\s|T|\\b)";
return `(^|\\s|T|\\b)`;
}

primarySuffix(): string {
return "(?=\\W|$)";
return `(?=\\W|$)`;
}

followingSuffix(): string {
return "(?=\\W|$)";
return `(?=\\W|$)`;
}

pattern(context: ParsingContext): RegExp {
Expand Down
4 changes: 2 additions & 2 deletions src/locales/ru/parsers/RUCasualTimeParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import dayjs from "dayjs";
import { REGEX_PARTS } from "../constants";

const PATTERN = new RegExp(
"(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)" +
REGEX_PARTS.rightBoundary,
`(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)` +
`${REGEX_PARTS.rightBoundary}`,
REGEX_PARTS.flags
);
export default class RUCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
Expand Down
8 changes: 4 additions & 4 deletions src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ const PATTERN = new RegExp(
`(?:` +
`\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
`(${ORDINAL_NUMBER_PATTERN})` +
")?" +
`)?` +
`(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
`(${matchAnyPattern(MONTH_DICTIONARY)})` +
"(?:" +
`(?:` +
`(?:-|\\/|,?\\s{0,3})` +
`(${YEAR_PATTERN}(?![^\\s]\\d))` +
")?" +
REGEX_PARTS.rightBoundary,
`)?` +
`${REGEX_PARTS.rightBoundary}`,
REGEX_PARTS.flags
);

Expand Down
4 changes: 2 additions & 2 deletions src/locales/ru/parsers/RUMonthNameParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ const PATTERN = new RegExp(
`\\s*` +
`(?:` +
`[,-]?\\s*(${YEAR_PATTERN})?` +
")?" +
"(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)",
`)?` +
`(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,
REGEX_PARTS.flags
);

Expand Down
6 changes: 3 additions & 3 deletions src/locales/ru/parsers/RUTimeExpressionParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ export default class RUTimeExpressionParser extends AbstractTimeExpressionParser
}

primaryPatternLeftBoundary(): string {
return "(^|\\s|T|(?:[^\\p{L}\\p{N}_]))";
return `(^|\\s|T|(?:[^\\p{L}\\p{N}_]))`;
}

followingPhase(): string {
return "\\s*(?:\\-|\\–|\\~|\\〜|до|и|по|\\?)\\s*";
return `\\s*(?:\\-|\\–|\\~|\\〜|до|и|по|\\?)\\s*`;
}

primaryPrefix(): string {
return "(?:(?:в|с)\\s*)??";
return `(?:(?:в|с)\\s*)??`;
}

primarySuffix(): string {
Expand Down
2 changes: 1 addition & 1 deletion src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ParsingComponents } from "../../../results";
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";

const PATTERN = `(?:(?:около|примерно)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`;
const PATTERN_WITH_PREFIX = new RegExp(`(?:в течение|в течении)\\s*` + PATTERN, REGEX_PARTS.flags);
const PATTERN_WITH_PREFIX = new RegExp(`(?:в течение|в течении)\\s*${PATTERN}`, REGEX_PARTS.flags);

const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i");

Expand Down
12 changes: 6 additions & 6 deletions src/locales/ru/parsers/RUWeekdayParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/
import { toDayJSWeekday } from "../../../calculation/weeks";

const PATTERN = new RegExp(
"(?:(?:,|\\(|()\\s*)?" +
"(?:в\\s*?)?" +
"(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?" +
`(?:(?:,|\\(|()\\s*)?` +
`(?:в\\s*?)?` +
`(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?` +
`(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
"(?:\\s*(?:,|\\)|)))?" +
"(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?" +
REGEX_PARTS.rightBoundary,
`(?:\\s*(?:,|\\)|)))?` +
`(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?` +
`${REGEX_PARTS.rightBoundary}`,
REGEX_PARTS.flags
);

Expand Down
2 changes: 1 addition & 1 deletion src/locales/ru/refiners/RUMergeDateTimeRefiner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMerge
*/
export default class RUMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
patternBetween(): RegExp {
return new RegExp("^\\s*(T|в|,|-)?\\s*$");
return new RegExp(`^\\s*(T|в|,|-)?\\s*$`);
}
}

0 comments on commit 42cbc1d

Please sign in to comment.