Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add regular language implementation #427

Merged
merged 1 commit into from
Dec 15, 2022
Merged

Add regular language implementation #427

merged 1 commit into from
Dec 15, 2022

Conversation

satabin
Copy link
Member

@satabin satabin commented Dec 14, 2022

Based on regular expression derivation with character classes, generalized to predicates, this allows to have a generic direct DFA construction algorithm for any regular language.

This allows to share implementation between several query languages (XPath and JsonPath might also be rewritten to use this representation instead of computing the NFA first).

Implementation is based on the paper Regular-expression derivatives reexamined

@satabin satabin added enhancement New feature or request finite state labels Dec 14, 2022
@satabin satabin added this to the 1.7.0 milestone Dec 14, 2022
@satabin satabin requested a review from a team as a code owner December 14, 2022 21:49
Based on regular expression derivation with character classes,
generalized to predicates, this allows to have a generic direct DFA
construction algorithm for any regular language.

This allows to share implementation between several query languages
(XPath and JsonPath might also be rewritten to use this representation
instead of computing the NFA first).
@satabin satabin merged commit 1f4b285 into main Dec 15, 2022
@satabin satabin deleted the finite-state/regular branch December 15, 2022 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request finite state
Projects
Development

Successfully merging this pull request may close these issues.

2 participants