• Home
Name Date Size #Lines LOC

..--

tests/03-May-2024-1,443720

.gitignoreD03-May-202460 98

Makefile.amD03-May-20241.6 KiB4517

READMED03-May-20241.1 KiB3223

glcpp-lex.cD03-May-202476 KiB2,6781,805

glcpp-lex.lD03-May-20246.9 KiB326215

glcpp-parse.cD03-May-2024112 KiB4,1952,932

glcpp-parse.hD03-May-20242.9 KiB10153

glcpp-parse.yD03-May-202443 KiB1,8691,389

glcpp.cD03-May-20243 KiB13285

glcpp.hD03-May-20245.2 KiB223153

pp.cD03-May-20245.2 KiB168111

README

1glcpp -- GLSL "C" preprocessor
2
3This is a simple preprocessor designed to provide the preprocessing
4needs of the GLSL language. The requirements for this preprocessor are
5specified in the GLSL 1.30 specification availble from:
6
7http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.30.10.pdf
8
9This specification is not precise on some semantics, (for example,
10#define and #if), defining these merely "as is standard for C++
11preprocessors". To fill in these details, I've been using a draft of
12the C99 standard as available from:
13
14http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
15
16Any downstream compiler accepting output from glcpp should be prepared
17to encounter and deal with the following preprocessor macros:
18
19	#line
20	#pragma
21	#extension
22
23All other macros will be handles according to the GLSL specification
24and will not appear in the output.
25
26Known limitations
27-----------------
28The __LINE__ and __FILE__ macros are not yet supported.
29
30A file that ends with a function-like macro name as the last
31non-whitespace token will result in a parse error, (where it should be
32passed through as is).