                 prev = cc
             }
             for var i = 0; i < n; ++i {
-                let c = cs.look()!
+                let c = cp.look()!
                 if source == nil {
                     source = String(c)
                 } else {
                     source!.append(c)
                 }
-                cs.consume()
+                _consume()
             }
         }
     }

            ctx.reset()
            return load()
        case .BlockCommentTail:
            info = SourceInfo(lineNo: ctx.lineNo, charNo: ctx.charNo)
            ctx.consume(n: 2)
            return produce(.Error(.ReservedToken))
        case .OperatorFollow, .IdentifierFollow, .Others:
            info = SourceInfo(lineNo: ctx.lineNo, charNo: ctx.charNo)
            ctx.consume()
            return produce(.Error(.InvalidToken))
        case .LessThan, .GraterThan, .Ampersand, .Question, .Exclamation:

    }

    private func load(classified: CharacterClass? = nil) -> Token {
        var info = SourceInfo(lineNo: ctx.lineNo(), charNo: ctx.charNo())
        func produce(kind: TokenKind) -> Token {
            info.source = ctx.source
            ctx.reset()
