What does (define | :) mean in Inno Setup Preprocessor documentation conventions?

Viewed 34

I've been reading through Inno Setup preprocessor documentation and stumbled upon an expression (define | :) in the directive syntax documenting convention: (https://jrsoftware.org/ispphelp/index.php?topic=define)

(define | :) [private | protected | public] <ident> [[ <expr> ]] [[=] <expr>] 

What does (define | :) mean here?

1 Answers

It means that you can use either define or : with the same meaning. The | means "or" in syntax declarations.

So while commonly you would use:

#define AppName "My Program"

You can as well use:

#: AppName "My Program"

Though, I've never seen the latter syntax in use until now.

Also note that the | does not necessarily mean that the two alternatives are equivalent. They typically are not (as is the case of private | protected | public). It's just in this particular case that they are.

Related