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

feat: Add a unique state id to each NFA state. #90

Open
wants to merge 626 commits into
base: main
Choose a base branch
from

Conversation

SharafMohamed
Copy link
Contributor

@SharafMohamed SharafMohamed commented Feb 3, 2025

References

git fetch upstream pull/89/head:pr-89
git fetch upstream pull/90/head:pr-90
git diff pr-89 pr-90

Description

  • Add a state id to each NFA state.
  • This is useful for debugging as this allows for tracking a deterministic state-id instead of a non-deterministic state pointer.
  • This is also useful for making the determinization deterministic in the future TDFA PRs.

Validation performed

  • Existing tests pass.

Summary by CodeRabbit

  • Chores

    • Enhanced the build process with updated operating system specifications and improved logging for test failures.
  • Refactor

    • Overhauled the underlying pattern matching and state transition components, resulting in more robust error handling and streamlined serialization.
  • New Features

    • Introduced a unique identifier generator and refined capture management to deliver more reliable regex and lexer performance.
  • Tests

    • Expanded the test suite to validate improvements in pattern matching, lexer functionality, and register management.
    • Added new tests for the Capture class and enhanced tests for the DFA and lexer functionalities.
    • Updated tests to reflect changes in the NFA serialization logic and improved handling of spontaneous transitions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant