XXL / XlBuild: Guided Tour 3Eric Lecolinet (elc@enst.fr) |
Besides the fact that it is both interpretable and compilable the XXL Specification Language is also intended to be simpler and much concise than usual X-Window or Motif code. In fact, it can be considered as a kind of "Simple Motif" in that sense that it respects the general philosophy of the Motif toolkit while hiding or simplifying implementation details.
As Motif GUIs consist of trees of widgets, we have adopted a list formalism to represent the textual descriptions of XXL objects. Each XXL object is represented by means of a list whose first member indicates the class of this object. The following members of the list depend on the metaclass of the considered object. For instance, in the case of Widget Objects, the class name is followed by the name of the newly created instance and by the possible children of this object (if any). The parenthood between Objects is thus implicitly defined.
XXL Interface description are not only C-compilable but can also be interpreted by means of xlsh, the XXL Shell. XXL Script files can be executed in the same ways as usual Unix Scripts (by specifying the proper shell at the first line of the script file). This feature provides a simple way to add simple graphical interfaces to Unix commands or other programs (the XXL Language also provides simple mechanisms to call Unix commands and exchange data with them).
Furthermore, XXL Scripts can also be used for early prototyping. The major difference with other scripting language (like for instance Tcl/Tk) is that this text can then be directly included into C or C++ source code without any modification or translation. Furthermore, interactive modification of this code will still be possible by using the XXL Builder.