Added tracking of order by which tokens are processed by lexical analyser.
This helps in correctly formating error messages when constructs begin in one file, and end in another.
FUNCTION WEIGH : WORD (* BCD encoded *)
VAR_INPUT (* "EN" input is used to indicate "scale ready" *)
weigh_command : BOOL;
gross_weight : WORD ; (* BCD encoded *)
tare_weight : INT ;
END_VAR
(* Function Body *)
LD weigh_command
JMPC WEIGH_NOW
ST ENO (* No weighing, 0 to "ENO" *)
RET
WEIGH_NOW: LD gross_weight
BCD_TO_INT
SUB tare_weight
INT_TO_BCD (* Return evaluated weight *)
ST WEIGH
END_FUNCTION (* Implicit "ENO" *)