Search code examples
syntaxinno-setupdirectivepreprocessor

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


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?


Solution

  • 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.