19.11.2014 Views

The Fortress Language Specification - CiteSeerX

The Fortress Language Specification - CiteSeerX

The Fortress Language Specification - CiteSeerX

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

U+0021 EXCLAMATION MARK ! U+0023 NUMBER SIGN #<br />

U+0024 DOLLAR SIGN $ U+0025 PERCENT SIGN %<br />

U+002B PLUS SIGN + U+002D HYPHEN-MINUS −<br />

U+003F QUESTION MARK ? U+0040 COMMERCIAL AT @<br />

U+002A ASTERISK * U+002F SOLIDUS /<br />

U+003C LESS-THAN SIGN < U+003E GREATER-THAN SIGN ><br />

U+007E TILDE ˜<br />

and most (but not all) Unicode characters specified to be mathematical operators (i.e., characters with code<br />

points in the range 2200-22FF) are operators in <strong>Fortress</strong>.<br />

• other characters<br />

Some other classes of characters, which overlap with the ones above, are useful to distinguish:<br />

• control characters are those with Unicode general category Cc;<br />

• ASCII characters are those with code points U+007F and below;<br />

• printable ASCII characters are ASCII characters that are not control characters (i.e., with code points from<br />

U+0020 to U+007E);<br />

• word characters are letters, digits, connecting punctuation, prime characters, and apostrophe;<br />

• restricted-word characters are ASCII letters, ASCII digits, and the underscore character (i.e., ASCII word<br />

characters other than apostrophe);<br />

• hexadecimal digits are the digits and the letters A, B, C, D, E and F;<br />

• operator characters are special operator characters and ordinary operator characters;<br />

• special characters are special non-operator characters and special operator characters;<br />

• enclosing characters are the enclosing operator characters enumerated in Section F.1, left and right parenthesis<br />

characters, and mathematical left and right white square brackets;<br />

• operator combining characters, which combine to form multicharacter enclosing operator tokens, are the following:<br />

U+0028 LEFT PARENTHESIS ( U+0029 RIGHT PARENTHESIS )<br />

U+002A ASTERISK * U+002E FULL STOP .<br />

U+002F SOLIDUS / U+003C LESS-THAN SIGN <<br />

U+003E GREATER-THAN SIGN > U+005B LEFT SQUARE BRACKET [<br />

U+005C REVERSE SOLIDUS \ U+005D RIGHT SQUARE BRACKET ]<br />

U+007B LEFT CURLY BRACKET { U+007C VERTICAL LINE |<br />

U+007D RIGHT CURLY BRACKET }<br />

Forbidden Characters<br />

It is a static error for a <strong>Fortress</strong> program to contain any control character other than the above-listed whitespace<br />

characters, except that the character SUBSTITUTE (U+001A; also known as “control-Z”) is allowed and ignored if it<br />

is the last character of the program.<br />

It is a static error for the following characters to occur outside a comment:<br />

U+0009 CHARACTER TABULATION U+000C LINE TABULATION<br />

U+001C INFORMATION SEPARATOR FOUR U+001D INFORMATION SEPARATOR THREE<br />

U+001E INFORMATION SEPARATOR TWO U+001F INFORMATION SEPARATOR ONE<br />

43

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!