summaryrefslogtreecommitdiff
path: root/src/paca.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'src/paca.mjs')
-rw-r--r--src/paca.mjs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/paca.mjs b/src/paca.mjs
index 42c2f88..5d11b05 100644
--- a/src/paca.mjs
+++ b/src/paca.mjs
@@ -306,14 +306,16 @@ const ANCHOR_FNS = {
};
const anchors = new Set(Object.keys(ANCHOR_FNS));
-
const isAnchor = char =>
anchors.has(char);
-const stateTransitionOperators = new Set(Object.keys(TRANSITION_FNS));
+const transitionChars = new Set(Object.keys(TRANSITION_FNS));
+const isTransition = char =>
+ transitionChars.has(char);
+const operatorChars = new Set([...nonConcatOperators, "(", "."]);
const isOperator = char =>
- nonConcatOperators.has(char) || char == "(";
+ operatorChars.has(char);
const tokenizeRegexStep = chars => ({ out, state, context }, char, index) => {
const next = chars[index + 1];
@@ -327,7 +329,7 @@ const tokenizeRegexStep = chars => ({ out, state, context }, char, index) => {
);
}
- if (stateTransitionOperators.has(char)) {
+ if (isTransition(char)) {
return TRANSITION_FNS[char](
{ out, state, context },
char,
@@ -349,7 +351,9 @@ const tokenizeRegexStep = chars => ({ out, state, context }, char, index) => {
return {
out: out.concat(
op,
- shouldConcat(char, next) ? [{ operator: "concat" }] : [],
+ shouldConcat(char, next)
+ ? [{ operator: "concat" }]
+ : [],
),
state,
context,
@@ -385,6 +389,7 @@ const PRECEDENCE = {
"concat": 2,
"|": 1,
"class": 1,
+ ".": 1,
};
const shouldPush = (stack, token) =>