internal bool EndsWithWordPart() { if (_rawSqlBuilder.Length == 0) { return(false); } var c = _rawSqlBuilder[_rawSqlBuilder.Length - 1]; return(SqlTokenHelper.IsWordPart(c)); }
private bool IsWordStarted(char c) { if (c == '+' || c == '-') { if (_charPosition + 1 < _stringLength) { var next = _sql[_charPosition + 1]; if (char.IsDigit(next)) { return(true); } } } return(SqlTokenHelper.IsWordPart(c)); }
private bool IsBlockCommentDirectiveTerminated() { if (_charPosition + 1 < _stringLength) { var next = _sql[_charPosition + 1]; if (!SqlTokenHelper.IsWordPart(next)) { return(true); } } else { return(true); } return(false); }
private bool IsWordEnded() { if (_charPosition + 1 < _stringLength) { var next = _sql[_charPosition + 1]; if (!SqlTokenHelper.IsWordPart(next)) { return(true); } } else { return(true); } return(false); }
private void PeekOneChar(char c) { if (SqlTokenHelper.IsWhitespace(c)) { _tokenType = SqlTokenType.WHITESPACE; } else if (c == '(') { _tokenType = SqlTokenType.OPENED_PARENS; } else if (c == ')') { _tokenType = SqlTokenType.CLOSED_PARENS; } else if (c == ';') { _tokenType = SqlTokenType.DELIMITER; } else if (c == '\'') { _tokenType = SqlTokenType.QUOTE; var closed = false; while (HasRemaining()) { _charPosition++; var c2 = _sql[_charPosition]; if (c2 == '\'') { if (_charPosition + 1 < _stringLength) { _charPosition++; var c3 = _sql[_charPosition]; if (c3 != '\'') { _charPosition = _charPosition - 1; closed = true; break; } } else { closed = true; } } } if (closed) { return; } CalcPosition(); throw new SqlParseException(ExceptionMessageId.Esp2101, _sql, LineNumber, Position); } else if (IsWordStarted(c)) { _tokenType = SqlTokenType.WORD; while (HasRemaining()) { _charPosition++; var c2 = _sql[_charPosition]; if (c2 == '\'') { var closed = false; while (HasRemaining()) { _charPosition++; var c3 = _sql[_charPosition]; if (c3 == '\'') { if (_charPosition + 2 < _stringLength) { _charPosition++; var c4 = _sql[_charPosition + 1]; if (c4 != '\'') { _charPosition = _charPosition - 1; closed = true; break; } } else { closed = true; } } } if (closed) { return; } CalcPosition(); throw new SqlParseException(ExceptionMessageId.Esp2101, _sql, LineNumber, Position); } if (!SqlTokenHelper.IsWordPart(c2)) { _charPosition = _charPosition - 1; return; } } } else if (c == '\r' || c == '\n') { _tokenType = SqlTokenType.EOL; _currentLineNumber++; } else { _tokenType = SqlTokenType.OTHER; } }