mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Previously, we were using the same lexing stack as we use for macro expansion to also expand macro arguments. Instead, we now do this earlier by simply recursing over the macro-invocations replacement list and constructing a new expanded list, (and pushing only *that* onto the stack). This is simpler, and also allows us to more easily implement token pasting in the future. |
||
|---|---|---|
| main | ||
| tests | ||
| .gitignore | ||
| glcpp-lex.l | ||
| glcpp-parse.y | ||
| glcpp.c | ||
| glcpp.h | ||
| hash_table.c | ||
| hash_table.h | ||
| Makefile | ||
| README | ||
| xtalloc.c | ||
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