Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
Description
It seems to me the selection of the Antlr2 or Antlr4 parser could be implemented within a default implementation of ParserPluginFactory instead of introducing ParserVersion with separate get/set on CompilerConfiguration. I don't see the need for static factory methods antlr2() and antlr4() on ParserPluginFactory, their use from CompilerConfiguration and the strange class loading in ParserPluginFactory.
The factory pattern appears to me to be side-stepped in favor of a version constant. Is there still meaning in offering a config option of setting a ParserPluginFactory? Has this been used ever in the past?
Couldn't this suffice for a default in CompilerConfiguration? Then ParserVersion could be dropped.
public ParserPluginFactory getPluginFactory() { if (pluginFactory == null) { pluginFactory = new ParserPluginFactory() { @Override public ParserPlugin createParserPlugin() { return Boolean.getBoolean(GROOVY_ANTLR4_OPT) ? new Antlr4ParserPlugin() : new AntlrParserPlugin(); } } } return pluginFactory; }
Attachments
Issue Links
- links to