Download Latest Version sf.eclipse.javacc-1.6.1-updatesite.zip (11.2 MB)
Email in envelope

Get an email when there's a new version of JavaCC Eclipse Plugin

Name Modified Size InfoDownloads / Week
Parent folder
README_Core.md 2023-07-04 5.7 kB
Totals: 1 Item   5.7 kB 0

sf.eclipse.javacc.core project description

History

Created 02-03/2021. 1.6.0. Updated 07/2023. 1.6.0.

The Core plug-in does not refer to any Eclipse UI package.
The Core plug-in manages the project nature, build (full/incremental) and compile processings, the external jars selection, the command line launching, the problem markers recording and the derived files handling.

Source folders structure

  • src-plugin: source code:
    • .: constants
    • base: base classes and interfaces, for project nature, building, compiling (exported)
    • headless: implementations / extensions of base interfaces / classes for headless builds
  • .settings: standard project settings files
  • doc: license file
  • jars: external jars (javacc & jtb jars) to be embedded in the plug-in, which can be used by the plug-in user to compile its grammars (but which are not used by the plug-in for its internal processings)
  • META-INF: standard project META-INF files
  • /:
    • standard plug-in xml & i18n properties & project files
    • README file

Plug-in Overview, Dependencies, Runtime, Extension Points, Build

This plug-in uses standard MANIFEST.MF manifest file.

It defines interfaces IActivator, IConsole and class JPlugin, which are used by both plug-ins.

It uses class PluginActivator, which extends Plugin.

This plug-in's class PluginActivator is different from the corresponding one UIPluginActivator in the UI plug-in: it instantiates a different IConsole, a SystemConsole, which just prints the console output on the standard out.

Runtime settings show that the plug-in exports the .& base packages.
Dependencies and build settings do not show anything non standard.
No extension points are defined.

Plug-in Extensions

This plug-in uses standard plugin.xml configuration file.
This plug-in uses 3 extensions.

Nature

point="org.eclipse.core.resources.natures"
class="sf.eclipse.javacc.core.base.Nature"

This extension defines the class Nature used to set/remove the JavaCC project nature. The nature is used by the Workbench to identify the builder.
Nature.configure() adds a new ICommand set with Builder.

Builder

point="org.eclipse.core.resources.builders"
class="sf.eclipse.javacc.core.base.Builder"

This extension defines the class Builder used to build from a JavaCC file.
Builder extends IncrementalProjectBuilder and is called by the Workbench to compile JavaCC source files (jj/jjt/jtb) and derived files (jj, for jjt/jtb files) when building projects.
It is also used to compile files on commands triggered from the menu, toolbar and contextual menu on a Resource.

Builder uses Compiler, to compile files.
Compiler uses:

  • Checksum, to compute JavaCC files checksums,
  • DirList, to get derived files,
  • IProblem and Problem, to process the compilation report problems,
  • IConsole, to display compilation command and output on a JavaCC specific console.

Application

point="org.eclipse.core.runtime.applications"
class="sf.eclipse.javacc.core.headless.Application"

This extension defines class Application, which is used to manage this plug-in's launches.
It parses command line arguments and runs the corresponding commands: arguments can be multiple and of:
- help: to print the command line arguments usage - clean <project>: to perform a project clean build - full_build <project>: to perform a project full build - incr_build <project>: to perform a project incremental build

How to build

Build the html documents manually with the ant script build_core_html.xml or automatically with the corresponding Builder.

Build the project for the update site though Admin_Guide.

Source: README_Core.md, updated 2023-07-04