mesa/src/glsl/glcpp
Carl Worth f15e27ec1d glcpp: Delete copies of hash_table.c, hash_table.h, and other headers.
These were only ever intended to exist in the original, standalone
implementation of glcpp, (with the idea of dropping them as soon as
the code moved into mesa). The current build system wasn't compiling
this C file, but the presence of the header files could cause problems
if the two copies diverge in the future.

We head those problems off by deleting al of these redundant files.
2010-07-20 17:01:11 -07:00
..
tests glsl2: Move the compiler to the subdirectory it will live in in Mesa. 2010-06-24 15:36:00 -07:00
.gitignore glsl2: Move the compiler to the subdirectory it will live in in Mesa. 2010-06-24 15:36:00 -07:00
glcpp-lex.l glsl2: Initialize yylineno and yycolumn so line numbers are sane. 2010-07-07 12:41:26 -07:00
glcpp-parse.y glsl2: Conditionally define preprocessor tokens for optional extensions 2010-07-01 20:40:08 -07:00
glcpp.c glsl2: Conditionally define preprocessor tokens for optional extensions 2010-07-01 20:40:08 -07:00
glcpp.h glsl2: Conditionally define preprocessor tokens for optional extensions 2010-07-01 20:40:08 -07:00
Makefile.am glcpp: Delete copies of hash_table.c, hash_table.h, and other headers. 2010-07-20 17:01:11 -07:00
pp.c glsl2: Conditionally define preprocessor tokens for optional extensions 2010-07-01 20:40:08 -07:00
README glsl2: Move the compiler to the subdirectory it will live in in Mesa. 2010-06-24 15:36:00 -07:00
xtalloc.c glsl2: Move the compiler to the subdirectory it will live in in Mesa. 2010-06-24 15:36:00 -07:00

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).