Self Handbook for Self 4.5.0 documentation

Syntax overview

«  Lexical overview   ::   Contents   ::   Built-in types  »

Syntax overview

expression constant | unary-message | binary-message | keyword-message | ‘(’ expression ‘)’
constant self | number | string | object
unary-message receiver unary-send | resend ‘.’ unary-send
unary-send identifier
binary-message receiver binary-send | resend ‘.’ binary-send
binary-send operator expression
keyword-message receiver keyword-send | resend ‘.’ keyword-send
keyword-send small-keyword expression { cap-keyword expression }
receiver [ expression ]
resend resend | identifier
object regular-object | block
regular-object ‘(’ [ ‘|’ [ ‘{’ ‘}’ ‘=’ string ] slot-list ‘|’ ] [ code ] ‘)’
block ‘[’ [ ‘|’ slot-list ‘|’ ] [ code ] ‘]’
slot-list { unannotated-slot-list | annotated-slot-list }
annotated-slot-list ‘{’ string slot-list ‘}’
unannotated-slot-list { slot ‘.’} slot [ ‘.’ ]
code { expression ‘.’} [ ‘^’ ] expression [ ‘.’ ]
slot arg-slot | data-slot | binary-slot | keyword-slot
arg-slot argument-name
data-slot slot-name | slot-name ‘<-’ expression | slot-name ‘=’ expression
unary-slot slot-name ‘=’ regular-object
binary-slot operator ‘=’ regular-object | operator [identifier] ‘=’ regular-object
keyword-slot small-keyword {cap-keyword} ‘=’ regular-object | small-keyword identifier {cap-keyword identifier} ‘=’ regular-object
slot-name identifier | parent-name
parent-name identifier ‘*’

«  Lexical overview   ::   Contents   ::   Built-in types  »