sqlbison.y string clean-up
Change-Id: I1ab32794a10f78f305de8057af5885d7719f87a3
This commit is contained in:
@@ -62,11 +62,11 @@ inline connectivity::OSQLInternalNode* newNode(const sal_Char* pNewValue,
|
|||||||
const connectivity::SQLNodeType eNodeType,
|
const connectivity::SQLNodeType eNodeType,
|
||||||
const sal_uInt32 nNodeID = 0);
|
const sal_uInt32 nNodeID = 0);
|
||||||
|
|
||||||
inline connectivity::OSQLInternalNode* newNode(const ::rtl::OString& _NewValue,
|
inline connectivity::OSQLInternalNode* newNode(const OString& _NewValue,
|
||||||
const connectivity::SQLNodeType eNodeType,
|
const connectivity::SQLNodeType eNodeType,
|
||||||
const sal_uInt32 nNodeID = 0);
|
const sal_uInt32 nNodeID = 0);
|
||||||
|
|
||||||
inline connectivity::OSQLInternalNode* newNode(const ::rtl::OUString& _NewValue,
|
inline connectivity::OSQLInternalNode* newNode(const OUString& _NewValue,
|
||||||
const connectivity::SQLNodeType eNodeType,
|
const connectivity::SQLNodeType eNodeType,
|
||||||
const sal_uInt32 nNodeID = 0);
|
const sal_uInt32 nNodeID = 0);
|
||||||
|
|
||||||
@@ -4278,76 +4278,20 @@ connectivity::OSQLInternalNode* newNode(const sal_Char* pNewValue,
|
|||||||
return new connectivity::OSQLInternalNode(pNewValue, eNodeType, nNodeID);
|
return new connectivity::OSQLInternalNode(pNewValue, eNodeType, nNodeID);
|
||||||
}
|
}
|
||||||
|
|
||||||
connectivity::OSQLInternalNode* newNode(const ::rtl::OString& _NewValue,
|
connectivity::OSQLInternalNode* newNode(const OString& _NewValue,
|
||||||
const connectivity::SQLNodeType eNodeType,
|
const connectivity::SQLNodeType eNodeType,
|
||||||
const sal_uInt32 nNodeID)
|
const sal_uInt32 nNodeID)
|
||||||
{
|
{
|
||||||
return new connectivity::OSQLInternalNode(_NewValue, eNodeType, nNodeID);
|
return new connectivity::OSQLInternalNode(_NewValue, eNodeType, nNodeID);
|
||||||
}
|
}
|
||||||
|
|
||||||
connectivity::OSQLInternalNode* newNode(const ::rtl::OUString& _NewValue,
|
connectivity::OSQLInternalNode* newNode(const OUString& _NewValue,
|
||||||
const connectivity::SQLNodeType eNodeType,
|
const connectivity::SQLNodeType eNodeType,
|
||||||
const sal_uInt32 nNodeID)
|
const sal_uInt32 nNodeID)
|
||||||
{
|
{
|
||||||
return new connectivity::OSQLInternalNode(_NewValue, eNodeType, nNodeID);
|
return new connectivity::OSQLInternalNode(_NewValue, eNodeType, nNodeID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//============================================================
|
|
||||||
//= a helper for static ascii pseudo-unicode strings
|
|
||||||
//============================================================
|
|
||||||
// string constants
|
|
||||||
struct _ConstAsciiString_
|
|
||||||
{
|
|
||||||
sal_Int32 length;
|
|
||||||
sal_Char const* str;
|
|
||||||
|
|
||||||
operator rtl::OUString () const { return rtl::OUString(str, length, RTL_TEXTENCODING_ASCII_US); }
|
|
||||||
operator const sal_Char * () const { return str; }
|
|
||||||
operator ::rtl::OString() const { return str; }
|
|
||||||
};
|
|
||||||
|
|
||||||
#define IMPLEMENT_CONSTASCII_STRING( name, string ) \
|
|
||||||
_ConstAsciiString_ const name = { sizeof(string)-1, string }
|
|
||||||
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_GENERAL, "Syntax error in SQL expression");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_VALUE_NO_LIKE, "The value #1 can not be used with LIKE.");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_FIELD_NO_LIKE, "LIKE can not be used with this field.");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_COMPARE, "The entered criterion can not be compared with this field.");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_DATE_COMPARE, "The field can not be compared with a date.");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_REAL_COMPARE, "The field can not be compared with a floating point number.");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_INT_COMPARE, "The field can not be compared with a number.");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_TABLE, "The database does not contain a table named \"#\".");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_TABLE_OR_QUERY, "The database does contain neither a table nor a query named \"#\".");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_COLUMN, "The column \"#1\" is unknown in the table \"#2\".");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_TABLE_EXIST, "The database already contains a table or view with name \"#\".");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_QUERY_EXIST, "The database already contains a query with name \"#\".");
|
|
||||||
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_LIKE, "LIKE");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_NOT, "NOT");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_NULL, "NULL");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_TRUE, "True");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_FALSE, "False");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_IS, "IS");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_BETWEEN, "BETWEEN");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_OR, "OR");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_AND, "AND");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_AVG, "AVG");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_COUNT, "COUNT");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_MAX, "MAX");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_MIN, "MIN");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_SUM, "SUM");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_EVERY, "EVERY");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_ANY, "ANY");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_SOME, "SOME");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_STDDEV_POP, "STDDEV_POP");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_STDDEV_SAMP, "STDDEV_SAMP");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_VAR_SAMP, "VAR_SAMP");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_VAR_POP, "VAR_POP");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_COLLECT, "COLLECT");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_FUSION, "FUSION");
|
|
||||||
IMPLEMENT_CONSTASCII_STRING(KEY_STR_INTERSECTION, "INTERSECTION");
|
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//= OParseContext
|
//= OParseContext
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
@@ -4362,23 +4306,23 @@ OParseContext::~OParseContext()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
::rtl::OUString OParseContext::getErrorMessage(ErrorCode _eCode) const
|
OUString OParseContext::getErrorMessage(ErrorCode _eCode) const
|
||||||
{
|
{
|
||||||
::rtl::OUString aMsg;
|
OUString aMsg;
|
||||||
switch (_eCode)
|
switch (_eCode)
|
||||||
{
|
{
|
||||||
case ERROR_GENERAL: aMsg = ERROR_STR_GENERAL; break;
|
case ERROR_GENERAL: aMsg = "Syntax error in SQL expression"; break;
|
||||||
case ERROR_VALUE_NO_LIKE: aMsg = ERROR_STR_VALUE_NO_LIKE; break;
|
case ERROR_VALUE_NO_LIKE: aMsg = "The value #1 can not be used with LIKE."; break;
|
||||||
case ERROR_FIELD_NO_LIKE: aMsg = ERROR_STR_FIELD_NO_LIKE; break;
|
case ERROR_FIELD_NO_LIKE: aMsg = "LIKE can not be used with this field."; break;
|
||||||
case ERROR_INVALID_COMPARE: aMsg = ERROR_STR_INVALID_COMPARE; break;
|
case ERROR_INVALID_COMPARE: aMsg = "The entered criterion can not be compared with this field."; break;
|
||||||
case ERROR_INVALID_INT_COMPARE: aMsg = ERROR_STR_INVALID_INT_COMPARE; break;
|
case ERROR_INVALID_INT_COMPARE: aMsg = "The field can not be compared with a number."; break;
|
||||||
case ERROR_INVALID_DATE_COMPARE: aMsg = ERROR_STR_INVALID_DATE_COMPARE; break;
|
case ERROR_INVALID_DATE_COMPARE: aMsg = "The field can not be compared with a date."; break;
|
||||||
case ERROR_INVALID_REAL_COMPARE: aMsg = ERROR_STR_INVALID_REAL_COMPARE; break;
|
case ERROR_INVALID_REAL_COMPARE: aMsg = "The field can not be compared with a floating point number."; break;
|
||||||
case ERROR_INVALID_TABLE: aMsg = ERROR_STR_INVALID_TABLE; break;
|
case ERROR_INVALID_TABLE: aMsg = "The database does not contain a table named \"#\"."; break;
|
||||||
case ERROR_INVALID_TABLE_OR_QUERY: aMsg = ERROR_STR_INVALID_TABLE_OR_QUERY; break;
|
case ERROR_INVALID_TABLE_OR_QUERY: aMsg = "The database does contain neither a table nor a query named \"#\"."; break;
|
||||||
case ERROR_INVALID_COLUMN: aMsg = ERROR_STR_INVALID_COLUMN; break;
|
case ERROR_INVALID_COLUMN: aMsg = "The column \"#1\" is unknown in the table \"#2\"."; break;
|
||||||
case ERROR_INVALID_TABLE_EXIST: aMsg = ERROR_STR_INVALID_TABLE_EXIST; break;
|
case ERROR_INVALID_TABLE_EXIST: aMsg = "The database already contains a table or view with name \"#\"."; break;
|
||||||
case ERROR_INVALID_QUERY_EXIST: aMsg = ERROR_STR_INVALID_QUERY_EXIST; break;
|
case ERROR_INVALID_QUERY_EXIST: aMsg = "The database already contains a query with name \"#\"."; break;
|
||||||
default:
|
default:
|
||||||
OSL_FAIL( "OParseContext::getErrorMessage: unknown error code!" );
|
OSL_FAIL( "OParseContext::getErrorMessage: unknown error code!" );
|
||||||
break;
|
break;
|
||||||
@@ -4387,35 +4331,35 @@ OParseContext::~OParseContext()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
::rtl::OString OParseContext::getIntlKeywordAscii(InternationalKeyCode _eKey) const
|
OString OParseContext::getIntlKeywordAscii(InternationalKeyCode _eKey) const
|
||||||
{
|
{
|
||||||
::rtl::OString aKeyword;
|
OString aKeyword;
|
||||||
switch (_eKey)
|
switch (_eKey)
|
||||||
{
|
{
|
||||||
case KEY_LIKE: aKeyword = KEY_STR_LIKE; break;
|
case KEY_LIKE: aKeyword = "LIKE"; break;
|
||||||
case KEY_NOT: aKeyword = KEY_STR_NOT; break;
|
case KEY_NOT: aKeyword = "NOT"; break;
|
||||||
case KEY_NULL: aKeyword = KEY_STR_NULL; break;
|
case KEY_NULL: aKeyword = "NULL"; break;
|
||||||
case KEY_TRUE: aKeyword = KEY_STR_TRUE; break;
|
case KEY_TRUE: aKeyword = "True"; break;
|
||||||
case KEY_FALSE: aKeyword = KEY_STR_FALSE; break;
|
case KEY_FALSE: aKeyword = "False"; break;
|
||||||
case KEY_IS: aKeyword = KEY_STR_IS; break;
|
case KEY_IS: aKeyword = "IS"; break;
|
||||||
case KEY_BETWEEN: aKeyword = KEY_STR_BETWEEN; break;
|
case KEY_BETWEEN: aKeyword = "BETWEEN"; break;
|
||||||
case KEY_OR: aKeyword = KEY_STR_OR; break;
|
case KEY_OR: aKeyword = "OR"; break;
|
||||||
case KEY_AND: aKeyword = KEY_STR_AND; break;
|
case KEY_AND: aKeyword = "AND"; break;
|
||||||
case KEY_AVG: aKeyword = KEY_STR_AVG; break;
|
case KEY_AVG: aKeyword = "AVG"; break;
|
||||||
case KEY_COUNT: aKeyword = KEY_STR_COUNT; break;
|
case KEY_COUNT: aKeyword = "COUNT"; break;
|
||||||
case KEY_MAX: aKeyword = KEY_STR_MAX; break;
|
case KEY_MAX: aKeyword = "MAX"; break;
|
||||||
case KEY_MIN: aKeyword = KEY_STR_MIN; break;
|
case KEY_MIN: aKeyword = "MIN"; break;
|
||||||
case KEY_SUM: aKeyword = KEY_STR_SUM; break;
|
case KEY_SUM: aKeyword = "SUM"; break;
|
||||||
case KEY_EVERY: aKeyword = KEY_STR_EVERY; break;
|
case KEY_EVERY: aKeyword = "EVERY"; break;
|
||||||
case KEY_ANY: aKeyword = KEY_STR_ANY; break;
|
case KEY_ANY: aKeyword = "ANY"; break;
|
||||||
case KEY_SOME: aKeyword = KEY_STR_SOME; break;
|
case KEY_SOME: aKeyword = "SOME"; break;
|
||||||
case KEY_STDDEV_POP: aKeyword = KEY_STR_STDDEV_POP; break;
|
case KEY_STDDEV_POP: aKeyword = "STDDEV_POP"; break;
|
||||||
case KEY_STDDEV_SAMP: aKeyword = KEY_STR_STDDEV_SAMP; break;
|
case KEY_STDDEV_SAMP: aKeyword = "STDDEV_SAMP"; break;
|
||||||
case KEY_VAR_SAMP: aKeyword = KEY_STR_VAR_SAMP; break;
|
case KEY_VAR_SAMP: aKeyword = "VAR_SAMP"; break;
|
||||||
case KEY_VAR_POP: aKeyword = KEY_STR_VAR_POP; break;
|
case KEY_VAR_POP: aKeyword = "VAR_POP"; break;
|
||||||
case KEY_COLLECT: aKeyword = KEY_STR_COLLECT; break;
|
case KEY_COLLECT: aKeyword = "COLLECT"; break;
|
||||||
case KEY_FUSION: aKeyword = KEY_STR_FUSION; break;
|
case KEY_FUSION: aKeyword = "FUSION"; break;
|
||||||
case KEY_INTERSECTION:aKeyword = KEY_STR_INTERSECTION; break;
|
case KEY_INTERSECTION:aKeyword = "INTERSECTION"; break;
|
||||||
case KEY_NONE: break;
|
case KEY_NONE: break;
|
||||||
default:
|
default:
|
||||||
OSL_FAIL( "OParseContext::getIntlKeywordAscii: unknown key!" );
|
OSL_FAIL( "OParseContext::getIntlKeywordAscii: unknown key!" );
|
||||||
@@ -4425,7 +4369,7 @@ OParseContext::~OParseContext()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
IParseContext::InternationalKeyCode OParseContext::getIntlKeyCode(const ::rtl::OString& rToken) const
|
IParseContext::InternationalKeyCode OParseContext::getIntlKeyCode(const OString& rToken) const
|
||||||
{
|
{
|
||||||
static IParseContext::InternationalKeyCode Intl_TokenID[] =
|
static IParseContext::InternationalKeyCode Intl_TokenID[] =
|
||||||
{
|
{
|
||||||
@@ -4440,7 +4384,7 @@ IParseContext::InternationalKeyCode OParseContext::getIntlKeyCode(const ::rtl::O
|
|||||||
sal_uInt32 nCount = SAL_N_ELEMENTS( Intl_TokenID );
|
sal_uInt32 nCount = SAL_N_ELEMENTS( Intl_TokenID );
|
||||||
for (sal_uInt32 i = 0; i < nCount; i++)
|
for (sal_uInt32 i = 0; i < nCount; i++)
|
||||||
{
|
{
|
||||||
::rtl::OString aKey = getIntlKeywordAscii(Intl_TokenID[i]);
|
OString aKey = getIntlKeywordAscii(Intl_TokenID[i]);
|
||||||
if (rToken.equalsIgnoreAsciiCase(aKey))
|
if (rToken.equalsIgnoreAsciiCase(aKey))
|
||||||
return Intl_TokenID[i];
|
return Intl_TokenID[i];
|
||||||
}
|
}
|
||||||
@@ -4451,11 +4395,7 @@ IParseContext::InternationalKeyCode OParseContext::getIntlKeyCode(const ::rtl::O
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
static Locale& impl_getLocaleInstance( )
|
static Locale& impl_getLocaleInstance( )
|
||||||
{
|
{
|
||||||
static Locale s_aLocale(
|
static Locale s_aLocale( "en", "US", "" );
|
||||||
::rtl::OUString( "en" ),
|
|
||||||
::rtl::OUString( "US" ),
|
|
||||||
::rtl::OUString( )
|
|
||||||
);
|
|
||||||
return s_aLocale;
|
return s_aLocale;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4481,9 +4421,9 @@ const Locale& OParseContext::getDefaultLocale()
|
|||||||
// Member-Variable.
|
// Member-Variable.
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
::rtl::OUString ConvertLikeToken(const OSQLParseNode* pTokenNode, const OSQLParseNode* pEscapeNode, sal_Bool bInternational)
|
OUString ConvertLikeToken(const OSQLParseNode* pTokenNode, const OSQLParseNode* pEscapeNode, sal_Bool bInternational)
|
||||||
{
|
{
|
||||||
::rtl::OUStringBuffer aMatchStr(0);
|
OUStringBuffer aMatchStr(0);
|
||||||
if (pTokenNode->isToken())
|
if (pTokenNode->isToken())
|
||||||
{
|
{
|
||||||
sal_Unicode cEscape = 0;
|
sal_Unicode cEscape = 0;
|
||||||
@@ -4493,7 +4433,7 @@ const Locale& OParseContext::getDefaultLocale()
|
|||||||
// Platzhalter austauschen
|
// Platzhalter austauschen
|
||||||
aMatchStr = pTokenNode->getTokenValue();
|
aMatchStr = pTokenNode->getTokenValue();
|
||||||
const sal_Int32 nLen = aMatchStr.getLength();
|
const sal_Int32 nLen = aMatchStr.getLength();
|
||||||
::rtl::OUStringBuffer sSearch,sReplace;
|
OUStringBuffer sSearch,sReplace;
|
||||||
if ( bInternational )
|
if ( bInternational )
|
||||||
{
|
{
|
||||||
sSearch.appendAscii("%_",2);
|
sSearch.appendAscii("%_",2);
|
||||||
@@ -4570,7 +4510,7 @@ void OSQLParser::setParseTree(OSQLParseNode * pNewParseTree)
|
|||||||
See also getComment()/concatComment() implementation for
|
See also getComment()/concatComment() implementation for
|
||||||
OQueryController::translateStatement().
|
OQueryController::translateStatement().
|
||||||
*/
|
*/
|
||||||
static ::rtl::OUString delComment( const ::rtl::OUString& rQuery )
|
static OUString delComment( const OUString& rQuery )
|
||||||
{
|
{
|
||||||
// First a quick search if there is any "--" or "//" or "/*", if not then the whole
|
// First a quick search if there is any "--" or "//" or "/*", if not then the whole
|
||||||
// copying loop is pointless.
|
// copying loop is pointless.
|
||||||
@@ -4584,7 +4524,7 @@ static ::rtl::OUString delComment( const ::rtl::OUString& rQuery )
|
|||||||
bool bIsText2 = false; // 'text'
|
bool bIsText2 = false; // 'text'
|
||||||
bool bComment2 = false; // /* comment */
|
bool bComment2 = false; // /* comment */
|
||||||
bool bComment = false; // -- or // comment
|
bool bComment = false; // -- or // comment
|
||||||
::rtl::OUStringBuffer aBuf(nQueryLen);
|
OUStringBuffer aBuf(nQueryLen);
|
||||||
for (sal_Int32 i=0; i < nQueryLen; ++i)
|
for (sal_Int32 i=0; i < nQueryLen; ++i)
|
||||||
{
|
{
|
||||||
if (bComment2)
|
if (bComment2)
|
||||||
@@ -4625,8 +4565,8 @@ static ::rtl::OUString delComment( const ::rtl::OUString& rQuery )
|
|||||||
return aBuf.makeStringAndClear();
|
return aBuf.makeStringAndClear();
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
OSQLParseNode* OSQLParser::parseTree(::rtl::OUString& rErrorMessage,
|
OSQLParseNode* OSQLParser::parseTree(OUString& rErrorMessage,
|
||||||
const ::rtl::OUString& rStatement,
|
const OUString& rStatement,
|
||||||
sal_Bool bInternational)
|
sal_Bool bInternational)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -4637,7 +4577,7 @@ OSQLParseNode* OSQLParser::parseTree(::rtl::OUString& rErrorMessage,
|
|||||||
setParser(this);
|
setParser(this);
|
||||||
|
|
||||||
// delete comments before parsing
|
// delete comments before parsing
|
||||||
::rtl::OUString sTemp = delComment(rStatement);
|
OUString sTemp = delComment(rStatement);
|
||||||
|
|
||||||
// defines how to scan
|
// defines how to scan
|
||||||
s_pScanner->SetRule(s_pScanner->GetSQLRule()); // initial
|
s_pScanner->SetRule(s_pScanner->GetSQLRule()); // initial
|
||||||
@@ -4646,7 +4586,7 @@ OSQLParseNode* OSQLParser::parseTree(::rtl::OUString& rErrorMessage,
|
|||||||
SQLyylval.pParseNode = NULL;
|
SQLyylval.pParseNode = NULL;
|
||||||
// SQLyypvt = NULL;
|
// SQLyypvt = NULL;
|
||||||
m_pParseTree = NULL;
|
m_pParseTree = NULL;
|
||||||
m_sErrorMessage = ::rtl::OUString();
|
m_sErrorMessage = "";
|
||||||
|
|
||||||
// start parsing
|
// start parsing
|
||||||
if (SQLyyparse() != 0)
|
if (SQLyyparse() != 0)
|
||||||
@@ -4677,9 +4617,9 @@ OSQLParseNode* OSQLParser::parseTree(::rtl::OUString& rErrorMessage,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
::rtl::OString OSQLParser::TokenIDToStr(sal_uInt32 nTokenID, const IParseContext* pContext)
|
OString OSQLParser::TokenIDToStr(sal_uInt32 nTokenID, const IParseContext* pContext)
|
||||||
{
|
{
|
||||||
::rtl::OString aStr;
|
OString aStr;
|
||||||
if (pContext)
|
if (pContext)
|
||||||
{
|
{
|
||||||
IParseContext::InternationalKeyCode eKeyCode = IParseContext::KEY_NONE;
|
IParseContext::InternationalKeyCode eKeyCode = IParseContext::KEY_NONE;
|
||||||
@@ -4714,15 +4654,15 @@ OSQLParseNode* OSQLParser::parseTree(::rtl::OUString& rErrorMessage,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if OSL_DEBUG_LEVEL > 1
|
#if OSL_DEBUG_LEVEL > 1
|
||||||
::rtl::OUString OSQLParser::RuleIDToStr(sal_uInt32 nRuleID)
|
OUString OSQLParser::RuleIDToStr(sal_uInt32 nRuleID)
|
||||||
{
|
{
|
||||||
OSL_ENSURE(nRuleID < SAL_N_ELEMENTS(yytname), "OSQLParser::RuleIDToStr: Invalid nRuleId!");
|
OSL_ENSURE(nRuleID < SAL_N_ELEMENTS(yytname), "OSQLParser::RuleIDToStr: Invalid nRuleId!");
|
||||||
return ::rtl::OUString::createFromAscii(yytname[nRuleID]);
|
return OUString::createFromAscii(yytname[nRuleID]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
sal_uInt32 OSQLParser::StrToRuleID(const ::rtl::OString & rValue)
|
sal_uInt32 OSQLParser::StrToRuleID(const OString & rValue)
|
||||||
{
|
{
|
||||||
// Search for the given name in yytname and return the index
|
// Search for the given name in yytname and return the index
|
||||||
// (or UNKNOWN_RULE, if not found)
|
// (or UNKNOWN_RULE, if not found)
|
||||||
@@ -4817,7 +4757,7 @@ sal_Int16 OSQLParser::buildStringNodes(OSQLParseNode*& pLiteral)
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
sal_Int16 OSQLParser::buildComparsionRule(OSQLParseNode*& pAppend,OSQLParseNode* pLiteral)
|
sal_Int16 OSQLParser::buildComparsionRule(OSQLParseNode*& pAppend,OSQLParseNode* pLiteral)
|
||||||
{
|
{
|
||||||
OSQLParseNode* pComp = new OSQLInternalNode(::rtl::OUString("="), SQL_NODE_EQUAL);
|
OSQLParseNode* pComp = new OSQLInternalNode("=", SQL_NODE_EQUAL);
|
||||||
return buildPredicateRule(pAppend,pLiteral,pComp);
|
return buildPredicateRule(pAppend,pLiteral,pComp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4828,7 +4768,7 @@ void OSQLParser::reduceLiteral(OSQLParseNode*& pLiteral, sal_Bool bAppendBlank)
|
|||||||
OSL_ENSURE(pLiteral->isRule(), "This is no ::com::sun::star::chaos::Rule");
|
OSL_ENSURE(pLiteral->isRule(), "This is no ::com::sun::star::chaos::Rule");
|
||||||
OSL_ENSURE(pLiteral->count() == 2, "OSQLParser::ReduceLiteral() Invalid count");
|
OSL_ENSURE(pLiteral->count() == 2, "OSQLParser::ReduceLiteral() Invalid count");
|
||||||
OSQLParseNode* pTemp = pLiteral;
|
OSQLParseNode* pTemp = pLiteral;
|
||||||
::rtl::OUStringBuffer aValue(pLiteral->getChild(0)->getTokenValue());
|
OUStringBuffer aValue(pLiteral->getChild(0)->getTokenValue());
|
||||||
if (bAppendBlank)
|
if (bAppendBlank)
|
||||||
{
|
{
|
||||||
aValue.appendAscii(" ");
|
aValue.appendAscii(" ");
|
||||||
@@ -4845,17 +4785,17 @@ void OSQLParser::error(const sal_Char *fmt)
|
|||||||
{
|
{
|
||||||
if(m_sErrorMessage.isEmpty())
|
if(m_sErrorMessage.isEmpty())
|
||||||
{
|
{
|
||||||
::rtl::OUString sStr(fmt,strlen(fmt),RTL_TEXTENCODING_UTF8);
|
OUString sStr(fmt,strlen(fmt),RTL_TEXTENCODING_UTF8);
|
||||||
::rtl::OUString sSQL_TOKEN("SQL_TOKEN_");
|
OUString sSQL_TOKEN("SQL_TOKEN_");
|
||||||
|
|
||||||
sal_Int32 nPos1 = sStr.indexOf(sSQL_TOKEN);
|
sal_Int32 nPos1 = sStr.indexOf(sSQL_TOKEN);
|
||||||
if(nPos1 != -1)
|
if(nPos1 != -1)
|
||||||
{
|
{
|
||||||
::rtl::OUString sFirst = sStr.copy(0,nPos1);
|
OUString sFirst = sStr.copy(0,nPos1);
|
||||||
sal_Int32 nPos2 = sStr.indexOf(sSQL_TOKEN,nPos1+1);
|
sal_Int32 nPos2 = sStr.indexOf(sSQL_TOKEN,nPos1+1);
|
||||||
if(nPos2 != -1)
|
if(nPos2 != -1)
|
||||||
{
|
{
|
||||||
::rtl::OUString sSecond = sStr.copy(nPos1+sSQL_TOKEN.getLength(),nPos2-nPos1-sSQL_TOKEN.getLength());
|
OUString sSecond = sStr.copy(nPos1+sSQL_TOKEN.getLength(),nPos2-nPos1-sSQL_TOKEN.getLength());
|
||||||
sFirst += sSecond;
|
sFirst += sSecond;
|
||||||
sFirst += sStr.copy(nPos2+sSQL_TOKEN.getLength());
|
sFirst += sStr.copy(nPos2+sSQL_TOKEN.getLength());
|
||||||
}
|
}
|
||||||
@@ -4867,10 +4807,10 @@ void OSQLParser::error(const sal_Char *fmt)
|
|||||||
else
|
else
|
||||||
m_sErrorMessage = sStr;
|
m_sErrorMessage = sStr;
|
||||||
|
|
||||||
::rtl::OUString aError = s_pScanner->getErrorMessage();
|
OUString aError = s_pScanner->getErrorMessage();
|
||||||
if(!aError.isEmpty())
|
if(!aError.isEmpty())
|
||||||
{
|
{
|
||||||
m_sErrorMessage += ::rtl::OUString(", ");
|
m_sErrorMessage += ", ";
|
||||||
m_sErrorMessage += aError;
|
m_sErrorMessage += aError;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user