Chapter 2
Syntax
Statements
A statement is a call to a
statement macro. It begins with the name of a visible binding whose value is a statement
macro. The statement ends with the word end
optionally followed by the same
name that began the statement. In between is a program fragment whose syntax is determined
by the macro definition. Typically this fragment includes an optional body; for
example, if (ship.ready?) embark(passenger, ship) end if
.
A statement macro can be built-in or user-defined.
A user-defined statement macro is a macro that defines how to implement a statement in terms of other constructs. Advanced programmers often define new statement macros as part of structuring a program in a readable and modular way.
A built-in statement macro is like a user-defined statement
macro but is specified as part of the Dylan language. There are nine built-in statement
macros: begin
, block
,
case
, for
, if
, select
, unless
,
until
, and while
.
An implementation can add new kinds of statements as language extensions. Such a statement takes the form of a user-defined statement macro that is the value of a binding exported by an implementation-defined module.