CONTENTS
4.4 Source File Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4.1 Language Version Declaration . . . . . . . . . . . . . . . . . . . . . . . 25
4.4.2 Device Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4.3 Source File Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.5 Parameter Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.6 Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.7 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7.1 Input and Output Parameters . . . . . . . . . . . . . . . . . . . . . . . 29
4.7.2 Calling Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.7.3 Methods as Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.7.4 External Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.8 Data Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.9 Object Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.9.1 Bank Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.9.2 Register Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.9.3 Field Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.10 Conditional Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.11 Global Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.11.1 Import Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.11.2 Template Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.11.3 Bitorder Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.11.4 Constant Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.11.5 Loggroup Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.11.6 Typedef Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.11.7 Struct Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.11.8 Extern Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.11.9 Header Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.11.10 Footer Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.12 Comparison to C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.13 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.13.1 Delete Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.13.2 Try Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.13.3 Throw Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.13.4 Call Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.13.5 Inline Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.13.6 After Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.13.7 Log Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.13.8 Assert Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.13.9 Error Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.13.10 Foreach Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.13.11 Select Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.14 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.14.1 The Undefined Constant . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.14.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.14.3 New Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
DML 1.2 Reference Manual 4