From d41041d21ee7cdb26cd59565e42cc29412daa157 Mon Sep 17 00:00:00 2001
From: John Naylor <jcnaylor@gmail.com>
Date: Sun, 30 Sep 2018 13:04:32 +0700
Subject: [PATCH v1 2/4] Prepatory refactoring for next commit.

The next patch needs to do some rearrangements for it to work,
but makes the patch hard to read, so put them in a separate patch.
---
 src/interfaces/ecpg/preproc/pgc.l | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index b96f17ca20..421c62339b 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -399,20 +399,20 @@ cppline			{space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+
 					/* ignore */
 				}
 
-<C>{xcstart}		{
+<SQL>{xcstart}		{
 					token_start = yytext;
 					state_before = YYSTATE;
 					xcdepth = 0;
-					BEGIN(xcc);
+					BEGIN(xcsql);
 					/* Put back any characters past slash-star; see above */
 					yyless(2);
 					fputs("/*", yyout);
 				}
-<SQL>{xcstart}		{
+<C>{xcstart}		{
 					token_start = yytext;
 					state_before = YYSTATE;
 					xcdepth = 0;
-					BEGIN(xcsql);
+					BEGIN(xcc);
 					/* Put back any characters past slash-star; see above */
 					yyless(2);
 					fputs("/*", yyout);
@@ -496,6 +496,12 @@ cppline			{space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+
 				}
 
 <xh><<EOF>>		{ mmfatal(PARSE_ERROR, "unterminated hexadecimal string literal"); }
+<C>{xqstart}	{
+					token_start = yytext;
+					state_before = YYSTATE;
+					BEGIN(xqc);
+					startlit();
+				}
 <SQL>{xnstart} {
 					/* National character.
 					 * Transfer it as-is to the backend.
@@ -505,12 +511,6 @@ cppline			{space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+
 					BEGIN(xn);
 					startlit();
 				}
-<C>{xqstart}	{
-					token_start = yytext;
-					state_before = YYSTATE;
-					BEGIN(xqc);
-					startlit();
-				}
 <SQL>{xqstart}	{
 					token_start = yytext;
 					state_before = YYSTATE;
@@ -804,6 +804,10 @@ cppline			{space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+
 					base_yylval.ival = atol(yytext+1);
 					return PARAM;
 				}
+<SQL>{ip}		{
+					base_yylval.str = mm_strdup(yytext);
+					return IP;
+				}
 <C,SQL>{integer}	{
 					int val;
 					char* endptr;
@@ -819,10 +823,6 @@ cppline			{space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+
 					base_yylval.ival = val;
 					return ICONST;
 				}
-<SQL>{ip}		{
-					base_yylval.str = mm_strdup(yytext);
-					return IP;
-				}
 <C,SQL>{decimal}	{
 					base_yylval.str = mm_strdup(yytext);
 					return FCONST;
-- 
2.17.1

