UNPKG

1.15 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const constants_1 = require("../constants");
4const results_1 = require("../../../results");
5const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
6const timeunits_1 = require("../../../utils/timeunits");
7const PATTERN = new RegExp(`(deze|vorige|afgelopen|komende|over|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
8class NLTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
9 innerPattern() {
10 return PATTERN;
11 }
12 innerExtract(context, match) {
13 const prefix = match[1].toLowerCase();
14 let timeUnits = constants_1.parseTimeUnits(match[2]);
15 switch (prefix) {
16 case "vorige":
17 case "afgelopen":
18 case "-":
19 timeUnits = timeunits_1.reverseTimeUnits(timeUnits);
20 break;
21 }
22 return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
23 }
24}
25exports.default = NLTimeUnitCasualRelativeFormatParser;