|
|
|
@ -18,6 +18,7 @@ const (
|
|
|
|
|
NLA // Negative lookahead
|
|
|
|
|
PLB // Positive lookbehind
|
|
|
|
|
NLB // Negative lookbehind
|
|
|
|
|
ALWAYS_TRUE // An assertion that is always true
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type State struct {
|
|
|
|
@ -103,6 +104,9 @@ func cloneStateHelper(state *State, cloneMap map[*State]*State) *State {
|
|
|
|
|
// Checks if the given state's assertion is true. Returns true if the given
|
|
|
|
|
// state doesn't have an assertion.
|
|
|
|
|
func (s State) checkAssertion(str []rune, idx int) bool {
|
|
|
|
|
if s.assert == ALWAYS_TRUE {
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
if s.assert == SOS {
|
|
|
|
|
return idx == 0
|
|
|
|
|
}
|
|
|
|
|