9.3 Compile-Time Constants and Variables

Just as the runtime language does, the compile-time language supports constants and variables. You declare compile-time constants in the const section, just as you would with the runtime language. You declare compile-time variables in the val section. Objects you declare in the val section are constants to the runtime language, but remember that you can change the value of an object you declare in the val section throughout the source file. Hence the term "compile-time variable." See Chapter 4 for more details.

The CTL assignment statement (?) computes the value of the constant expression to the right of the assignment operator (:=) and stores the result into the val object name appearing immediately to the left of the assignment operator.[118] This example code may appear anywhere in your HLA source file, not just in the val section of the program.

?ConstToPrint := 25;
     #print( "ConstToPrint = ", ConstToPrint )
     ?ConstToPrint := ConstToPrint + 5;
     #print( "Now ConstToPrint = ", ConstToPrint )


[118] If the identifier to the left of the assignment operator is undefined, HLA will automatically declare this object at the current scope level.