2.8 KiB
Syntax
For information about types, see Types.
For information about literals, see Literals.
For information about assembly, see Using assembly within Millfork programs.
Comments
Comments start with // and last until the end of line.
Declarations
Variable declarations
A variable declaration can happen at either top level of a file (global variables), or a top level of a function (local variables).
Syntax:
[<storage>] <type> <name> [@<address>] [= <initial_value>]
-
<storage>can be only specified for local variables. It can be eitherstack,staticor nothing. See the description of variable storage. -
<address>is a constant expression that defines where in the memory the variable will be located. If not specified, it will be located according to the usual allocation rules.stackvariables cannot have a defined address. -
<initial_value>is a constant expression that contains the initial value of the variable. Only global variables can be initialized that way. The behaviour is undefined when targeting a ROM-based platform.
Constant declarations
const <type> <name> = <value>
TODO
Array declarations
An array is a continuous sequence of bytes in memory.
Syntax:
array <name> [[<size>]] [@<address>] [= <initial_values>]
TODO
Function declarations
A function can be declared at the top level. For more details, see Functions
import statements
TODO
Statements
Expression statement
TODO
if statement
Syntax:
if <expression> {
<body>
}
if <expression> {
<body>
} else {
<body>
}
while and do-while statements
Syntax:
while <expression> {
<body>
}
do {
<body>
} while <expression>
for statements
Warning: for loops are a bit buggy.
Syntax:
for <variable>,<start>,<direction>,<end> {
}
-
<variable>– an already defined numeric variable -
<direction>– the range to traverse:-
to– from<start>inclusive to<end>inclusive, in ascending order (e.g.0,to,9to traverse 0, 1,... 9) -
downto– from<start>inclusive to<end>inclusive, in descending order (e.g.9,downto,0to traverse 9, 8,... 0) -
until– from<start>inclusive to<end>exclusive, in ascending order (e.g.0,until,10to traverse 0, 1,... 9) -
parallelto– the same asto, but the iterations may be executed in any order -
paralleluntil– the same asuntil, but the iterations may be executed in any order
There is no
paralleldownto, because it would do the same asparallelto. -