UNDEF

UNDEF <symbol>

The UNDEF directive cancels (undefines) a symbol created by a prior DEFINE, DEFALIAS or DEFTYPEdirective.

For example:

++IFDEF Flavor_of_the_Month$

    ++MESSAGE Out with the old flavor (Flavor_of_the_Month$)

    UNDEF Flavor_of_the_Month$

    DEFINE Flavor_of_the_Month$ = "Marmite"

++ELSE

    ++MESSAGE Flavor of the month program not currently active

++ENDIF

 

Note that in the above case, without the UNDEF, the DEFINE statement would generate a "redefined symbol" error unless the new definition was the same as the prior one. On the other hand, an UNDEF of a symbol that hasn't yet been defined is not considered an error, so the above ++IFDEF would only be necessary or sensible if the objective was to change the flavor of the month only if a flavor of the month had already been established, and otherwise to leave it undefined.

History

2022 June, A-Shell 6.5.1717, compiler edit 994:  UNDEF extended to work on DEFALIAS definitions. It previously worked only for DEFINEs.