c: Store contextual define as global variable

Since we can only parse one #define body at a time (no recursion/nesting),
it can be a global var, making the code a little simpler.
Refuse scope blocks inside expressions

Previously the C parser accepted GCC's statement-expressions (scope blocks
inside parentheses inside expressions), but then we generated bad FB code.
Statement-expressions can't be translated to FB - now a parser error will
be shown instead.