Skip to content

Project structure

Clément de La Bourdonnaye edited this page Aug 28, 2020 · 1 revision

Here is some description on how the project is organized in different modules and languages.

Math virtual package

This virtual package contains a small language (Physics.iets3.ext.math) with math expressions to extends the one already defined in kernelf. The language also imports the math jar dependencies used for big decimal operations or dimension exponent.

Base virtual package

This virtual package contains the base of the language to be used with any target language.

  • Physics.java.common : contains java classes used for both the language (interpreter and more) and the Java runtime
  • Physics.dimensions : contains the concepts necessary for using dimensions along with kernelF simpleTypes and math packages
  • Physics.types : contains specific types definition and behavior for the physics language (such as vector, object, world...)
    • accessory model units : S.I. units used in the Physics language
  • Physics : actual physical language, additionally contains :
    • plugin : interpreter for vector expressions
    • accessory model base object : abstract object parent of all objects, contains the defaults for every style
    • accessory model colors : some color definitions to use with the language
  • Physics.genbase : generation scripts and mappings common for every target languages (to apply before the language specific generation)

Java virtual package

This package contains everything needed for java generation.

  • Physics.generation : generation plan for targetting java
  • Physics.genjava : java generator for the physics language, including java generation for iets3 math expressions (which may be implemented later in the project)
  • Physics.devkit.java : devkit to use for Java, contains all the required languages both for the use and the generation

Clone this wiki locally