From 9f8b55777a35672df83a2e24b706980931763757 Mon Sep 17 00:00:00 2001
From: Alexpux <alexey.pawlow@gmail.com>
Date: Thu, 18 Dec 2014 23:47:12 +0300
Subject: [PATCH] Resolve conflict with STRING type from mingw-w64

---
 src/dsql/Parser.cpp     |  6 +++---
 src/dsql/parse.y        | 16 ++++++++--------
 src/yvalve/preparse.cpp | 14 +++++++-------
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/dsql/Parser.cpp b/src/dsql/Parser.cpp
index dfd4834..f87a683 100644
--- a/src/dsql/Parser.cpp
+++ b/src/dsql/Parser.cpp
@@ -536,7 +536,7 @@ int Parser::yylexAux()
 		mark.str = yylval.intlStringPtr;
 		strMarks.put(mark.str, mark);
 
-		return STRING;
+		return TOK_STRING;
 	}
 
 	/*
@@ -656,7 +656,7 @@ int Parser::yylexAux()
 
 			yylval.intlStringPtr = newIntlString(temp, "BINARY");
 
-			return STRING;
+			return TOK_STRING;
 		}  // if (!hexerror)...
 
 		// If we got here, there was a parsing error.  Set the
@@ -702,7 +702,7 @@ int Parser::yylexAux()
 				mark.str = yylval.intlStringPtr;
 				strMarks.put(mark.str, mark);
 
-				return STRING;
+				return TOK_STRING;
 			}
 		}
 
diff --git a/src/dsql/parse.y b/src/dsql/parse.y
index a82b29a..8f74669 100644
--- a/src/dsql/parse.y
+++ b/src/dsql/parse.y
@@ -336,7 +336,7 @@ using namespace Firebird;
 %token <metaNamePtr> SYMBOL
 %token <int32Val> NUMBER
 
-%token <intlStringPtr> STRING
+%token <intlStringPtr> TOK_STRING
 %token <metaNamePtr> INTRODUCER
 
 // New tokens added v5.0
@@ -3185,7 +3185,7 @@ err($exceptionArray)
 			item.type = ExceptionItem::SQL_CODE;
 			item.code = $2;
 		}
-	| SQLSTATE STRING
+	| SQLSTATE TOK_STRING
 		{
 			ExceptionItem& item = $exceptionArray->add();
 			item.type = ExceptionItem::SQL_STATE;
@@ -6322,7 +6322,7 @@ map_from_symbol_name
 
 %type <intlStringPtr> map_logoninfo
 map_logoninfo
-	: STRING
+	: TOK_STRING
 	| valid_symbol_name		{ $$ = newNode<IntlString>($1->c_str()); }
 	;
 
@@ -6570,7 +6570,7 @@ u_constant
 	: u_numeric_constant
 	| sql_string
 		{ $$ = MAKE_str_constant($1, lex.att_charset); }
-	| DATE STRING
+	| DATE TOK_STRING
 		{
 			if (client_dialect < SQL_DIALECT_V6_TRANSITION)
 			{
@@ -6586,7 +6586,7 @@ u_constant
 			}
 			$$ = MAKE_constant($2->getString().c_str(), CONSTANT_DATE);
 		}
-	| TIME STRING
+	| TIME TOK_STRING
 		{
 			if (client_dialect < SQL_DIALECT_V6_TRANSITION)
 			{
@@ -6602,7 +6602,7 @@ u_constant
 			}
 			$$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIME);
 		}
-	| TIMESTAMP STRING
+	| TIMESTAMP TOK_STRING
 		{ $$ = MAKE_constant($2->getString().c_str(), CONSTANT_TIMESTAMP); }
 		;
 
@@ -6646,8 +6646,8 @@ internal_info
 
 %type <intlStringPtr> sql_string
 sql_string
-	: STRING					// string in current charset
-	| INTRODUCER STRING			// string in specific charset
+	: TOK_STRING					// string in current charset
+	| INTRODUCER TOK_STRING			// string in specific charset
 		{
 			$$ = $2;
 			$$->setCharSet(*$1);
diff --git a/src/yvalve/preparse.cpp b/src/yvalve/preparse.cpp
index ce97168..60a6a0f 100644
--- a/src/yvalve/preparse.cpp
+++ b/src/yvalve/preparse.cpp
@@ -89,7 +89,7 @@ enum token_vals {
 	TOKEN_TOO_LONG = -2,
 	UNEXPECTED_END_OF_COMMAND = -3,
 	UNEXPECTED_TOKEN = -4,
-	STRING = 257,
+	TOK_STRING = 257,
 	NUMERIC = 258,
 	SYMBOL = 259
 };
@@ -143,7 +143,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt,
 			return false;
 		}
 
-		if (get_token(status, STRING, false, &stmt, stmt_end, token))
+		if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token))
 		{
 			return true;
 		}
@@ -193,7 +193,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt,
 						break;
 
 					case PP_USER:
-						if (get_token(status, STRING, false, &stmt, stmt_end, token))
+						if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token))
 						{
 							get_out = true;
 							break;
@@ -204,7 +204,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt,
 						break;
 
 					case PP_PASSWORD:
-						if (get_token(status, STRING, false, &stmt, stmt_end, token))
+						if (get_token(status, TOK_STRING, false, &stmt, stmt_end, token))
 						{
 							get_out = true;
 							break;
@@ -218,7 +218,7 @@ bool PREPARSE_execute(IStatus* status, Why::YAttachment** ptrAtt,
 						if (get_token(status, SYMBOL, false, &stmt, stmt_end, token) ||
 							token.length() != pp_symbols[PP_NAMES].length ||
 							token != pp_symbols[PP_NAMES].symbol ||
-							get_token(status, STRING, false, &stmt, stmt_end, token))
+							get_token(status, TOK_STRING, false, &stmt, stmt_end, token))
 						{
 							get_out = true;
 							break;
@@ -412,7 +412,7 @@ static SSHORT get_next_token(const SCHAR** stmt, const SCHAR* stmt_end, string&
 			token.erase(MAX_TOKEN_SIZE);
 			return TOKEN_TOO_LONG;
 		}
-		return STRING;
+		return TOK_STRING;
 	}
 
 	// Is it an integer?
@@ -514,6 +514,6 @@ static SSHORT get_token(IStatus* status,
 
 	*stmt = temp_stmt;
 	generate_error(status, token, UNEXPECTED_TOKEN,
-				   (result == STRING) ? *(temp_stmt - 1) : 0);
+				   (result == TOK_STRING) ? *(temp_stmt - 1) : 0);
 	return FB_FAILURE;
 }
-- 
2.2.0

