Search in sources :

Example 1 with AntlrOptions

use of org.eclipse.xtext.generator.parser.antlr.AntlrOptions in project xtext-eclipse by eclipse.

the class XtextAntlrIDEAGeneratorFragment method generate.

@Override
protected void generate(final Grammar grammar, final List<Object> parameters, final Xtend2ExecutionContext ctx) {
    this._xtextIDEAGeneratorExtensions.installOutlets(ctx, this.ideaProjectPath, this.encoding, this.getNaming().getLineDelimiter());
    final Object options = IterableExtensions.<Object>head(parameters);
    if ((options instanceof AntlrOptions)) {
        this._psiAntlrGrammarGenerator.generate(grammar, ((AntlrOptions) options), ctx);
        final Outlet srcGenOutlet = this._xtextIDEAGeneratorExtensions.getSrcGenOutlet(ctx);
        final String srcGenPath = srcGenOutlet.getPath();
        final String encoding = srcGenOutlet.getFileEncoding();
        StringConcatenation _builder = new StringConcatenation();
        _builder.append(srcGenPath);
        _builder.append("/");
        String _asPath = this._naming.asPath(this._psiAntlrGrammarGenerator.getGrammarFileName(grammar));
        _builder.append(_asPath);
        _builder.append(".g");
        final String absoluteGrammarFileName = _builder.toString();
        this.addAntlrParam("-fo");
        this.addAntlrParam(absoluteGrammarFileName.substring(0, absoluteGrammarFileName.lastIndexOf("/")));
        this.getAntlrTool().runWithEncodingAndParams(absoluteGrammarFileName, encoding, this.getAntlrParams());
        final Charset charset = Charset.forName(encoding);
        this.simplifyUnorderedGroupPredicatesIfRequired(grammar, absoluteGrammarFileName, charset);
        this.splitParserAndLexerIfEnabled(absoluteGrammarFileName, charset);
        this.suppressWarnings(absoluteGrammarFileName, charset);
        this.normalizeLineDelimiters(absoluteGrammarFileName, charset);
        this.normalizeTokens(absoluteGrammarFileName, charset);
    }
}
Also used : Outlet(org.eclipse.xpand2.output.Outlet) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) Charset(java.nio.charset.Charset) AntlrOptions(org.eclipse.xtext.generator.parser.antlr.AntlrOptions)

Aggregations

Charset (java.nio.charset.Charset)1 Outlet (org.eclipse.xpand2.output.Outlet)1 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)1 AntlrOptions (org.eclipse.xtext.generator.parser.antlr.AntlrOptions)1