X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Futil%2FParserListenerUtils.java;h=ff96d95d8294ed59d96218b65bb922fda2c3bada;hb=36368e8e6f9a791c355a7e61010a04e6a4f347d4;hp=a25b6279519b2c4227994b3e23b7f5288247b42e;hpb=32f84d761384e639c22cdde386e1a8ef490fe23a;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java index a25b627951..ff96d95d82 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Stack; import org.antlr.v4.runtime.tree.ParseTree; +import org.antlr.v4.runtime.tree.TerminalNode; import org.opendaylight.yangtools.antlrv4.code.gen.*; import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Argument_stmtContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Base_stmtContext; @@ -139,18 +140,30 @@ public final class ParserListenerUtils { if (treeNode.getChild(i) instanceof StringContext) { final StringContext context = (StringContext) treeNode.getChild(i); if (context != null) { - result = context.getChild(0).getText(); - if (!(result.startsWith("\"")) && result.endsWith("\"")) { - LOG.error("Syntax error in module {} at line {}: missing '\"'.", getParentModule(treeNode), - context.getStart().getLine()); - } - return result.replace("\"", ""); + return stringFromStringContext(context,treeNode); + } } } return result; } + private static String stringFromStringContext(StringContext context, ParseTree treeNode) { + StringBuilder str = new StringBuilder(); + for (TerminalNode stringNode : context.STRING()) { + String result = stringNode.getText(); + if(!result.contains("\"")){ + str.append(result); + } else if (!(result.startsWith("\"")) && result.endsWith("\"")) { + LOG.error("Syntax error in module {} at line {}: missing '\"'.", getParentModule(treeNode), + context.getStart().getLine()); + } else { + str.append(result.replace("\"", "")); + } + } + return str.toString(); + } + private static String getParentModule(final ParseTree ctx) { ParseTree current = ctx; while (current != null && !(current instanceof Module_stmtContext)) {