Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JavaCC: add new CODE_GENERATOR option for the next new design of JavaCC as per version 8.0 #4

Open
wants to merge 56 commits into
base: master
Choose a base branch
from

Conversation

zosrothko
Copy link

Hi

JavaCC 8.0 is the new major version of JavaCC that brings the separation between the parser and various customizable code generator for Java, C++ and C#. Thus, the java-maven-plugin should supports this essential new option.

javacc-maven-plugin can choose which version it want to run. WARNING,
this change makes upward compatibility broken since now one should add
to the <plugin>javacc-maven-plugin<plugin> a dependency on the JavaCC or
JTB artifact to use.
javacc-maven-plugin dependencies to
<dependency>
	<groupId>net.java.dev.javacc</groupId>
	<artifactId>javacc</artifactId>
	<version>5.0</version>
</dependency>
	<dependency>
	<groupId>edu.ucla.cs.compilers</groupId>
	<artifactId>jtb</artifactId>
	<version>1.3.2</version>
	</dependency>
Copy link
Member

@jochenw jochenw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still see pom.xml as one BIG change. Any chance for getting that better?

@jochenw
Copy link
Member

jochenw commented Oct 13, 2019

Please help me understand: What is the benefit of using a parent POM in the it's.? And where does that parent POM come from?

@zosrothko
Copy link
Author

zosrothko commented Oct 13, 2019

I still see pom.xml as one BIG change. Any chance for getting that better?

Nothing has change in the main pom.xml except those 2 dependencies

    <dependency>
      <groupId>net.java.dev.javacc</groupId>
      <artifactId>javacc</artifactId>
      <version>5.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>edu.ucla.cs.compilers</groupId>
      <artifactId>jtb</artifactId>
      <version>1.3.2</version>
      <!--
      NOTE: Only reflectively accessed to avoid dependency on Java 1.5 for compilation.
      -->
      <scope>provided</scope>
    </dependency>

where their respective has been change from compile to provided. This change is mandatory to allow a user of javacc-maven-plugin to choose which version of JavaCC he wants to take for compiling his grammar (same for jtb).

May be you could use KDiff3 to get the real differences?

@zosrothko
Copy link
Author

zosrothko commented Oct 13, 2019

What is the benefit of using a parent POM in the it's.? And where does that parent POM come from?

The parent it pom fixes the JavaCC and JTB artifacts needed for the new version of the javacc-maven-plugin since now for version 2.7, those artifacts should be provided for running the javacc-mamven-plugin as explained above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants