Adding language support to Jammy

Faylixe edited this page Nov 5, 2015 · 13 revisions

Addon API

Jammy provides an API for extending supported language. Such extension should be implemented in a dedicated Eclipse plugin which will contribute to the API extension point. Here is the associated workflow for a problem solving execution :

  • Creating a project
  • Creating a solver file
  • Creating an object that is in charge of executing the solver file with provided input

ILanguageManager

A language manager provides required features for supporting a language in Jammy. In order to do so, the following ILanguageManager interface should be implemented :

ILanguageManager

As you can see, three methods are defined :

  • A method that is in charge of creating a valid IProject instance, this project is specific to a given round.
  • A method that is in charge of creating a valid IFile instance, this file will correspond to the solver source file, user should work on.
  • A method for creating an ISolverRunner object.

ISolverRunner

ISolverRunner interface is used in order to manage solver execution, it consists in a method that starts the solver file, for a given input. And a boolean method that indicates if the execution is terminated or not.

ISolverRunner

Extension point

Associated OSGi extension point, consists in providing a valid ILanguageManager implementation, and a language name.

Process based addon

Adding a language to Jammy can be done in two ways :

  • Integrating any Eclipse API
  • Implementing a simple process based language execution

For example, Python language could be integrated through PyDev plugin, or by simply running Python binary through command line.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.