Extending the SADL Grammar and IDE

Last revised 10/20/2020.

It is possible to extend the SADL grammar and IDE to provide additional language and editor capabilities on top of SADL. Examples of this include GE Aviations SADL Requirements Language (SRL), part of the ASSERT(TM) Requirements Capture Environment (RCE) (see https://ieeexplore.ieee.org/document/8049134, https://ieeexplore.ieee.org/document/8102059) and the DARPA ASKE Dialog grammar and ANSWER IDE.

The basic process for accomplishing such an extension is as follows:

  1. Create a new Xtext project.
  2. Make the resulting Eclipse plugin development projects Maven projects.
  3. Make the new grammar import the SADL grammar as shown in this example from Dialog

    Note especially lines 40, 43, 47-48. References to SADL gramamr elements are expressed  as, for example, "sadl::SadlModel". Note that "sadl::SadlModelElement" includes some elements from the SADL grammar, lines 53-55, and new model elements, lines 56-72.

  4. Many of the classes, such as the model processor and model validators, can be extensions of the SADL project classes. For example;

The Dialog project should provide many useful examples of how SADL can be extended. Xtext experts such as those at TypeFox can often be an efficient way to get extension projects setup so that developers can focus on the content of the envisioned grammar and what it generates during model processing.