mesa/src/glsl/glcpp
Carl Worth f28a105868 glsl/glcpp: Rename one test to avoid a duplicate test number
With two tests both numbered 118, there was a confusing off-by-two difference
between the last test number and the total number of tests (as reported by
glcpp-test).

With this rename, there's only an off-by-one difference left, (which is easy
to understand given the zero-based test numbering).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2014-08-07 16:08:29 -07:00
..
tests glsl/glcpp: Rename one test to avoid a duplicate test number 2014-08-07 16:08:29 -07:00
.gitignore glcpp: Add back tests/*.out to .gitignore 2013-01-11 11:49:33 +01:00
glcpp-lex.l glsl/glcpp: Don't include any newline characters in #error token 2014-08-07 16:08:29 -07:00
glcpp-parse.y glsl/glcpp: Fix handling of commas that result from macro expansion 2014-08-07 16:08:29 -07:00
glcpp.c glsl/glcpp: Add a -d/--debug option to the standalone glcpp program 2014-07-29 15:11:49 -07:00
glcpp.h util: Move ralloc to a new src/util directory. 2014-08-04 11:06:58 -07:00
pp.c glsl/glcpp: Fix line-continuation code to handle multiple newline flavors 2014-08-07 16:08:29 -07:00
README glcpp: Update README for new support of __LINE__ and __FILE__. 2012-11-29 13:03:02 -08: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.10.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 a draft of
the C99 standard as available from:

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

Any downstream compiler accepting output from glcpp should be prepared
to encounter and deal with the following preprocessor macros:

	#line
	#pragma
	#extension

All other macros will be handled according to the GLSL specification
and will not appear in the output.

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