 
         switch behaviour.kind {
         case .structural(let token):
-            if behaviour.negate {
-                _ = lexer.proceed()
-                ir.evaluating(token)
-                ir.succeeded(token: token, annotations: annotations, range: lexer.proceed().range)
-            } else {
-                ir.succeeded(token: token, annotations: annotations, range: lexer.proceed().range)
-            }
+            ir.succeeded(token: token, annotations: annotations, range: lexer.proceed().range)
         case .scanning, .skipping:
             _ = lexer.proceed()
         }

        //Prepare for any lookahead by putting a fake IR in place if is lookahead
        //as well as taking an additional mark to ensure position will always be
        //where it was
        let ir = behaviour.lookahead ? LookAheadIR() : ir
        if behaviour.lookahead {
            lexer.mark(skipping:true)

    
    /// `true` if the rule creates ndoes, false otherwise
    public var scanning : Bool {
        if case .scanning = behaviour.kind {
            return true
        }
        return false
    }

    /**
