Skip to content

Scenario: Explore regex matching #12

Open
@LinqLover

Description

@LinqLover
  • Roles: System learner, system expert
  • Goals:
    • Retrace the matching process of a string against a regular expression
    • Understand the reason for backtracking in the matching process
    • Program in the debugger to fix a bug/add a new feature and explore the updated behavior
  • Examples:
    • Survey all sends to/invocations of #matchAgainst: in the matcher
    • Browse invocations of RxMatcher >> #matchAgainstMarkerAt:nextLink:
    • In RxMatcher >> #matchAgainstLookbehind:positive:nextLink:, remove a particular #position: send
  • Problems:
    1. Once you missed an important detail, going back is impossible without restoring the prior state of the matcher's source stream manually.
    2. At one time, you can only see the current route of links, excluding all past/future routes before or after backtracking or checking lookaround links.
    3. After editing a method that has already been executed, the debugging session needs to be restarted and manually navigated to the previous position.
  • Possible solutions:
    1. step into details later in the context of the original event state
    2. :
      • display the entire trace at once
      • filter stack frames by selector (e.g., #matchAgainst:)
      • filter stack frames by return value (e.g., false)
    3. different accept options in the debugger:
      • reevaluate trace and select the equivalent stack frame
      • reevaluate from the current stack frame
      • open updated trace in a new window

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions