Guidelines for adding a new language to the syntax zoo
Languages in EMFText's repository
If the language should be hosted in EMFText's language repository:
- Define your language: metamodel, text syntax, Resolvers and additional plugins (e.g., PostProcessors)
- Submit all plugins to the SVN into the EMFText Languages category.
- Add the new language to build scripts:
- build-text-resources.xml : generate-text-resources
- build-text-resources.xml : generate-emftext-languages-metamodel-code (if you defined a new metamodel)
- run-emftext-language-tests.xml : add bin directory path to create-classpath-jar to make all classes of your language are available
- run-emftext-language-tests.xml : run-simple-tests (if you've got an own test plug-in for your language)
- Register your language to the generic language test registry in TestLanguageRegistry. To do so add your meta information class in getMetaInformationsForLanguageOnUpdateSite()
- Add language to distribution build script, define feature, extend update site:
- If the language should be added to the update site:
- Define a feature.xml for your language. Make sure to add ALL plugins to the feature. Commit the feature.xml to the repository here: Build/org.reuseware/features/.
- Add your feature to the site.xml. As initial version number you should use 0.0.0.v0.
- build.xml : build-emftext-languages Add buildplugin commands for ALL plugins of the language and a buildfeature command for the feature.
- If the language should NOT (yet) be added to the update site
- build.xml : build-emftext-languages Add a comment TODO: <Languge Name> to ensure that we reconsider to add the language to the update site in the future (when it has evolved).
- Add a new wiki page named EMFText Concrete Syntax Zoo <Language Name> and link it from an appropriate category in the Syntax Zoo. Enter a description and links to the language into the new page.
- Increase the counter on the Syntax Zoo page by 1.
In the case that the language is so pre-mature that it should not yet appear on the Syntax Zoo page, skip the last step, but add a comment TODO: <Language Name> to the Syntax Zoo wiki code to ensure that we do not forget to add it later.
External Languages
If the language is hosted in another repository:
- Add a comment in the code of the Syntax Zoo wiki page right above Languages headline.
- Add a new wiki page named EMFText Concrete Syntax Zoo <Language Name> and link it from an appropriate category in the Syntax Zoo. Enter a description and links to the language into the new page.
- Increase the counter on the Syntax Zoo page by 1.