Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ian Romanick b302359394 Add missing build products to gitignore 15 anni fa
..
main Merge Carl's preprocessor into the glcpp subdirectory. 15 anni fa
tests glcpp/tests: Add a test for #if defined (identifier) 15 anni fa
.gitignore Add missing build products to gitignore 15 anni fa
Makefile.am Make the main compiler call the preprocessor. 15 anni fa
README Merge Carl's preprocessor into the glcpp subdirectory. 15 anni fa
glcpp-lex.l glcpp: Don't include newlines as part of #version-passthrough. 15 anni fa
glcpp-parse.y glcpp: Initialize error state. 15 anni fa
glcpp.c glcpp: Rename "errors" to "info_log." 15 anni fa
glcpp.h glcpp: Add glcpp_warning for printing warnings to the info log. 15 anni fa
hash_table.c Merge Carl's preprocessor into the glcpp subdirectory. 15 anni fa
hash_table.h Merge Carl's preprocessor into the glcpp subdirectory. 15 anni fa
pp.c glcpp: Print to the main compiler's infolog, not stdout. 15 anni fa
xtalloc.c Merge Carl's preprocessor into the glcpp subdirectory. 15 anni fa

README

glcpp -- GLSL "C" preprocessor

This is a simple preprocessor designed to provide the preprocessing
needs of the GLSL language. The requirements for this preprocessor are
specified in the GLSL 1.30 specification availble from:

http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.30.08.pdf

This specification is not precise on some semantics, (for example,
#define and #if), defining these merely "as is standard for C++
preprocessors". To fill in these details, I've been using the C99
standard (for which I had a convenient copy) as available from:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

Known limitations
-----------------
Macro invocations cannot include embedded newlines.

The __LINE__, __FILE__, and __VERSION__ macros are not yet supported.

The argument of the 'defined' operator cannot yet include enclosing
parentheses.

The #error, #pragma, #extension, #version, and #line macros are not
yet supported.

A file that ends with a function-like macro name as the last
non-whitespace token will result in a parse error, (where it should be
passed through as is).