The lexical syntax of SDL is identical to that of C++ with the exception that the sets of keywords, operators, and other separators are different. In particular, both forms of C++ comment are supported, and comments and whitespace are handled exactly as in C++.
Operators and separators are drawn from the following set.
% ) , : < > ] | & * - :: << >> ^ } ( + / ; = [ { ~
Keywords are any of the following words, plus the word int .
all export long sequence any external lref set as false module short attribute float octet string bag import ordered_by struct boolean in out switch case index override true char indexable private typedef class inout protected union const interface public unsigned default inverse ref use double list relationship void enum