| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
position in runTests
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* src/paca.mjs
(escapingStateStep): Use `shouldConcat()` instead of only checking if
we're on the last char. We abuse it a bit by passing `null` as the
first argument, since it is being escaped.
(nonConcatOperators, shouldConcat): Hoist the definition of both above
`escapingStateStep()`, so that they're defined before being used.
* tests/paca.mjs (test_shouldConcat): Add test case where `null` is
explicitly passed as the first argument.
|
| |
|
|
|
|
|
|
|
| |
* src/paca.mjs (classStateStep): New function equivalent to
`rangeStateStep()` for character class expressions. For now it knowns
how to handle escaping ([abc\-_]), simple ranges ([a-z]), negation
([^abc]) and the hyphen literal as the first char ([-a-z_]).
* tests.paca.mjs (test_classStateStep): New test entry has a test case
each scenario described above.
|
| | |
|
| |
|
|
|
| |
* tests/paca.mjs (test_rangeStateStep): Add first test case, for when we
find a closing "}" when no comma was seen.
|
| |
|
|
|
|
|
|
|
| |
* src/paca.mjs (numFromDigits): Move it to before the *StateStep
functions, as it is now used in `rangeStateStep()` function. So
instead of letting it be defined afters its usage, move it up.
* tests/paca.mjs: Do the same hoisting to the import of the
`numFromDigits` name, to the definition of `test_numFromDigits` and
its inclusion in the order of the call to `runTests()`.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
* src/paca.mjs (TRANSITION_FNS): Add trailing underscore to ignored
arguments, even though it breaks the name of the `_state` and
`context` destructuring arguments.
* tests/paca.mjs (test_TRANSITION_FNS): Add new test function with a
single case for each transition character. Since these transitions
are unconditional and contain no logic, this single sample test is
enough to cover for all of its behaviour.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|