st Language Reference
Regular Grammar
( legend )Character Set | ||||
|---|---|---|---|---|
| let | Byte | :: | '\00' .. '\ff'
| |
| let | Control | :: | '\00' .. '\1f' | '\7f' | '\ff'
| |
Basic elements of tokens | ||||
| let | Printable | :: | ||
| ign | Space | :: | " "
| |
| ign | Tab | :: | "\t" | |
| ign | Line | :: | "\n" | "\r\n"
| |
| ign | Page | :: | "\p"
| |
| ign | Etx | :: | "\1a" { Byte }
| |
Definitions and simple tokens | ||||
| let | Letter | :: | 'A' .. 'Z' | 'a' .. 'z' | |
| let | HexDigit | :: | '0' .. '9' | 'a' .. 'f' | |
| let | Digit | :: | '0' .. '9' | |
| let | Normal | :: | ||
| let | Quote | :: | '\'\"\`\\' | |
| tok | Parenthesis | :: | '()[]{}'
| |
| let | Special | :: | Printable - Normal - Parenthesis - Quote - '$#!^' | '\\' | |
| let | Nat | :: | Digit + | |
tokens | ||||
| tok | ASGOP | :: | "_" | ":=" | |
| tok | BINOP | :: | "-" | ( Special [ Special ] ) - ASGOP | |
| tok | CHRLIT | :: | "$" Printable | |
| tok | IDENT | :: | ||
| tok | INTLIT | :: | ||
| tok | FLTLIT | :: | ( INTLIT [ "." Nat ] [ "e" [ "-" ] Nat ] ) - INTLIT | |
| tok | KEYWRD | :: | IDENT ":" | |
| tok | SYMKEY | :: | ||
| tok | STRLIT | :: | "\'" { Byte - '\'' | "\'\'" } "\'" | |
| com | Comment | :: | "\"" { Byte - '\"' | "\"\"" } "\"" | |
| tok | delim | :: | '!#^' | |
Context-free Grammar
( legend )| start | file | :: | ||
| let | classes | :: |
| |
| | | ||||
| let | class | :: |
| |
| | | ||||
| let | methods | :: |
| |
| | | ||||
Method Definition | ||||
|---|---|---|---|---|
| let | method | :: |
| |
| | | ||||
| let | prim | :: | < primitive: INTLIT >
| |
Message Pattern (Formal Parameter List) | ||||
| let | msgpat | :: |
| |
| | | ||||
| | | ||||
| let | unasel | :: |
| |
| let | binsel | :: | >
| |
| | | ||||
| | | | | |||
| | | < | |||
| let | var | :: |
| |
| let | keyvars | :: |
| |
| | | ||||
| let | keyword | :: |
| |
Temporaries ----------------- | ||||
| let | temps | :: | | vars |
| |
| | | ||||
| let | vars | :: |
| |
| | | ||||
Statements ----------------- | ||||
| let | stats | :: |
| |
| | | ||||
| let | stats1 | :: |
| |
| | | ||||
| let | stat | :: | ||
| | | ^ exp | |||
| let | exp | :: |
| |
| | | ||||
Expressions -------------------------------------- | ||||
| let | simexp | :: |
| |
| | | ||||
| | | ||||
| let | exp0 | :: |
| |
| | | ( exp ) | |||
| | | ||||
| | | ||||
| let | msgexp | :: |
| |
| | | ||||
| | | ||||
| let | unaexp | :: |
| |
| let | unanoj | :: |
| |
| | | ||||
| let | binexp | :: |
| |
| let | binobj | :: |
| |
| | | ||||
| let | keyexp | :: |
| |
| let | keylst | :: |
| |
| | | ||||
| let | casexp | :: |
| |
| let | msglst | :: |
| |
| | | ; msgelt | |||
| let | msgelt | :: |
| |
| | | ||||
| | | ||||
Block --------------------------------------- | ||||
| let | block | :: |
| |
| let | blkvars | :: |
| |
| | | ||||
| let | blkvars1 | :: |
| |
| | | ||||
Literals -------------------------------- | ||||
| let | lit | :: |
| |
| | | ||||
| | | # array | |||
| | | ||||
| | | ||||
| let | number | :: |
| |
| | | ||||
| let | symcon | :: | # symbol
| |
| let | symbol | :: |
| |
| | | ||||
| | | ||||
| | | ||||
| let | array | :: | ( aryelts )
| |
| let | aryelts | :: |
| |
| | | ||||
| let | aryelt | :: |
| |
| | | ||||
| | | ||||
| | | ||||
| | | ||||

