reduce redundancy in syntax error messages

Change-Id: I526c0b24d47ac4ee7b492b34387929627e51affc
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1266
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <buyingyi@gmail.com>
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/ScopeChecker.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/ScopeChecker.java
index 07aa473..767eacb 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/ScopeChecker.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/ScopeChecker.java
@@ -199,13 +199,14 @@
         }
     }
 
-    protected String fixQuotes(String token) {
+    protected static String fixQuotes(String token) {
+        final String stripped = stripQuotes(token);
+        return stripped != null ? "'" + stripped + "'" : token;
+    }
+
+    protected static String stripQuotes(String token) {
         final int last = token.length() - 1;
-        if (token.charAt(0) == '"' && token.charAt(last) == '"') {
-            return "'" + token.substring(1, last) + "'";
-        } else {
-            return token;
-        }
+        return token.charAt(0) == '"' && token.charAt(last) == '"' ? token.substring(1, last) : null;
     }
 
     protected static String addEscapes(String str) {
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index 6c4bc5c..566d9e9 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -298,7 +298,10 @@
                 message += fixQuotes(tokenImage[0]);
                 break;
             }
-            message += fixQuotes(tokenImage[tok.kind]) + " ";
+            final String fixedTokenImage = tokenImage[tok.kind];
+            if (! tok.image.equalsIgnoreCase(stripQuotes(fixedTokenImage))) {
+                message += fixQuotes(fixedTokenImage) + " ";
+            }
             message += quot + addEscapes(tok.image) + quot;
             tok = tok.next;
         }