Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-06-23 | preprocessor: 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-23 | preprocessor: Remove dead code _token_list_length | Carl Worth | |
As gcc noticed, this function is not currently being used. Good-bye. | |||
2010-06-23 | preprocessor: Remove dead code _string_list_append_list | Carl Worth | |
As gcc noticed, this function is not currently being used. Good-bye. | |||
2010-06-23 | glcpp: Support line continuations within preprocessor directives. | Kenneth Graunke | |
Fixes CorrectPreprocess5.frag. | |||
2010-06-23 | glcpp: 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-23 | glcpp: 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-23 | glcpp: 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-22 | Add missing build products to gitignore | Ian Romanick | |
2010-06-21 | glcpp: Initialize error state. | Kenneth Graunke | |
2010-06-21 | glcpp: 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-21 | glcpp: Print to the main compiler's infolog, not stdout. | Kenneth Graunke | |
2010-06-21 | Use 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-21 | glcpp: 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-21 | glcpp/tests: Add a test for #if defined (identifier) | Kenneth Graunke | |
Previously we only tested #if defined identifier (without parenthesis). | |||
2010-06-21 | glcpp: 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-21 | glcpp: Add glcpp_warning for printing warnings to the info log. | Kenneth Graunke | |
2010-06-21 | glcpp: 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-21 | glcpp: Rename "errors" to "info_log." | Kenneth Graunke | |
Eventually, we'll want to be be able to print out warnings as well. | |||
2010-06-21 | glcpp: Don't include newlines as part of #version-passthrough. | Kenneth Graunke | |
Fixes glcpp/tests/064-version.c. | |||
2010-06-21 | glcpp/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-21 | glcpp: Fix line and column numbering. | Kenneth Graunke | |
Lines were off by one, and column numbering was completely daft. | |||
2010-06-21 | glcpp: 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-21 | glcpp: Add line locations to "Unterminated #if" error message. | Kenneth Graunke | |
2010-06-21 | glcpp: Add line locations to various mismatched #if error messages. | Kenneth Graunke | |
2010-06-21 | glcpp: Add line locations to "reserved name" error messages. | Kenneth Graunke | |
2010-06-21 | glcpp: Print locations in error messages where possible. | Kenneth Graunke | |
2010-06-21 | glcpp: Introduce new glcpp_error function. | Kenneth Graunke | |
2010-06-21 | glcpp: Set locations on tokens. | Kenneth Graunke | |
2010-06-21 | glcpp: Set line locations in the lexer. | Kenneth Graunke | |
2010-06-21 | glcpp: Add plumbing to support line locations. | Kenneth Graunke | |
2010-06-21 | glcpp: Add %error-verbose. | Kenneth Graunke | |
2010-06-21 | glcpp: 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-21 | glcpp: Build a reentrant parser. | Kenneth Graunke | |
2010-06-21 | glcpp: 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-21 | glcpp/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-21 | glcpp: Handle missing newline at EOF. | Kenneth Graunke | |
Fixes CorrectFuncOverload.vert. | |||
2010-06-21 | glcpp: Complain about unrecognized directives. | Kenneth Graunke | |
2010-06-21 | glcpp: Pass #version, #extension, and #pragma directives through unchanged. | Kenneth Graunke | |
Let the main compiler's lexer/parser handle them. | |||
2010-06-21 | Make 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-21 | glcpp: Add support for lexing from a string. | Kenneth Graunke | |
The standalone binary still reads from stdin, however. | |||
2010-06-21 | glcpp: 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-21 | glcpp: Fix a case of == where = probably ought to be. | Kenneth Graunke | |
Caught by a GCC warning. | |||
2010-06-21 | Add glcpp to the build. | Kenneth Graunke | |
2010-06-21 | Specify %option prefix="glcpp_" in the source code, not the Makefile. | Kenneth Graunke | |
2010-06-21 | Merge Carl's preprocessor into the glcpp subdirectory. | Kenneth Graunke | |