string issue fix for few yang construct like config, mandatory + allowing yang constructs as identifers and string

Change-Id: I8dd01dc60d280a843b0a485681caa6bfcac013c2
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/KeyListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/KeyListener.java
index d3472aa..8ec7883 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/KeyListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/KeyListener.java
@@ -24,6 +24,7 @@
 import org.onosproject.yangutils.parser.impl.TreeWalkListener;
 
 import static org.onosproject.yangutils.utils.YangConstructType.KEY_DATA;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat;
 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage;
@@ -39,7 +40,8 @@
  * key-stmt            = key-keyword sep key-arg-str stmtend
  *
  * ANTLR grammar rule
- * keyStatement : KEY_KEYWORD string STMTEND;
+ * keyStatement : KEY_KEYWORD key STMTEND;
+ * key          : string;
  */
 
 /**
@@ -66,12 +68,12 @@
                                          GeneratedYangParser.KeyStatementContext ctx) {
 
         // Check for stack to be non empty.
-        checkStackIsNotEmpty(listener, MISSING_HOLDER, KEY_DATA, ctx.string().getText(), ENTRY);
+        checkStackIsNotEmpty(listener, MISSING_HOLDER, KEY_DATA, ctx.key().getText(), ENTRY);
 
         Parsable tmpData = listener.getParsedDataStack().peek();
         if (listener.getParsedDataStack().peek() instanceof YangList) {
             YangList yangList = (YangList) tmpData;
-            String tmpKeyValue = ctx.string().getText().replace("\"", "");
+            String tmpKeyValue = removeQuotesAndHandleConcat(ctx.key().getText());
             if (tmpKeyValue.contains(" ")) {
                 String[] keyValues = tmpKeyValue.split(" ");
                 for (String keyValue : keyValues) {
@@ -79,7 +81,7 @@
                         yangList.addKey(keyValue);
                     } catch (DataModelException e) {
                         throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, KEY_DATA,
-                                ctx.string().getText(), ENTRY, e.getMessage()));
+                                ctx.key().getText(), ENTRY, e.getMessage()));
                     }
                 }
             } else {
@@ -87,11 +89,11 @@
                     yangList.addKey(tmpKeyValue);
                 } catch (DataModelException e) {
                     throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, KEY_DATA,
-                            ctx.string().getText(), ENTRY, e.getMessage()));
+                            ctx.key().getText(), ENTRY, e.getMessage()));
                 }
             }
         } else {
-            throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, KEY_DATA, ctx.string().getText(),
+            throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, KEY_DATA, ctx.key().getText(),
                             ENTRY));
         }
     }