         //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 printDebugMessages = false
         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 {
        return behaviour.token != nil
    }

    /**


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