summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2025-07-17 07:41:00 -0300
committerEuAndreh <eu@euandre.org>2025-07-17 07:41:00 -0300
commit60ff061ec308a27cfa8cc031b91af83e26c921b4 (patch)
tree59a5407fc8f3b9b8baf1a4e99d42840a9c3da6b4
parentDo away with the "nextID" attribute (diff)
downloadpaca-60ff061ec308a27cfa8cc031b91af83e26c921b4.tar.gz
paca-60ff061ec308a27cfa8cc031b91af83e26c921b4.tar.xz
src/paca.mjs: Rename {start,end}ID => {start,end}
-rw-r--r--src/paca.mjs86
1 files changed, 42 insertions, 44 deletions
diff --git a/src/paca.mjs b/src/paca.mjs
index 12eb4b9..4a85067 100644
--- a/src/paca.mjs
+++ b/src/paca.mjs
@@ -478,17 +478,17 @@ const toPostfix = tokens => {
};
const emptyNFA = () => {
- const startID = 1;
- const endID = 2;
+ const start = 1;
+ const end = 2;
return {
- start: startID,
- end: endID,
+ start,
+ end,
nodes: {
- [startID]: {
- direct: [ endID ],
+ [start]: {
+ direct: [end],
transitions: {},
},
- [endID]: {
+ [end]: {
direct: [],
transitions: {},
},
@@ -497,19 +497,19 @@ const emptyNFA = () => {
};
const literal = (edge, id) => {
- const startID = id + 0;
- const endID = id + 1;
+ const start = id + 0;
+ const end = id + 1;
return {
- start: startID,
- end: endID,
+ start,
+ end,
nodes: {
- [startID]: {
+ [start]: {
direct: [],
transitions: {
- [edge]: endID,
+ [edge]: end,
},
},
- [endID]: {
+ [end]: {
direct: [],
transitions: {},
},
@@ -531,27 +531,27 @@ const concat = (lhs, rhs) => ({
});
const union = (lhs, rhs) => {
- const startID = max(lhs.end, rhs.end) + 1;
- const endID = startID + 1;
+ const start = max(lhs.end, rhs.end) + 1;
+ const end = start + 1;
return {
- start: startID,
- end: endID,
+ start,
+ end,
nodes: {
...lhs.nodes,
...rhs.nodes,
[lhs.end]: {
...lhs.nodes[lhs.end],
- direct: lhs.nodes[lhs.end].direct.concat(endID),
+ direct: lhs.nodes[lhs.end].direct.concat(end),
},
[rhs.end]: {
...rhs.nodes[rhs.end],
- direct: lhs.nodes[lhs.end].direct.concat(endID),
+ direct: lhs.nodes[lhs.end].direct.concat(end),
},
- [startID]: {
+ [start]: {
direct: [lhs.start, rhs.start],
transitions: {},
},
- [endID]: {
+ [end]: {
direct: [],
transitions: {},
},
@@ -560,24 +560,22 @@ const union = (lhs, rhs) => {
};
const zeroOrMore = nfa => {
- const startID = nfa.end + 1;
- const endID = nfa.end + 2;
+ const start = nfa.end + 1;
+ const end = nfa.end + 2;
return {
- start: startID,
- end: endID,
+ start,
+ end,
nodes: {
...nfa.nodes,
[nfa.end]: {
...nfa.nodes[nfa.end],
- direct: nfa.nodes[nfa.end].direct.concat(
- startID,
- ),
+ direct: nfa.nodes[nfa.end].direct.concat(start),
},
- [startID]: {
- direct: [ nfa.start, endID ],
+ [start]: {
+ direct: [nfa.start, end],
transitions: {},
},
- [endID]: {
+ [end]: {
direct: [],
transitions: {},
},
@@ -589,22 +587,22 @@ const oneOrMore = nfa =>
concat(nfa, zeroOrMore(nfa));
const zeroOrOne = nfa => {
- const startID = nfa.end + 1;
- const endID = nfa.end + 2;
+ const start = nfa.end + 1;
+ const end = nfa.end + 2;
return {
- start: startID,
- end: endID,
+ start,
+ end,
nodes: {
...nfa.nodes,
[nfa.end]: {
...nfa.nodes[nfa.end],
- direct: nfa.nodes[nfa.end].direct.concat(endID),
+ direct: nfa.nodes[nfa.end].direct.concat(end),
},
- [startID]: {
- direct: [ nfa.start, endID ],
+ [start]: {
+ direct: [nfa.start, end],
transitions: {},
},
- [endID]: {
+ [end]: {
direct: [],
transitions: {},
},
@@ -637,8 +635,8 @@ const inRange = (ranges, char) => {
};
const characterClass = ({ set, caret }, id) => {
- const start = id + 0;
- const end = id + 1;
+ const start = id + 0;
+ const end = id + 1;
const { string, object } = Object.groupBy(set, x => typeof x);
const ranges = Object.fromEntries(
compressCharacterRanges((object || []).map(
@@ -673,8 +671,8 @@ const characterClass = ({ set, caret }, id) => {
};
const wildcard = (_edge, id) => {
- const start = id + 0;
- const end = id + 1;
+ const start = id + 0;
+ const end = id + 1;
return {
start,
end,