diff options
| author | EuAndreh <eu@euandre.org> | 2025-07-13 20:03:19 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2025-07-13 20:03:19 -0300 |
| commit | c9e5966a7e872692d2e209d69b6d9db4d24c694e (patch) | |
| tree | 30e46b8a75c022e2695204b742f6ba636beb1729 /tests/paca.mjs | |
| parent | Add simple test for TRANSITION_FNS (diff) | |
| download | paca-c9e5966a7e872692d2e209d69b6d9db4d24c694e.tar.gz paca-c9e5966a7e872692d2e209d69b6d9db4d24c694e.tar.xz | |
Add "[" to the possible characters of TRANSITION_FNS.
Introducing "[" now we will start to write the code to parse the
character class expressions, i.e. [a-z0-9]. The `context` key will
contain a `set` with all the literal characters that were found, and all
the ranges too. For parsing the ranges, a `range` key equivalent to the
one for the {m,n} range is used. Despite the superficial syntax being
simmilar, its logic, semantic and implementation will be different.
* src/paca.mjs (TRANSITION_FNS) <"[">: Add new transition function for
handling the start of a character class expression.
* tests/paca.mjs (TRANSITION_FNS): Add a singular test entry, that
exercises the conditionless body of the function.
Diffstat (limited to '')
| -rw-r--r-- | tests/paca.mjs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/paca.mjs b/tests/paca.mjs index b259968..a7cd929 100644 --- a/tests/paca.mjs +++ b/tests/paca.mjs @@ -73,6 +73,24 @@ const test_TRANSITION_FNS = t => { }, ); }); + + t.testing("\"[\" only depends on `out`", () => { + t.assertEq( + TRANSITION_FNS["["]({ out: 123 }, null, null, null), + { + out: 123, + state: "class", + context: { + set: [], + range: { + from: [], + to: [], + where: "from", + }, + }, + }, + ); + }); }; const test_shouldConcat = t => { |
