void read() { scanner.scanNext(); if (token.isMalformed) { int errorCode = -1; switch (token.tokenType) { case Tokens.X_MALFORMED_BINARY_STRING: errorCode = ErrorCode.X_42587; break; case Tokens.X_MALFORMED_BIT_STRING: errorCode = ErrorCode.X_42588; break; case Tokens.X_MALFORMED_UNICODE_STRING: errorCode = ErrorCode.X_42586; break; case Tokens.X_MALFORMED_STRING: errorCode = ErrorCode.X_42584; break; case Tokens.X_UNKNOWN_TOKEN: errorCode = ErrorCode.X_42582; break; case Tokens.X_MALFORMED_NUMERIC: errorCode = ErrorCode.X_42585; break; case Tokens.X_MALFORMED_COMMENT: errorCode = ErrorCode.X_42589; break; case Tokens.X_MALFORMED_IDENTIFIER: errorCode = ErrorCode.X_42583; break; } throw Error.error(errorCode); } if (isRecording) { Token dup = token.duplicate(); dup.position = scanner.getTokenPosition(); recordedStatement.add(dup); } }