From 961f087d7ad5bf081c90089dc99a86b7036a04bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Tue, 25 Oct 2016 10:31:04 +0200 Subject: [PATCH] Allow paths as tokenVocab option --- tool/src/org/antlr/v4/Tool.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tool/src/org/antlr/v4/Tool.java b/tool/src/org/antlr/v4/Tool.java index 244126868..e60fcbca1 100644 --- a/tool/src/org/antlr/v4/Tool.java +++ b/tool/src/org/antlr/v4/Tool.java @@ -521,6 +521,19 @@ public class Tool { // Make grammars depend on any tokenVocab options if ( tokenVocabNode!=null ) { String vocabName = tokenVocabNode.getText(); + // Strip quote characters if any + int len = vocabName.length(); + int firstChar = vocabName.charAt(0); + int lastChar = vocabName.charAt(len - 1); + if (len >= 2 && firstChar == '\'' && lastChar == '\'') { + vocabName = vocabName.substring(1, len-1); + } + // If the name contains a path delimited by forward slashes, + // use only the part after the last slash as the name + int lastSlash = vocabName.lastIndexOf('/'); + if (lastSlash >= 0) { + vocabName = vocabName.substring(lastSlash + 1); + } g.addEdge(grammarName, vocabName); } // add cycle to graph so we always process a grammar if no error