Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual

Product codes
SW006021-1
Page of 518
MPLAB
®
 XC8 C Compiler User’s Guide
DS52053B-page 380
 2012 Microchip Technology Inc.
(116) end of file within preprocessor macro argument from line * 
(Preprocessor)
A macro argument has not been terminated. This probably means the closing paren-
thesis has been omitted from a macro invocation. The line number given is the line 
where the macro argument started, for example:
#define FUNC(a, b) func(a+b)
FUNC(5, 6;    /* oops -- where is the closing bracket? */
(117) misplaced constant in #if 
(Preprocessor)
A constant in a #if expression should only occur in syntactically correct places. This 
error is most probably caused by omission of an operator, for example:
#if FOO BAR  /* oops -- did you mean: #if FOO == BAR ? */
(118) stack overflow processing #if expression 
(Preprocessor)
The preprocessor filled up its expression evaluation stack in a #if expression. Simplify 
the expression – it probably contains too many parenthesized subexpressions.
(119) invalid expression in #if line 
(Preprocessor)
This is an internal compiler error. Contact Microchip Technical Support with details.
(120) operator "*" in incorrect context 
(Preprocessor)
An operator has been encountered in a #if expression that is incorrectly placed (two 
binary operators are not separated by a value), for example:
#if FOO * % BAR == 4  /* what is "* %" ? */
  #define BIG
#endif
(121) expression stack overflow at operator "*" 
(Preprocessor)
Expressions in #if lines are evaluated using a stack with a size of 128. It is possible 
for very complex expressions to overflow this. Simplify the expression.
(122) unbalanced parenthesis at operator "*" 
(Preprocessor)
The evaluation of a #if expression found mismatched parentheses. Check the expres-
sion for correct parenthesizing, for example:
#if ((A) + (B)  /* oops -- a missing ), I think */
  #define ADDED
#endif
(123) misplaced "?" or ":"; previous operator is "*" 
(Preprocessor)
A colon operator has been encountered in a #if expression that does not match up 
with a corresponding ? operator, for example:
#if XXX : YYY  /* did you mean:  #if COND ? XXX : YYY */
(124) illegal character "*" in #if 
(Preprocessor)
There is a character in a #if expression that has no business being there. Valid char-
acters are the letters, digits and those comprising the acceptable operators, for 
example:
#if YYY  /* what are these characters doing here? */
  int m;
#endif