CoreGenerator.java
/*
* Copyright (C) 2007-2010 J��lio Vilmar Gesser.
* Copyright (C) 2011, 2013-2024 The JavaParser Team.
*
* This file is part of JavaParser.
*
* JavaParser can be used either under the terms of
* a) the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* b) the terms of the Apache License
*
* You should have received a copy of both licenses in LICENCE.LGPL and
* LICENCE.APACHE. Please refer to those files for details.
*
* JavaParser is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*/
package com.github.javaparser.generator.core;
import static com.github.javaparser.ParserConfiguration.LanguageLevel.RAW;
import com.github.javaparser.ParserConfiguration;
import com.github.javaparser.StaticJavaParser;
import com.github.javaparser.generator.core.node.*;
import com.github.javaparser.generator.core.other.BndGenerator;
import com.github.javaparser.generator.core.other.TokenKindGenerator;
import com.github.javaparser.generator.core.quality.NotNullGenerator;
import com.github.javaparser.generator.core.visitor.*;
import com.github.javaparser.utils.Log;
import com.github.javaparser.utils.SourceRoot;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* Generates all generated visitors in the javaparser-core module.
* Suggested usage is by running the run_core_generators.sh script.
* You may want to run_metamodel_generator.sh before that.
*/
public class CoreGenerator {
private static final ParserConfiguration parserConfiguration = new ParserConfiguration().setLanguageLevel(RAW)
// .setStoreTokens(false)
// .setAttributeComments(false)
// .setLexicalPreservationEnabled(true)
;
public static void main(String[] args) throws Exception {
if (args.length != 1) {
throw new RuntimeException("Need 1 parameter: the JavaParser source checkout root directory.");
}
Log.setAdapter(new Log.StandardOutStandardErrorAdapter());
final Path root = Paths.get(args[0], "..", "javaparser-core", "src", "main", "java");
final SourceRoot sourceRoot = new SourceRoot(root, parserConfiguration)
// .setPrinter(LexicalPreservingPrinter::print)
;
StaticJavaParser.setConfiguration(parserConfiguration);
final Path generatedJavaCcRoot =
Paths.get(args[0], "..", "javaparser-core", "target", "generated-sources", "javacc");
final SourceRoot generatedJavaCcSourceRoot = new SourceRoot(generatedJavaCcRoot, parserConfiguration)
// .setPrinter(LexicalPreservingPrinter::print)
;
new CoreGenerator().run(sourceRoot, generatedJavaCcSourceRoot);
sourceRoot.saveAll();
}
private void run(SourceRoot sourceRoot, SourceRoot generatedJavaCcSourceRoot) throws Exception {
new TypeCastingGenerator(sourceRoot).generate();
new GenericListVisitorAdapterGenerator(sourceRoot).generate();
new GenericVisitorAdapterGenerator(sourceRoot).generate();
new GenericVisitorWithDefaultsGenerator(sourceRoot).generate();
new EqualsVisitorGenerator(sourceRoot).generate();
new ObjectIdentityEqualsVisitorGenerator(sourceRoot).generate();
new NoCommentEqualsVisitorGenerator(sourceRoot).generate();
new VoidVisitorAdapterGenerator(sourceRoot).generate();
new VoidVisitorGenerator(sourceRoot).generate();
new VoidVisitorWithDefaultsGenerator(sourceRoot).generate();
new GenericVisitorGenerator(sourceRoot).generate();
new HashCodeVisitorGenerator(sourceRoot).generate();
new ObjectIdentityHashCodeVisitorGenerator(sourceRoot).generate();
new NoCommentHashCodeVisitorGenerator(sourceRoot).generate();
new CloneVisitorGenerator(sourceRoot).generate();
new ModifierVisitorGenerator(sourceRoot).generate();
new PropertyGenerator(sourceRoot).generate();
new RemoveMethodGenerator(sourceRoot).generate();
new ReplaceMethodGenerator(sourceRoot).generate();
new CloneGenerator(sourceRoot).generate();
new GetMetaModelGenerator(sourceRoot).generate();
new MainConstructorGenerator(sourceRoot).generate();
new NodeModifierGenerator(sourceRoot).generate();
new AcceptGenerator(sourceRoot).generate();
new TokenKindGenerator(sourceRoot, generatedJavaCcSourceRoot).generate();
new BndGenerator(sourceRoot).generate();
new NotNullGenerator(sourceRoot).generate();
}
}