summaryrefslogtreecommitdiff
path: root/glcpp
AgeCommit message (Collapse)Author
2010-06-23preprocessor: Initialize a potentially uninitialized variable.Carl Worth
My current reading of the relevant static functions suggests that last is never used without being uninitialized, (we only use it if the expansion function returned non-NULL and the expansion functions always set it before returning non-NULL). Apparently gcc isn't coming to the same conclusion. Initializing this to NULL nicely quites gcc and will guarantee a nice, early segfault if my anaylsis turns out to be wrong.
2010-06-23preprocessor: Remove dead code _token_list_lengthCarl Worth
As gcc noticed, this function is not currently being used. Good-bye.
2010-06-23preprocessor: Remove dead code _string_list_append_listCarl Worth
As gcc noticed, this function is not currently being used. Good-bye.
2010-06-23glcpp: Support line continuations within preprocessor directives.Kenneth Graunke
Fixes CorrectPreprocess5.frag.
2010-06-23glcpp: Make standalone binary use preprocess().Kenneth Graunke
This prevents the two code paths from getting out of sync. Also, future work will need the shader source as a string anyway. Unfortunately, this copies and pastes load_text_file from main.cpp, with small changes (support for reading from stdin, talloc).
2010-06-23glcpp: Fix "dangerous trailing context" warning.Kenneth Graunke
Flex couldn't be sure whether "def" and "ndef" were part of the #ifdef and #ifndef patterns or the trailing context of the #if pattern.
2010-06-23glcpp: Recognize plain "//" as a comment.Kenneth Graunke
Found in glsl-orangebook-ch06-bump.(frag|vert). This was resulting in the comments getting passed through to the main compiler's lexer.
2010-06-22Add missing build products to gitignoreIan Romanick
2010-06-21glcpp: Initialize error state.Kenneth Graunke
2010-06-21glcpp: Accept #elif without an expression if the expression doesn't matter.Kenneth Graunke
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-21glcpp: Print to the main compiler's infolog, not stdout.Kenneth Graunke
2010-06-21Use yy_scan_string and stop caring about shader->SourceLen.Kenneth Graunke
We had to call strlen on the preprocessed source, which seemed a bit pointless; also, we updated shader->SourceLen but not shader->Source, which was even more confusing. Just leave both untouched.
2010-06-21glcpp: Rework handling of "defined" operator.Kenneth Graunke
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-21glcpp/tests: Add a test for #if defined (identifier)Kenneth Graunke
Previously we only tested #if defined identifier (without parenthesis).
2010-06-21glcpp: Ignore junk tokens at end of #ifdef/#ifndef (with warning)Kenneth Graunke
Both nVidia's compiler and GCC accept this. Fixes CorrectPreprocess11.frag.
2010-06-21glcpp: Add glcpp_warning for printing warnings to the info log.Kenneth Graunke
2010-06-21glcpp: Add boolean 'error' flag.Kenneth Graunke
We used to check if the info log is non-empty, but when we print warnings, this will no longer be valid.
2010-06-21glcpp: Rename "errors" to "info_log."Kenneth Graunke
Eventually, we'll want to be be able to print out warnings as well.
2010-06-21glcpp: Don't include newlines as part of #version-passthrough.Kenneth Graunke
Fixes glcpp/tests/064-version.c.
2010-06-21glcpp/tests: Add a test for #version followed by #define.Kenneth Graunke
This isn't really a C file, but...that's probably okay.
2010-06-21glcpp: Fix line and column numbering.Kenneth Graunke
Lines were off by one, and column numbering was completely daft.
2010-06-21glcpp: Remove calls to exit().Kenneth Graunke
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-21glcpp: Add line locations to "Unterminated #if" error message.Kenneth Graunke
2010-06-21glcpp: Add line locations to various mismatched #if error messages.Kenneth Graunke
2010-06-21glcpp: Add line locations to "reserved name" error messages.Kenneth Graunke
2010-06-21glcpp: Print locations in error messages where possible.Kenneth Graunke
2010-06-21glcpp: Introduce new glcpp_error function.Kenneth Graunke
2010-06-21glcpp: Set locations on tokens.Kenneth Graunke
2010-06-21glcpp: Set line locations in the lexer.Kenneth Graunke
2010-06-21glcpp: Add plumbing to support line locations.Kenneth Graunke
2010-06-21glcpp: Add %error-verbose.Kenneth Graunke
2010-06-21glcpp: Actually support #ifdef and #ifndef.Kenneth Graunke
Strangely, the lexer never created these tokens, even though the parser already had code to handle them.
2010-06-21glcpp: Build a reentrant parser.Kenneth Graunke
2010-06-21glcpp: Print errors on stdout instead of stderr (non-standalone version).Kenneth Graunke
Otherwise, piglit marks tests as "warn" when the shader was (correctly) failing.
2010-06-21glcpp/tests: Add extra newline at the end of expected output.Kenneth Graunke
This newline at EOF is harmless and generated by the previous commit.
2010-06-21glcpp: Handle missing newline at EOF.Kenneth Graunke
Fixes CorrectFuncOverload.vert.
2010-06-21glcpp: Complain about unrecognized directives.Kenneth Graunke
2010-06-21glcpp: Pass #version, #extension, and #pragma directives through unchanged.Kenneth Graunke
Let the main compiler's lexer/parser handle them.
2010-06-21Make the main compiler call the preprocessor.Kenneth Graunke
By using a single function, the main compiler doesn't need to include glcpp.h, which currently has a lot of details about the preprocessor internals. In particular, this prevents the two yacc grammars from seeing each other, which would be rather messy to sort out.
2010-06-21glcpp: Add support for lexing from a string.Kenneth Graunke
The standalone binary still reads from stdin, however.
2010-06-21glcpp: Output to a buffer and error log rather than directly printing.Kenneth Graunke
In the standalone case, simply print the buffers when done.
2010-06-21glcpp: Fix a case of == where = probably ought to be.Kenneth Graunke
Caught by a GCC warning.
2010-06-21Add glcpp to the build.Kenneth Graunke
2010-06-21Specify %option prefix="glcpp_" in the source code, not the Makefile.Kenneth Graunke
2010-06-21Merge Carl's preprocessor into the glcpp subdirectory.Kenneth Graunke