Commit Graph

19 Commits

Author SHA1 Message Date
Kenneth Graunke 1b85c46bcf glcpp: Initialize error state. 2010-06-21 13:55:12 -07:00
Kenneth Graunke 332fc47dc0 glcpp: Accept #elif without an expression if the expression doesn't matter.
Issue a warning.  nVidia's compiler seems to accept this; apparently
GCC < 4.4 did as well: http://gcc.gnu.org/gcc-4.4/porting_to.html
2010-06-21 12:41:05 -07:00
Kenneth Graunke 26e761edb2 glcpp: Rework handling of "defined" operator.
It's now done in the grammar, and as a result, can easily handle
parenthesis.  defined ( identifier ) is now supported.

Fixes glcpp/tests/065-if-defined-parens.c.
2010-06-21 12:41:05 -07:00
Kenneth Graunke 6587574354 glcpp: Ignore junk tokens at end of #ifdef/#ifndef (with warning)
Both nVidia's compiler and GCC accept this.
Fixes CorrectPreprocess11.frag.
2010-06-21 12:41:05 -07:00
Kenneth Graunke 33eaa3e0b3 glcpp: Rename "errors" to "info_log."
Eventually, we'll want to be be able to print out warnings as well.
2010-06-21 12:38:39 -07:00
Kenneth Graunke e8e93a4543 glcpp: Remove calls to exit().
Calling exit() would be really bad once integrated into mesa.  Even in
the standalone binary, we want to print the error log first.

Since each case already flags an error, compilation will still fail,
but it may go on (with something fudged) and generate more errors.
2010-06-21 12:31:03 -07:00
Kenneth Graunke 0774523d18 glcpp: Add line locations to "Unterminated #if" error message. 2010-06-21 12:31:03 -07:00
Kenneth Graunke 8a132aa08b glcpp: Add line locations to various mismatched #if error messages. 2010-06-21 12:31:03 -07:00
Kenneth Graunke dcdf62f1c6 glcpp: Add line locations to "reserved name" error messages. 2010-06-21 12:31:03 -07:00
Kenneth Graunke ca9e5fce25 glcpp: Print locations in error messages where possible. 2010-06-21 12:31:03 -07:00
Kenneth Graunke f1e6c069fa glcpp: Introduce new glcpp_error function. 2010-06-21 12:31:02 -07:00
Kenneth Graunke b78c9ddfbf glcpp: Set locations on tokens. 2010-06-21 11:31:56 -07:00
Kenneth Graunke 465e03ee07 glcpp: Add plumbing to support line locations. 2010-06-21 11:31:55 -07:00
Kenneth Graunke f70f60739a glcpp: Add %error-verbose. 2010-06-21 11:31:55 -07:00
Kenneth Graunke e0e429fca3 glcpp: Build a reentrant parser. 2010-06-21 11:31:55 -07:00
Kenneth Graunke 739ba06680 glcpp: Complain about unrecognized directives. 2010-06-21 11:31:55 -07:00
Kenneth Graunke 4c8a1af811 glcpp: Output to a buffer and error log rather than directly printing.
In the standalone case, simply print the buffers when done.
2010-06-21 11:25:50 -07:00
Kenneth Graunke 0656f6b875 glcpp: Fix a case of == where = probably ought to be.
Caught by a GCC warning.
2010-06-21 11:25:50 -07:00
Kenneth Graunke 6f510a49d2 Merge Carl's preprocessor into the glcpp subdirectory. 2010-06-21 11:22:11 -07:00