1 package com.github.javaparser.generator.core; 2 3 import com.github.javaparser.ParserConfiguration; 4 import com.github.javaparser.StaticJavaParser; 5 import com.github.javaparser.generator.core.node.*; 6 import com.github.javaparser.generator.core.other.TokenKindGenerator; 7 import com.github.javaparser.generator.core.visitor.*; 8 import com.github.javaparser.utils.Log; 9 import com.github.javaparser.utils.SourceRoot; 10 11 import java.nio.file.Path; 12 import java.nio.file.Paths; 13 14 import static com.github.javaparser.ParserConfiguration.LanguageLevel.RAW; 15 16 /** 17 * Generates all generated visitors in the javaparser-core module. 18 * Suggested usage is by running the run_core_generators.sh script. 19 * You may want to run_metamodel_generator.sh before that. 20 */ 21 public class CoreGenerator { 22 private static final ParserConfiguration parserConfiguration = new ParserConfiguration() 23 .setLanguageLevel(RAW) 24 // .setStoreTokens(false) 25 // .setAttributeComments(false) 26 // .setLexicalPreservationEnabled(true) 27 ; 28 main(String[] args)29 public static void main(String[] args) throws Exception { 30 if (args.length != 1) { 31 throw new RuntimeException("Need 1 parameter: the JavaParser source checkout root directory."); 32 } 33 Log.setAdapter(new Log.StandardOutStandardErrorAdapter()); 34 final Path root = Paths.get(args[0], "..", "javaparser-core", "src", "main", "java"); 35 final SourceRoot sourceRoot = new SourceRoot(root, parserConfiguration) 36 // .setPrinter(LexicalPreservingPrinter::print) 37 ; 38 StaticJavaParser.setConfiguration(parserConfiguration); 39 40 final Path generatedJavaCcRoot = Paths.get(args[0], "..", "javaparser-core", "target", "generated-sources", "javacc"); 41 final SourceRoot generatedJavaCcSourceRoot = new SourceRoot(generatedJavaCcRoot, parserConfiguration) 42 // .setPrinter(LexicalPreservingPrinter::print) 43 ; 44 45 new CoreGenerator().run(sourceRoot, generatedJavaCcSourceRoot); 46 47 sourceRoot.saveAll(); 48 } 49 run(SourceRoot sourceRoot, SourceRoot generatedJavaCcSourceRoot)50 private void run(SourceRoot sourceRoot, SourceRoot generatedJavaCcSourceRoot) throws Exception { 51 new TypeCastingGenerator(sourceRoot).generate(); 52 new GenericListVisitorAdapterGenerator(sourceRoot).generate(); 53 new GenericVisitorAdapterGenerator(sourceRoot).generate(); 54 new GenericVisitorWithDefaultsGenerator(sourceRoot).generate(); 55 new EqualsVisitorGenerator(sourceRoot).generate(); 56 new ObjectIdentityEqualsVisitorGenerator(sourceRoot).generate(); 57 new NoCommentEqualsVisitorGenerator(sourceRoot).generate(); 58 new VoidVisitorAdapterGenerator(sourceRoot).generate(); 59 new VoidVisitorGenerator(sourceRoot).generate(); 60 new VoidVisitorWithDefaultsGenerator(sourceRoot).generate(); 61 new GenericVisitorGenerator(sourceRoot).generate(); 62 new HashCodeVisitorGenerator(sourceRoot).generate(); 63 new ObjectIdentityHashCodeVisitorGenerator(sourceRoot).generate(); 64 new NoCommentHashCodeVisitorGenerator(sourceRoot).generate(); 65 new CloneVisitorGenerator(sourceRoot).generate(); 66 new ModifierVisitorGenerator(sourceRoot).generate(); 67 68 new PropertyGenerator(sourceRoot).generate(); 69 new RemoveMethodGenerator(sourceRoot).generate(); 70 new ReplaceMethodGenerator(sourceRoot).generate(); 71 new CloneGenerator(sourceRoot).generate(); 72 new GetMetaModelGenerator(sourceRoot).generate(); 73 new MainConstructorGenerator(sourceRoot).generate(); 74 new NodeModifierGenerator(sourceRoot).generate(); 75 new AcceptGenerator(sourceRoot).generate(); 76 new TokenKindGenerator(sourceRoot, generatedJavaCcSourceRoot).generate(); 77 } 78 } 79