21 lines
1.6 KiB
JavaScript
21 lines
1.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.matchOperator = void 0;
|
|
const character_1 = require("../util/character");
|
|
function matchOperator(str, begin, trie, end = str.length) {
|
|
let node = trie;
|
|
let i = begin;
|
|
let info;
|
|
while (node[str[i]] && i < end) {
|
|
node = node[str[i++]];
|
|
if (node['end'])
|
|
info = node;
|
|
}
|
|
if (!info)
|
|
return -1;
|
|
if (info['needBoundary'] && (character_1.TYPES[str.charCodeAt(i)] & character_1.IDENTIFIER))
|
|
return -1;
|
|
return i;
|
|
}
|
|
exports.matchOperator = matchOperator;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtb3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlxdWlkanMvcGFyc2VyL21hdGNoLW9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFxRDtBQUdyRCxTQUFnQixhQUFhLENBQUUsR0FBVyxFQUFFLEtBQWEsRUFBRSxJQUFVLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNO0lBQ3JGLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNmLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUNiLElBQUksSUFBSSxDQUFBO0lBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRTtRQUM5QixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQTtLQUM3QjtJQUNELElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLHNCQUFVLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQztBQVhELHNDQVdDIn0=
|