diff --git a/tool/src/org/antlr/v4/codegen/JavaTarget.java b/tool/src/org/antlr/v4/codegen/JavaTarget.java index 5d112c8d9..918ffc265 100644 --- a/tool/src/org/antlr/v4/codegen/JavaTarget.java +++ b/tool/src/org/antlr/v4/codegen/JavaTarget.java @@ -30,6 +30,7 @@ package org.antlr.v4.codegen; +import org.antlr.v4.Tool; import org.antlr.v4.tool.ast.GrammarAST; import org.stringtemplate.v4.STGroup; import org.stringtemplate.v4.StringRenderer; @@ -39,10 +40,6 @@ import java.util.HashSet; import java.util.Locale; import java.util.Set; -/** - * - * @author Sam Harwell - */ public class JavaTarget extends Target { protected static final String[] javaKeywords = { @@ -63,7 +60,12 @@ public class JavaTarget extends Target { super(gen, "Java"); } - public Set getBadWords() { + @Override + public String getVersion() { + return Tool.VERSION; // Java and tool versions move in lock step + } + + public Set getBadWords() { if (badWords.isEmpty()) { addBadWords(); } diff --git a/tool/src/org/antlr/v4/codegen/Target.java b/tool/src/org/antlr/v4/codegen/Target.java index 177639c6a..69af70e8b 100644 --- a/tool/src/org/antlr/v4/codegen/Target.java +++ b/tool/src/org/antlr/v4/codegen/Target.java @@ -91,8 +91,10 @@ public abstract class Target { /** ANTLR tool should check output templates / target are compatible with tool code generation. * For now, a simple string match used on x.y of x.y.z scheme. We use a method to avoid mismatches * between a template called VERSION. This value is checked against Tool.VERSION during load of templates. + * + * This additional method forces all targets 4.3 and beyond to add this method. */ - public String getVersion() { return "4.3"; } + public abstract String getVersion(); public STGroup getTemplates() { if (templates == null) {