Originally Posted By: jcl
In a programming language, all expressions must be inside functions.
That's not true. Neither for programming languages in general, nor for Lite-C. The c standard includes constant expressions for very good reason. And you obviously followed the standard at very least partially:
Code:
#include <acknex.h>

int my_flag = PASSABLE;

void main()
{
	printf("%d",my_flag);
}


You can also replace "PASSABLE" by "(1 << 9)", hence the expression evaluation cannot be done by the precompiler. It already has to be implemented in the compiler. You can even do more complex expressions, like "2 + 2 * 2 % 2". I did some quick tests and the results suggest that you already implemented correct operator precedence for static expressions. I'd love to see this functionality expanded to fully meet the c standard.

@Rakscha
Originally Posted By: jcl
This is also a bug, as the compiler should give a syntax error here.


Always learn from history, to be sure you make the same mistakes again...