mesa/src/compiler/glsl/glcpp
David Heidelberg 68215332a8 build: pass licensing information in SPDX form
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Dylan Baker <dylan.c.baker@intel.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29972>
2024-06-29 12:42:49 -07:00
..
tests glsl/tests: do not perform eol-conversion on windows 2022-08-23 09:16:19 +00:00
glcpp-lex.l util: Use an opaque type for linear context 2023-09-25 17:26:17 +00:00
glcpp-parse.y compiler/glcpp: don't recalculate macro 2024-06-21 03:19:26 +00:00
glcpp.c util: Cleanup strtod.(h|c) by introduce _mesa_get_locale 2024-03-19 04:05:08 +00:00
glcpp.h util: Use an opaque type for linear context 2023-09-25 17:26:17 +00:00
meson.build build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00
pp.c
pp_standalone_scaffolding.c
pp_standalone_scaffolding.h
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.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).