7.3.2. Identifiers

[1] identifier = initial (subsequent* final)? | peculiar-identifier

[2] initial = letter | special-initial | added-name-character

[3] letter = a | b | c |...| z | A | B | C |...| Z

[4] special-initial = special | :

[5] special = ! | $ | % | & | * | / | < | = | > | ? | ~ | _ | ^

[6] subsequent = initial | digit | special-subsequent

[7] special-subsequent = . | + | -

[8] final = letter | special | added-name-character | digit | special-subsequent

[9] peculiar-identifier = + | - | ...

Most identifiers allowed by other programming languages are also acceptable in DSSSL. In addition to letters and digits, identifiers may contain the characters $%&*/:<=>?~_^+-. and any characters declared as added-named-characters by the add-name-chars or char-repertoire element type forms. An identifier shall not begin with a character that can begin a number; however, +, -, and ... are identifiers. An identifier shall not end with : (unless the entire identifier is :).

NOTE 6: ... are three period characters and not a single ellipsis character.