Compiled code is very simple. The aim is to generate quick unambiguous instructions that can be processed quickly by the Macro code interpreter.
Each compiled line starts with the source code pointer. This is a 4 digit number which refer to the Macro code line number which generated the current compiled line; one line of Macro code can, and often does, generate many lines of compiled code (for examples, see sample compiled code).
0003 CALL n002=Difference(@n003|@nBirthdate1)
The source code pointer is then followed by an op-code.
0003 CALL n002=Difference(@n003|@nBirthdate1)
You will sometimes see 2 front slashes followed by some text on the right of a compiled code instruction. All text to the right of the 2 slashes is ignored by the macro interpreter. It is just there to give the person trying to read compiled code some assistance.
0011 CALL nMinicalYear=$0IE(@n_TokenDate) //YearOf
0013 JMP-0003 //GOIF_001
In the first example above, it is perfectly clear to the interpreter that the hexadecimal number $0IE refers to the function YearOf, but it might be less obvious to the average reader. In the second example the compiler comment makes the reason for the JMP more clear; it is going back up to the IF_001 instruction.
See also: comparing macro code and compiled code.
Topic 108170, last updated on 18-Apr-2020