← Back to context

Comment by lerno

14 days ago

Oh, I think you missed something then:

There is both `$if` and `$switch` compile time statements for this: https://c3-lang.org/generic-programming/compiletime/#if-and-...

At the top level and `@if` attribute is used to achieve the same thing: https://c3-lang.org/language-common/attributes/#if

Ah. The top-level lang description claims “No preprocessor”, but my definition of that word doesn’t appear to be the same as yours :/

  • The difference here is that a preprocessor runs before parsing and semantic analysis. In C3 compile time if runs in the analysis step, so after parsing.

    So the macros and compile time execution occurs after parsing in C3, but in C everything happens at lexing, before the code is parsed.