chrono-node 2.7.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.d.ts +2 -1
  2. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.js +9 -5
  3. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.js.map +1 -1
  4. package/dist/cjs/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
  5. package/dist/cjs/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js +24 -0
  6. package/dist/cjs/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
  7. package/dist/cjs/locales/ru/parsers/RUCasualDateParser.d.ts +3 -4
  8. package/dist/cjs/locales/ru/parsers/RUCasualDateParser.js +4 -9
  9. package/dist/cjs/locales/ru/parsers/RUCasualDateParser.js.map +1 -1
  10. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.d.ts +3 -4
  11. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.js +4 -10
  12. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.js.map +1 -1
  13. package/dist/cjs/locales/ru/parsers/RUMonthNameLittleEndianParser.d.ts +3 -4
  14. package/dist/cjs/locales/ru/parsers/RUMonthNameLittleEndianParser.js +14 -19
  15. package/dist/cjs/locales/ru/parsers/RUMonthNameLittleEndianParser.js.map +1 -1
  16. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.d.ts +3 -4
  17. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.js +10 -14
  18. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.js.map +1 -1
  19. package/dist/cjs/locales/ru/parsers/RURelativeDateFormatParser.d.ts +3 -4
  20. package/dist/cjs/locales/ru/parsers/RURelativeDateFormatParser.js +4 -8
  21. package/dist/cjs/locales/ru/parsers/RURelativeDateFormatParser.js.map +1 -1
  22. package/dist/cjs/locales/ru/parsers/RUTimeUnitAgoFormatParser.d.ts +3 -4
  23. package/dist/cjs/locales/ru/parsers/RUTimeUnitAgoFormatParser.js +4 -8
  24. package/dist/cjs/locales/ru/parsers/RUTimeUnitAgoFormatParser.js.map +1 -1
  25. package/dist/cjs/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.d.ts +3 -4
  26. package/dist/cjs/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +4 -8
  27. package/dist/cjs/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -1
  28. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.d.ts +3 -0
  29. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +6 -3
  30. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -1
  31. package/dist/cjs/locales/ru/parsers/RUWeekdayParser.d.ts +3 -4
  32. package/dist/cjs/locales/ru/parsers/RUWeekdayParser.js +9 -14
  33. package/dist/cjs/locales/ru/parsers/RUWeekdayParser.js.map +1 -1
  34. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.d.ts +2 -1
  35. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.js +9 -5
  36. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.js.map +1 -1
  37. package/dist/esm/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
  38. package/dist/esm/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js +19 -0
  39. package/dist/esm/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
  40. package/dist/esm/locales/ru/parsers/RUCasualDateParser.d.ts +3 -4
  41. package/dist/esm/locales/ru/parsers/RUCasualDateParser.js +4 -9
  42. package/dist/esm/locales/ru/parsers/RUCasualDateParser.js.map +1 -1
  43. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.d.ts +3 -4
  44. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.js +4 -10
  45. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.js.map +1 -1
  46. package/dist/esm/locales/ru/parsers/RUMonthNameLittleEndianParser.d.ts +3 -4
  47. package/dist/esm/locales/ru/parsers/RUMonthNameLittleEndianParser.js +15 -20
  48. package/dist/esm/locales/ru/parsers/RUMonthNameLittleEndianParser.js.map +1 -1
  49. package/dist/esm/locales/ru/parsers/RUMonthNameParser.d.ts +3 -4
  50. package/dist/esm/locales/ru/parsers/RUMonthNameParser.js +11 -15
  51. package/dist/esm/locales/ru/parsers/RUMonthNameParser.js.map +1 -1
  52. package/dist/esm/locales/ru/parsers/RURelativeDateFormatParser.d.ts +3 -4
  53. package/dist/esm/locales/ru/parsers/RURelativeDateFormatParser.js +5 -9
  54. package/dist/esm/locales/ru/parsers/RURelativeDateFormatParser.js.map +1 -1
  55. package/dist/esm/locales/ru/parsers/RUTimeUnitAgoFormatParser.d.ts +3 -4
  56. package/dist/esm/locales/ru/parsers/RUTimeUnitAgoFormatParser.js +5 -9
  57. package/dist/esm/locales/ru/parsers/RUTimeUnitAgoFormatParser.js.map +1 -1
  58. package/dist/esm/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.d.ts +3 -4
  59. package/dist/esm/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +5 -9
  60. package/dist/esm/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -1
  61. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.d.ts +3 -0
  62. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +6 -3
  63. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -1
  64. package/dist/esm/locales/ru/parsers/RUWeekdayParser.d.ts +3 -4
  65. package/dist/esm/locales/ru/parsers/RUWeekdayParser.js +10 -15
  66. package/dist/esm/locales/ru/parsers/RUWeekdayParser.js.map +1 -1
  67. package/package.json +1 -1
  68. package/src/common/parsers/AbstractParserWithWordBoundary.ts +17 -9
  69. package/src/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.ts +25 -0
  70. package/src/locales/ru/parsers/RUCasualDateParser.ts +4 -14
  71. package/src/locales/ru/parsers/RUCasualTimeParser.ts +4 -14
  72. package/src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts +16 -26
  73. package/src/locales/ru/parsers/RUMonthNameParser.ts +13 -20
  74. package/src/locales/ru/parsers/RURelativeDateFormatParser.ts +6 -14
  75. package/src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts +5 -11
  76. package/src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts +4 -13
  77. package/src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts +10 -4
  78. package/src/locales/ru/parsers/RUWeekdayParser.ts +12 -20
  79. package/test/en/en.test.ts +3 -3
  80. package/test/result.test.ts +29 -0
  81. package/test/ru/ru_relative.test.ts +44 -11
  82. package/test/ru/ru_time_units_casual_relative.test.ts +96 -30
  83. package/test/uk/uk_relative.test.ts +44 -11
  84. package/test/uk/uk_time_units_casual_relative.test.ts +40 -10
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractParserWithWordBoundary.js","sourceRoot":"","sources":["../../../../src/common/parsers/AbstractParserWithWordBoundary.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,sCAAsC;IAA5D;QAOY,uBAAkB,GAAY,IAAI,CAAC;QACnC,kBAAa,GAAY,IAAI,CAAC;IA2B1C,CAAC;IAzBG,mBAAmB;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3G,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAuB,EAAE,KAAuB;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ"}
1
+ {"version":3,"file":"AbstractParserWithWordBoundary.js","sourceRoot":"","sources":["../../../../src/common/parsers/AbstractParserWithWordBoundary.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,sCAAsC;IAA5D;QAgBY,uBAAkB,GAAY,IAAI,CAAC;QACnC,kBAAa,GAAY,IAAI,CAAC;IA0B1C,CAAC;IAnCG,qBAAqB,CAAC,OAAuB,EAAE,mBAA2B;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,mBAAmB,CAAC;IAC9D,CAAC;IAED,mBAAmB;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAKD,OAAO,CAAC,OAAuB;QAC3B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC/D,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;SACJ;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAC3B,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAChE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAChC,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAuB,EAAE,KAAuB;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ"}
@@ -0,0 +1,11 @@
1
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
2
+ import { ParsingContext } from "../../../chrono.js";
3
+ export declare abstract class AbstractParserWithLeftBoundaryChecking extends AbstractParserWithWordBoundaryChecking {
4
+ abstract innerPatternString(context: ParsingContext): string;
5
+ patternLeftBoundary(): string;
6
+ innerPattern(context: ParsingContext): RegExp;
7
+ innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean;
8
+ }
9
+ export declare abstract class AbstractParserWithLeftRightBoundaryChecking extends AbstractParserWithLeftBoundaryChecking {
10
+ innerPattern(context: ParsingContext): RegExp;
11
+ }
@@ -0,0 +1,19 @@
1
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
2
+ import { REGEX_PARTS } from "../constants.js";
3
+ export class AbstractParserWithLeftBoundaryChecking extends AbstractParserWithWordBoundaryChecking {
4
+ patternLeftBoundary() {
5
+ return REGEX_PARTS.leftBoundary;
6
+ }
7
+ innerPattern(context) {
8
+ return new RegExp(this.innerPatternString(context), REGEX_PARTS.flags);
9
+ }
10
+ innerPatternHasChange(context, currentInnerPattern) {
11
+ return false;
12
+ }
13
+ }
14
+ export class AbstractParserWithLeftRightBoundaryChecking extends AbstractParserWithLeftBoundaryChecking {
15
+ innerPattern(context) {
16
+ return new RegExp(`${this.innerPatternString(context)}${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
17
+ }
18
+ }
19
+ //# sourceMappingURL=AbstractParserWithWordBoundaryChecking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractParserWithWordBoundaryChecking.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,OAAgB,sCAAuC,SAAQ,sCAAsC;IAGvG,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB,CAAC,OAAuB,EAAE,mBAA2B;QACtE,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAED,MAAM,OAAgB,2CAA4C,SAAQ,sCAAsC;IAC5G,YAAY,CAAC,OAAuB;QAChC,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5G,CAAC;CACJ"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents, ParsingResult } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class RUCasualDateParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(context: ParsingContext): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
4
+ export default class RUCasualDateParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult;
8
7
  }
@@ -1,13 +1,8 @@
1
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
2
1
  import * as references from "../../../common/casualReferences.js";
3
- import { REGEX_PARTS } from "../constants.js";
4
- const PATTERN = new RegExp(`(?:с|со)?\\s*(сегодня|вчера|завтра|послезавтра|послепослезавтра|позапозавчера|позавчера)${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
5
- export default class RUCasualDateParser extends AbstractParserWithWordBoundaryChecking {
6
- patternLeftBoundary() {
7
- return REGEX_PARTS.leftBoundary;
8
- }
9
- innerPattern(context) {
10
- return PATTERN;
2
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
3
+ export default class RUCasualDateParser extends AbstractParserWithLeftRightBoundaryChecking {
4
+ innerPatternString(context) {
5
+ return `(?:с|со)?\\s*(сегодня|вчера|завтра|послезавтра|послепослезавтра|позапозавчера|позавчера)`;
11
6
  }
12
7
  innerExtract(context, match) {
13
8
  const lowerText = match[1].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUCasualDateParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualDateParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,2FAA2F,WAAW,CAAC,aAAa,EAAE,EACtH,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sCAAsC;IAClF,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,QAAQ,SAAS,EAAE;YACf,KAAK,SAAS;gBACV,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,KAAK,OAAO;gBACR,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,KAAK,aAAa;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,kBAAkB;gBACnB,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,WAAW;gBACZ,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEzD,KAAK,eAAe;gBAChB,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
1
+ {"version":3,"file":"RUCasualDateParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualDateParser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,2CAA2C;IACvF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,0FAA0F,CAAC;IACtG,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,QAAQ,SAAS,EAAE;YACf,KAAK,SAAS;gBACV,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,KAAK,OAAO;gBACR,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,KAAK,aAAa;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,kBAAkB;gBACnB,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,WAAW;gBACZ,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEzD,KAAK,eAAe;gBAChB,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
@@ -1,7 +1,6 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
3
- export default class RUCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
4
- patternLeftBoundary(): string;
5
- innerPattern(): RegExp;
2
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
3
+ export default class RUCasualTimeParser extends AbstractParserWithLeftRightBoundaryChecking {
4
+ innerPatternString(context: ParsingContext): string;
6
5
  innerExtract(context: ParsingContext, match: RegExpMatchArray): import("../index.js").ParsingComponents;
7
6
  }
@@ -1,16 +1,10 @@
1
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
2
1
  import * as references from "../../../common/casualReferences.js";
3
2
  import { assignSimilarDate } from "../../../utils/dayjs.js";
4
3
  import dayjs from "dayjs";
5
- import { REGEX_PARTS } from "../constants.js";
6
- const PATTERN = new RegExp(`(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)` +
7
- `${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
8
- export default class RUCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
9
- patternLeftBoundary() {
10
- return REGEX_PARTS.leftBoundary;
11
- }
12
- innerPattern() {
13
- return PATTERN;
4
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
5
+ export default class RUCasualTimeParser extends AbstractParserWithLeftRightBoundaryChecking {
6
+ innerPatternString(context) {
7
+ return `(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)`;
14
8
  }
15
9
  innerExtract(context, match) {
16
10
  let targetDate = dayjs(context.refDate);
@@ -1 +1 @@
1
- {"version":3,"file":"RUCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualTimeParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,qKAAqK;IACjK,GAAG,WAAW,CAAC,aAAa,EAAE,EAClC,WAAW,CAAC,KAAK,CACpB,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sCAAsC;IAClF,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,IAAI,SAAS,KAAK,QAAQ,EAAE;YACxB,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;YACnD,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAChC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YACpC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9C,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9B;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
1
+ {"version":3,"file":"RUCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualTimeParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,2CAA2C;IACvF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,qKAAqK,CAAC;IACjL,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,IAAI,SAAS,KAAK,QAAQ,EAAE;YACxB,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;YACnD,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAChC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YACpC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9C,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9B;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingResult } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class RUMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
4
+ export default class RUMonthNameLittleEndianParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingResult;
8
7
  }
@@ -1,31 +1,26 @@
1
1
  import { findYearClosestToRef } from "../../../calculation/years.js";
2
- import { MONTH_DICTIONARY, REGEX_PARTS } from "../constants.js";
2
+ import { MONTH_DICTIONARY } from "../constants.js";
3
3
  import { YEAR_PATTERN, parseYear } from "../constants.js";
4
4
  import { ORDINAL_NUMBER_PATTERN, parseOrdinalNumberPattern } from "../constants.js";
5
5
  import { matchAnyPattern } from "../../../utils/pattern.js";
6
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
7
- const PATTERN = new RegExp(`(?:с)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
8
- `(?:` +
9
- `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
10
- `(${ORDINAL_NUMBER_PATTERN})` +
11
- `)?` +
12
- `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
13
- `(${matchAnyPattern(MONTH_DICTIONARY)})` +
14
- `(?:` +
15
- `(?:-|\\/|,?\\s{0,3})` +
16
- `(${YEAR_PATTERN}(?![^\\s]\\d))` +
17
- `)?` +
18
- `${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
6
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
19
7
  const DATE_GROUP = 1;
20
8
  const DATE_TO_GROUP = 2;
21
9
  const MONTH_NAME_GROUP = 3;
22
10
  const YEAR_GROUP = 4;
23
- export default class RUMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
24
- patternLeftBoundary() {
25
- return REGEX_PARTS.leftBoundary;
26
- }
27
- innerPattern() {
28
- return PATTERN;
11
+ export default class RUMonthNameLittleEndianParser extends AbstractParserWithLeftRightBoundaryChecking {
12
+ innerPatternString(context) {
13
+ return `(?:с)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
14
+ `(?:` +
15
+ `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
16
+ `(${ORDINAL_NUMBER_PATTERN})` +
17
+ `)?` +
18
+ `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
19
+ `(${matchAnyPattern(MONTH_DICTIONARY)})` +
20
+ `(?:` +
21
+ `(?:-|\\/|,?\\s{0,3})` +
22
+ `(${YEAR_PATTERN}(?![^\\s]\\d))` +
23
+ `)?`;
29
24
  }
30
25
  innerExtract(context, match) {
31
26
  const result = context.createParsingResult(match.index, match[0]);
@@ -1 +1 @@
1
- {"version":3,"file":"RUMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAGhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,cAAc,sBAAsB,GAAG;IACnC,KAAK;IACD,gCAAgC;IAChC,IAAI,sBAAsB,GAAG;IACjC,IAAI;IACJ,mCAAmC;IACnC,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;IACxC,KAAK;IACD,sBAAsB;IACtB,IAAI,YAAY,gBAAgB;IACpC,IAAI;IACR,GAAG,WAAW,CAAC,aAAa,EAAE,EAC9B,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,sCAAsC;IAC7F,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,EAAE,EAAE;YAEV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAEhE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"RUMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,2CAA2C;IAClG,kBAAkB,CAAC,OAAuB;QAEtC,OAAO,cAAc,sBAAsB,GAAG;YAC1C,KAAK;YACD,gCAAgC;YAChC,IAAI,sBAAsB,GAAG;YACjC,IAAI;YACA,mCAAmC;YACnC,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;YAC5C,KAAK;YACD,sBAAsB;YACtB,IAAI,YAAY,gBAAgB;YACpC,IAAI,CAAC;IACb,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,EAAE,EAAE;YAEV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAEhE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -1,7 +1,6 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
3
- export default class RUMonthNameParser extends AbstractParserWithWordBoundaryChecking {
4
- patternLeftBoundary(): string;
5
- innerPattern(): RegExp;
2
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
3
+ export default class RUMonthNameParser extends AbstractParserWithLeftBoundaryChecking {
4
+ innerPatternString(context: ParsingContext): string;
6
5
  innerExtract(context: ParsingContext, match: RegExpMatchArray): import("../index.js").ParsingResult;
7
6
  }
@@ -1,23 +1,19 @@
1
- import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY, REGEX_PARTS } from "../constants.js";
1
+ import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY } from "../constants.js";
2
2
  import { findYearClosestToRef } from "../../../calculation/years.js";
3
3
  import { matchAnyPattern } from "../../../utils/pattern.js";
4
4
  import { YEAR_PATTERN, parseYear } from "../constants.js";
5
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
6
- const PATTERN = new RegExp(`((?:в)\\s*)?` +
7
- `(${matchAnyPattern(MONTH_DICTIONARY)})` +
8
- `\\s*` +
9
- `(?:` +
10
- `[,-]?\\s*(${YEAR_PATTERN})?` +
11
- `)?` +
12
- `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`, REGEX_PARTS.flags);
5
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
13
6
  const MONTH_NAME_GROUP = 2;
14
7
  const YEAR_GROUP = 3;
15
- export default class RUMonthNameParser extends AbstractParserWithWordBoundaryChecking {
16
- patternLeftBoundary() {
17
- return REGEX_PARTS.leftBoundary;
18
- }
19
- innerPattern() {
20
- return PATTERN;
8
+ export default class RUMonthNameParser extends AbstractParserWithLeftBoundaryChecking {
9
+ innerPatternString(context) {
10
+ return (`((?:в)\\s*)?` +
11
+ `(${matchAnyPattern(MONTH_DICTIONARY)})` +
12
+ `\\s*` +
13
+ `(?:` +
14
+ `[,-]?\\s*(${YEAR_PATTERN})?` +
15
+ `)?` +
16
+ `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`);
21
17
  }
22
18
  innerExtract(context, match) {
23
19
  const monthName = match[MONTH_NAME_GROUP].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUMonthNameParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,cAAc;IACV,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;IACxC,MAAM;IACN,KAAK;IACL,aAAa,YAAY,IAAI;IAC7B,IAAI;IACJ,kCAAkC,EACtC,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAQrB,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,sCAAsC;IACjF,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAGxD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC;SACf;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"RUMonthNameParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAElG,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAQrB,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,sCAAsC;IACjF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,cAAc;YACd,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;YACxC,MAAM;YACN,KAAK;YACL,aAAa,YAAY,IAAI;YAC7B,IAAI;YACJ,kCAAkC,CACrC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAGxD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC;SACf;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class RURelativeDateFormatParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
4
+ export default class RURelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -1,17 +1,13 @@
1
- import { REGEX_PARTS, TIME_UNIT_DICTIONARY } from "../constants.js";
1
+ import { TIME_UNIT_DICTIONARY } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import dayjs from "dayjs";
4
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
5
4
  import { matchAnyPattern } from "../../../utils/pattern.js";
6
- const PATTERN = new RegExp(`(в прошлом|на прошлой|на следующей|в следующем|на этой|в этом)\\s*(${matchAnyPattern(TIME_UNIT_DICTIONARY)})(?=\\s*)${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
5
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
7
6
  const MODIFIER_WORD_GROUP = 1;
8
7
  const RELATIVE_WORD_GROUP = 2;
9
- export default class RURelativeDateFormatParser extends AbstractParserWithWordBoundaryChecking {
10
- patternLeftBoundary() {
11
- return REGEX_PARTS.leftBoundary;
12
- }
13
- innerPattern() {
14
- return PATTERN;
8
+ export default class RURelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
9
+ innerPatternString(context) {
10
+ return `(в прошлом|на прошлой|на следующей|в следующем|на этой|в этом)\\s*(${matchAnyPattern(TIME_UNIT_DICTIONARY)})`;
15
11
  }
16
12
  innerExtract(context, match) {
17
13
  const modifier = match[MODIFIER_WORD_GROUP].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RURelativeDateFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RURelativeDateFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,sEAAsE,eAAe,CACjF,oBAAoB,CACvB,YAAY,WAAW,CAAC,aAAa,EAAE,EACxC,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,sCAAsC;IAC1F,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,QAAQ,IAAI,cAAc,IAAI,QAAQ,IAAI,aAAa,EAAE;YACzD,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SACtF;QAED,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,EAAE;YACrD,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SACtF;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACrD,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAG5C,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACzC;aAGI,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAChD;aAGI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YAExC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1C;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"RURelativeDateFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RURelativeDateFormatParser.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class RUTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
4
+ export default class RUTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -1,14 +1,10 @@
1
- import { parseTimeUnits, REGEX_PARTS, TIME_UNITS_PATTERN } from "../constants.js";
1
+ import { parseTimeUnits, TIME_UNITS_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
3
  import { reverseTimeUnits } from "../../../utils/timeunits.js";
5
- const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}назад(?=(?:\\W|$))`, REGEX_PARTS.flags);
6
- export default class RUTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
7
- patternLeftBoundary() {
8
- return REGEX_PARTS.leftBoundary;
9
- }
10
- innerPattern() {
11
- return PATTERN;
4
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
5
+ export default class RUTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
6
+ innerPatternString(context) {
7
+ return `(${TIME_UNITS_PATTERN})\\s{0,5}назад(?=(?:\\W|$))`;
12
8
  }
13
9
  innerExtract(context, match) {
14
10
  const timeUnits = parseTimeUnits(match[1]);
@@ -1 +1 @@
1
- {"version":3,"file":"RUTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,kBAAkB,6BAA6B,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAEnG,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,sCAAsC;IACzF,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;CACJ"}
1
+ {"version":3,"file":"RUTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAElG,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,sCAAsC;IACzF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,IAAI,kBAAkB,6BAA6B,CAAC;IAC/D,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;CACJ"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
4
+ export default class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -1,14 +1,10 @@
1
- import { TIME_UNITS_PATTERN, parseTimeUnits, REGEX_PARTS } from "../constants.js";
1
+ import { TIME_UNITS_PATTERN, parseTimeUnits } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
3
  import { reverseTimeUnits } from "../../../utils/timeunits.js";
5
- const PATTERN = new RegExp(`(эти|последние|прошлые|следующие|после|спустя|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
6
- export default class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
7
- patternLeftBoundary() {
8
- return REGEX_PARTS.leftBoundary;
9
- }
10
- innerPattern() {
11
- return PATTERN;
4
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
5
+ export default class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
6
+ innerPatternString(context) {
7
+ return `(эти|последние|прошлые|следующие|после|спустя|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})`;
12
8
  }
13
9
  innerExtract(context, match) {
14
10
  const prefix = match[1].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,kEAAkE,kBAAkB,IAAI,WAAW,CAAC,aAAa,EAAE,EACnH,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,sCAAsC;IACpG,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,MAAM,EAAE;YACZ,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS,CAAC;YACf,KAAK,GAAG;gBACJ,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;SACb;QAED,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"RUTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAe,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,2CAA2C;IACzG,kBAAkB,CAAC,OAAuB;QACtC,OAAO,kEAAkE,kBAAkB,GAAG,CAAC;IACnG,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,MAAM,EAAE;YACZ,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS,CAAC;YACf,KAAK,GAAG;gBACJ,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;SACb;QAED,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -2,6 +2,9 @@ import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  export default class RUTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
5
+ private readonly patternWithPrefix;
6
+ private readonly patternWithoutPrefix;
7
+ constructor();
5
8
  patternLeftBoundary(): string;
6
9
  innerPattern(context: ParsingContext): RegExp;
7
10
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
@@ -2,14 +2,17 @@ import { TIME_UNITS_PATTERN, parseTimeUnits, REGEX_PARTS } from "../constants.js
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  const PATTERN = `(?:(?:около|примерно)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`;
5
- const PATTERN_WITH_PREFIX = new RegExp(`(?:в течение|в течении)\\s*${PATTERN}`, REGEX_PARTS.flags);
6
- const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i");
7
5
  export default class RUTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
6
+ constructor() {
7
+ super();
8
+ this.patternWithPrefix = new RegExp(`(?:в течение|в течении)\\s*${PATTERN}`, REGEX_PARTS.flags);
9
+ this.patternWithoutPrefix = new RegExp(PATTERN, REGEX_PARTS.flags);
10
+ }
8
11
  patternLeftBoundary() {
9
12
  return REGEX_PARTS.leftBoundary;
10
13
  }
11
14
  innerPattern(context) {
12
- return context.option.forwardDate ? PATTERN_WITHOUT_PREFIX : PATTERN_WITH_PREFIX;
15
+ return context.option.forwardDate ? this.patternWithoutPrefix : this.patternWithPrefix;
13
16
  }
14
17
  innerExtract(context, match) {
15
18
  const timeUnits = parseTimeUnits(match[1]);
@@ -1 +1 @@
1
- {"version":3,"file":"RUTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,yCAAyC,kBAAkB,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;AAC3G,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,8BAA8B,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAEnG,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IAC5F,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrF,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"RUTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,yCAAyC,kBAAkB,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;AAE3G,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IAI5F;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,GAAG,IAAI,MAAM,CAAC,8BAA8B,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAChG,IAAI,CAAC,oBAAoB,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC3F,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class RUWeekdayParser extends AbstractParserWithWordBoundaryChecking {
5
- innerPattern(): RegExp;
6
- patternLeftBoundary(): string;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
4
+ export default class RUWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -1,23 +1,18 @@
1
- import { REGEX_PARTS, WEEKDAY_DICTIONARY } from "../constants.js";
1
+ import { WEEKDAY_DICTIONARY } from "../constants.js";
2
2
  import { matchAnyPattern } from "../../../utils/pattern.js";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
3
  import { createParsingComponentsAtWeekday } from "../../../common/calculation/weekdays.js";
5
- const PATTERN = new RegExp(`(?:(?:,|\\(|()\\s*)?` +
6
- `(?:в\\s*?)?` +
7
- `(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?` +
8
- `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
9
- `(?:\\s*(?:,|\\)|)))?` +
10
- `(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?` +
11
- `${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
4
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
12
5
  const PREFIX_GROUP = 1;
13
6
  const WEEKDAY_GROUP = 2;
14
7
  const POSTFIX_GROUP = 3;
15
- export default class RUWeekdayParser extends AbstractParserWithWordBoundaryChecking {
16
- innerPattern() {
17
- return PATTERN;
18
- }
19
- patternLeftBoundary() {
20
- return REGEX_PARTS.leftBoundary;
8
+ export default class RUWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
9
+ innerPatternString(context) {
10
+ return (`(?:(?:,|\\(|()\\s*)?` +
11
+ `(?:в\\s*?)?` +
12
+ `(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?` +
13
+ `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
14
+ `(?:\\s*(?:,|\\)|)))?` +
15
+ `(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?`);
21
16
  }
22
17
  innerExtract(context, match) {
23
18
  const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUWeekdayParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAExF,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,sBAAsB;IAClB,aAAa;IACb,oEAAoE;IACpE,IAAI,eAAe,CAAC,kBAAkB,CAAC,GAAG;IAC1C,sBAAsB;IACtB,mDAAmD;IACnD,GAAG,WAAW,CAAC,aAAa,EAAE,EAClC,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,sCAAsC;IAC/E,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,EAAE;YACrF,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IACH,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,YAAY,EAC9B;YACE,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;YAClF,QAAQ,GAAG,MAAM,CAAC;SACrB;QAED,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
1
+ {"version":3,"file":"RUWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUWeekdayParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,2CAA2C;IACpF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,sBAAsB;YACtB,aAAa;YACb,oEAAoE;YACpE,IAAI,eAAe,CAAC,kBAAkB,CAAC,GAAG;YAC1C,sBAAsB;YACtB,mDAAmD,CACtD,CAAC;IACN,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,EAAE;YACrF,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IACH,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,YAAY,EAC9B;YACE,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;YAClF,QAAQ,GAAG,MAAM,CAAC;SACrB;QAED,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "preset": "ts-jest"
16
16
  },
17
17
  "license": "MIT",
18
- "version": "2.7.0",
18
+ "version": "2.7.1",
19
19
  "directories": {
20
20
  "source": "./src",
21
21
  "test": "./test"
@@ -3,7 +3,7 @@ import { ParsingComponents, ParsingResult } from "../../results";
3
3
  import { Component } from "../../types";
4
4
 
5
5
  /**
6
- *
6
+ * A parser that checks for word boundary and applying the inner pattern and extraction.
7
7
  */
8
8
  export abstract class AbstractParserWithWordBoundaryChecking implements Parser {
9
9
  abstract innerPattern(context: ParsingContext): RegExp;
@@ -12,21 +12,29 @@ export abstract class AbstractParserWithWordBoundaryChecking implements Parser {
12
12
  match: RegExpMatchArray
13
13
  ): ParsingComponents | ParsingResult | { [c in Component]?: number } | null;
14
14
 
15
- private cachedInnerPattern?: RegExp = null;
16
- private cachedPattern?: RegExp = null;
15
+ // Overrides this method if there is more efficient way to check for inner pattern change.
16
+ innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean {
17
+ return this.innerPattern(context) !== currentInnerPattern;
18
+ }
17
19
 
18
20
  patternLeftBoundary(): string {
19
21
  return `(\\W|^)`;
20
22
  }
21
23
 
24
+ private cachedInnerPattern?: RegExp = null;
25
+ private cachedPattern?: RegExp = null;
26
+
22
27
  pattern(context: ParsingContext): RegExp {
23
- const innerPattern = this.innerPattern(context);
24
- if (innerPattern == this.cachedInnerPattern) {
25
- return this.cachedPattern;
28
+ if (this.cachedInnerPattern) {
29
+ if (!this.innerPatternHasChange(context, this.cachedInnerPattern)) {
30
+ return this.cachedPattern;
31
+ }
26
32
  }
27
-
28
- this.cachedPattern = new RegExp(`${this.patternLeftBoundary()}${innerPattern.source}`, innerPattern.flags);
29
- this.cachedInnerPattern = innerPattern;
33
+ this.cachedInnerPattern = this.innerPattern(context);
34
+ this.cachedPattern = new RegExp(
35
+ `${this.patternLeftBoundary()}${this.cachedInnerPattern.source}`,
36
+ this.cachedInnerPattern.flags
37
+ );
30
38
  return this.cachedPattern;
31
39
  }
32
40
 
@@ -0,0 +1,25 @@
1
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
2
+ import { REGEX_PARTS } from "../constants";
3
+ import { ParsingContext } from "../../../chrono";
4
+
5
+ export abstract class AbstractParserWithLeftBoundaryChecking extends AbstractParserWithWordBoundaryChecking {
6
+ abstract innerPatternString(context: ParsingContext): string;
7
+
8
+ patternLeftBoundary(): string {
9
+ return REGEX_PARTS.leftBoundary;
10
+ }
11
+
12
+ innerPattern(context: ParsingContext): RegExp {
13
+ return new RegExp(this.innerPatternString(context), REGEX_PARTS.flags);
14
+ }
15
+
16
+ innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean {
17
+ return false;
18
+ }
19
+ }
20
+
21
+ export abstract class AbstractParserWithLeftRightBoundaryChecking extends AbstractParserWithLeftBoundaryChecking {
22
+ innerPattern(context: ParsingContext): RegExp {
23
+ return new RegExp(`${this.innerPatternString(context)}${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
24
+ }
25
+ }