Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "TCS/Language Project"
m (→Launching the Injector and the Extractor: re-added injection script uri and updated description) |
(added section for plugin builder) |
||
Line 6: | Line 6: | ||
** A compiler (e.g., in ATL, or in [[ACG]]). | ** A compiler (e.g., in ATL, or in [[ACG]]). | ||
− | + | This page explains how to create, and build a TCS Language Project. | |
+ | There are two main possibilities: | ||
+ | * [[TCS/Language_Project#Creating_a_Language_Project_For_Plugin_Builder|Using the plugin builder]]: this solution is simpler to use but offers fewer features (e.g., no ACG compiler, no metamodel extension). It is recommended for new TCS users to start with this solution if they do not need advanced features. It is still possible to switch to the ant-based builder later. | ||
+ | * [[TCS/Language_Project#Creating_a_Language_Project_For_Ant-based_Builder|Using the ant-based builder]]: this solution is more complex to use but offers more features. | ||
− | This section details the steps required to create a language project. | + | ==Creating a Language Project For Plugin Builder== |
+ | |||
+ | This section details the steps required to create a language project for use with the plugin builder. | ||
+ | It is necessary to install the [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/org.eclipse.gmt.tcs/plugins/org.eclipse.gmt.tcs.builder/ TCS Builder plugin], and it is recommended to install the [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/org.eclipse.gmt.tcs/plugins/org.eclipse.gmt.tcs.wizard/ TCS Wizard plugin] (information on how to build the project manually not available yet). | ||
+ | You will need to checkout the AMMACore project in your workspace (see [[TCS/Language_Project#Checking_out_the_Required_Projects|the corresponding section]] below). | ||
+ | |||
+ | Use the wizard to create a TCS Language Project: File->New->Project...->ATL->TCS Language Project. | ||
+ | This will create the directory structure, as well as set sample KM3 and TCS files that need to be modified. | ||
+ | Note that everything is rebuilt each time you save the KM3 or TCS file. | ||
+ | |||
+ | ==Creating a Language Project For Ant-based Builder== | ||
+ | |||
+ | This section details the steps required to create a language project for use with the ant-based builder. | ||
Whenever the name of the language appears, we use ''MyLanguage''. | Whenever the name of the language appears, we use ''MyLanguage''. | ||
Revision as of 19:11, 23 October 2007
A TCS Language Project is an Eclipse project (typically with the ATL nature), which contains:
- A KM3 metamodel defining the abstract syntax of the language.
- A TCS model defining the concrete syntax of the language.
- Optionally, such a project may also contain:
- Constraints (e.g., in OCL, as part of an ATL transformation).
- A compiler (e.g., in ATL, or in ACG).
This page explains how to create, and build a TCS Language Project. There are two main possibilities:
- Using the plugin builder: this solution is simpler to use but offers fewer features (e.g., no ACG compiler, no metamodel extension). It is recommended for new TCS users to start with this solution if they do not need advanced features. It is still possible to switch to the ant-based builder later.
- Using the ant-based builder: this solution is more complex to use but offers more features.
Contents
Creating a Language Project For Plugin Builder
This section details the steps required to create a language project for use with the plugin builder. It is necessary to install the TCS Builder plugin, and it is recommended to install the TCS Wizard plugin (information on how to build the project manually not available yet). You will need to checkout the AMMACore project in your workspace (see the corresponding section below).
Use the wizard to create a TCS Language Project: File->New->Project...->ATL->TCS Language Project. This will create the directory structure, as well as set sample KM3 and TCS files that need to be modified. Note that everything is rebuilt each time you save the KM3 or TCS file.
Creating a Language Project For Ant-based Builder
This section details the steps required to create a language project for use with the ant-based builder. Whenever the name of the language appears, we use MyLanguage.
Checking out the Required Projects
The first step is to check out the AMMAScripts, and AMMACore projects in your workspace, if you do not have them already.
To do this, you can connect anonymously by CVS to repository /cvsroot/technology on server dev.eclipse.org using the pserver protocol. Then, you can checkout the two projects available in org.eclipse.gmt/org.eclipse.gmt.tcs/scripts/.
NB: Some external libraries are required, please refer to the README.txt file in the AMMAScripts project for more details.
Creating the Directory Structure
- Create an ATL project:
- Open: File->New->ATL Project
- Name the project like your language (e.g., MyLanguage)
- Create the following folders and files in your project:
- MyLanguage/ (this is the project we just created)
- Metamodel/
- MyLanguage.km3 (you can copy and paste SampleLanguage.km3 and rename it)
- Samples/
- <sample programs written in your language, with the corresponding file extension>
- Syntax/
- MyLanguage.tcs (you can copy and paste SampleLanguage.tcs and rename it)
- Metamodel/
- build.properties: it should contain the two paremeters showed below
- MyLanguage/ (this is the project we just created)
Once you finish, your project looks like the one besides (the .externalToolBuilders/ folder is created by Eclipse)
Adding the Language Builder
Building a language involves:
- Compiling its KM3 metamodel to Ecore.
- Compiling its TCS model into a parser.
- Optionally compiling its ACG compiler.
Here are the steps to follow to add the Language Builder to the project:
- Creating the builder:
- Right-click on your language project (e.g., MyLanguage) and select "Properties".
- Go to the "Builders" section.
- Click "New..."
- Select "Ant Build"
- Click "OK"
- Configuring the builder:
- Set the name of the builder to "MyLanguage Language Builder"
- In the "Main" tab:
- Set "Buildfile" to "${workspace_loc:/AMMAScripts/build.dsl.xml}"
- Set "Base Directory" to "${workspace_loc:/MyLanguage}"
- In the "Targets" tab:
- Set "During a Clean" to target "clean"
- In the "Classpath" tab:
- Add all the jars from the "/AMMAScripts/libs/" folder
- In the "JRE" tab:
- Check "Run in the same JRE as the workspace"
- Click "OK"
- Set the language builder before any other builder
Launching the Injector and the Extractor
To inject (text to model) or extract (model to text) your files, you can use the following scripts as example: