summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/parser.js
blob: ea9151f27a776f298d7cfa16e0dadc6070c93abe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

function Parser(config) {

    config = config || {};
    var strictMode = config.strict;

    this.isStrictMode = function() { return (strictMode == true) };

    this.pattern = function() { return /./i; }

    this.extract = function(text, ref, match, opt){ return null; }

    this.execute = function(text, ref, opt) {

        var results = [];
        var regex = this.pattern();

        var remainingText = text;
        var match = regex.exec(remainingText);

        while (match) {

            // Calculate match index on the full text;
            match.index += text.length - remainingText.length;

            var result = this.extract(text, ref, match, opt);
            if (result) {

                // If success, start from the end of the result
                remainingText = text.substring(result.index + result.text.length);

                if (!this.isStrictMode() || result.hasPossibleDates()) {
                    results.push(result);
                }

            } else {
                // If fail, move on by 1
                remainingText = text.substring(match.index + 1);
            }

            match = regex.exec(remainingText);
        }

        if (this.refiners) {
            this.refiners.forEach(function () {
                results = refiner.refine(results, text, options);
            });
        }

        return results;
    }
}

exports.Parser = Parser;

exports.ENISOFormatParser = require('./en/ENISOFormatParser').Parser;
exports.ENDeadlineFormatParser = require('./en/ENDeadlineFormatParser').Parser;
exports.ENRelativeDateFormatParser = require('./en/ENRelativeDateFormatParser').Parser;
exports.ENMonthNameLittleEndianParser = require('./en/ENMonthNameLittleEndianParser').Parser;
exports.ENMonthNameMiddleEndianParser = require('./en/ENMonthNameMiddleEndianParser').Parser;
exports.ENMonthNameParser = require('./en/ENMonthNameParser').Parser;
exports.ENSlashDateFormatParser = require('./en/ENSlashDateFormatParser').Parser;
exports.ENSlashDateFormatStartWithYearParser = require('./en/ENSlashDateFormatStartWithYearParser').Parser;
exports.ENSlashMonthFormatParser = require('./en/ENSlashMonthFormatParser').Parser;
exports.ENTimeAgoFormatParser = require('./en/ENTimeAgoFormatParser').Parser;
exports.ENTimeExpressionParser = require('./en/ENTimeExpressionParser').Parser;
exports.ENTimeLaterFormatParser = require('./en/ENTimeLaterFormatParser').Parser;
exports.ENWeekdayParser = require('./en/ENWeekdayParser').Parser;
exports.ENCasualDateParser = require('./en/ENCasualDateParser').Parser;
exports.ENCasualTimeParser = require('./en/ENCasualTimeParser').Parser;

exports.JPStandardParser = require('./ja/JPStandardParser').Parser;
exports.JPCasualDateParser = require('./ja/JPCasualDateParser').Parser;

exports.ESCasualDateParser = require('./es/ESCasualDateParser').Parser;
exports.ESDeadlineFormatParser = require('./es/ESDeadlineFormatParser').Parser;
exports.ESTimeAgoFormatParser = require('./es/ESTimeAgoFormatParser').Parser;
exports.ESTimeExpressionParser = require('./es/ESTimeExpressionParser').Parser;
exports.ESWeekdayParser = require('./es/ESWeekdayParser').Parser;
exports.ESMonthNameLittleEndianParser = require('./es/ESMonthNameLittleEndianParser').Parser;
exports.ESSlashDateFormatParser = require('./es/ESSlashDateFormatParser').Parser;

exports.FRCasualDateParser = require('./fr/FRCasualDateParser').Parser;
exports.FRDeadlineFormatParser = require('./fr/FRDeadlineFormatParser').Parser;
exports.FRMonthNameLittleEndianParser = require('./fr/FRMonthNameLittleEndianParser').Parser;
exports.FRSlashDateFormatParser = require('./fr/FRSlashDateFormatParser').Parser;
exports.FRTimeAgoFormatParser = require('./fr/FRTimeAgoFormatParser').Parser;
exports.FRTimeExpressionParser = require('./fr/FRTimeExpressionParser').Parser;
exports.FRWeekdayParser = require('./fr/FRWeekdayParser').Parser;
exports.FRRelativeDateFormatParser = require('./fr/FRRelativeDateFormatParser').Parser;

exports.ZHHantDateParser = require('./zh-Hant/ZHHantDateParser').Parser;
exports.ZHHantWeekdayParser = require('./zh-Hant/ZHHantWeekdayParser').Parser;
exports.ZHHantTimeExpressionParser = require('./zh-Hant/ZHHantTimeExpressionParser').Parser;
exports.ZHHantCasualDateParser = require('./zh-Hant/ZHHantCasualDateParser').Parser;
exports.ZHHantDeadlineFormatParser = require('./zh-Hant/ZHHantDeadlineFormatParser').Parser;

exports.DEDeadlineFormatParser = require('./de/DEDeadlineFormatParser').Parser;
exports.DEMonthNameLittleEndianParser = require('./de/DEMonthNameLittleEndianParser').Parser;
exports.DEMonthNameParser = require('./de/DEMonthNameParser').Parser;
exports.DESlashDateFormatParser = require('./de/DESlashDateFormatParser').Parser;
exports.DETimeAgoFormatParser = require('./de/DETimeAgoFormatParser').Parser;
exports.DETimeExpressionParser = require('./de/DETimeExpressionParser').Parser;
exports.DEWeekdayParser = require('./de/DEWeekdayParser').Parser;
exports.DECasualDateParser = require('./de/DECasualDateParser').Parser;