Commit graph

2633 commits

Author SHA1 Message Date
Michal Krol
0d9c5eafeb glsl: Preserve newline inside comment blocks. 2009-09-07 10:12:06 +02:00
Michal Krol
e8afc65589 glsl: Implement predefinded macros.
The values are hardcoded: __LINE__ = 1, __FILE__ = 0 and __VERSION__ = 110.
2009-09-07 10:12:05 +02:00
Michal Krol
bb8f38ea6f glsl: Implement `line' preprocessor directive. 2009-09-07 10:12:03 +02:00
Michal Krol
ddd8ae7fbc glsl: Output endof token after processing a directive.
Some directives may output tokens as a result of their operation.
2009-09-07 10:12:03 +02:00
Michal Krol
7f187583c1 glsl: Handle extension tokens in apps/proces. 2009-09-07 10:12:02 +02:00
Michal Krol
87d2de04fb glsl: Implement `extension' preprocessor directive.
No extensions supported.
2009-09-07 10:12:00 +02:00
Michal Krol
94321b4441 glsl: Handle pragma tokens in apps/process. 2009-09-07 10:11:59 +02:00
Michal Krol
0e046420e4 glsl: Implement `pragma' preprocessor directive.
Handle `optimize(on|off)' and `debug(on|off)' pragmas.
2009-09-07 10:11:58 +02:00
Michal Krol
c42428c787 glsl: Print out error message in apps/process. 2009-09-07 10:11:56 +02:00
Michal Krol
f9bd6f7152 glsl: Implement `error' preprocessor directive. 2009-09-07 10:11:55 +02:00
Michal Krol
3dc2b5f71c glsl: Implement `undef' preprocessor directive. 2009-09-07 10:11:54 +02:00
Michal Krol
a294715612 glsl: Allow for preprocessor macro redefinition. 2009-09-07 10:11:52 +02:00
Michal Krol
153b179862 glsl: Handle `defined' preprocessor operator. 2009-09-07 10:11:51 +02:00
Michal Krol
3b027bca9d glsl: Support if preprocessor directive and friends. 2009-09-07 10:11:50 +02:00
Michal Krol
3bb446ba6e glsl: Add expression interpreter. 2009-09-07 10:11:49 +02:00
Michal Krol
2dad8ed9d6 glsl: Centralise sl_pp_macro constructor. 2009-09-07 10:11:48 +02:00
Michal Krol
6a11d4150c glsl: Implement macro expansion. 2009-09-07 10:11:47 +02:00
Michal Krol
5e8e3cddae glsl: Rename sl_pp_context_add_str to sl_pp_context_add_unique_str.
Return the same offset for same strings. Allows to compare strings
by comparing their's offsets.
2009-09-07 10:11:46 +02:00
Michal Krol
fd991d845a glsl: Parse define directive in preprocessor. 2009-09-07 10:11:45 +02:00
Michal Krol
3ce5e66818 glsl: Simplify directive parser skeleton. 2009-09-07 10:11:44 +02:00
Michal Krol
f24322fbf6 glsl: Introduce sl_pp_context and maintain a reuseable pool of strings. 2009-09-07 10:11:43 +02:00
Michal Krol
f24ec185c5 glsl: Add `process' test app that returns tokenised and preprocessed text. 2009-09-07 10:11:42 +02:00
Michal Krol
9d336c5264 glsl: Add preprocessor skeleton for directive parsing. 2009-09-07 10:11:40 +02:00
Michal Krol
5d26deef98 glsl: Remove bogus sl_pp_directive.h include. 2009-09-07 10:11:39 +02:00
Michal Krol
b4e92367f3 glsl: Allow for multiple version statements. 2009-09-07 10:11:38 +02:00
Michal Krol
55f75c13f0 glsl/apps: Print out the number of tokens eaten in version test. 2009-09-07 10:11:38 +02:00
Michal Krol
474f754282 glsl: Raise an error on an unfinished comment block. 2009-09-07 10:11:37 +02:00
Michal Krol
af617c6037 glsl/apps: Add version test app. 2009-09-07 10:11:36 +02:00
Michal Krol
229e72956c glsl: Parse optional version directive. 2009-09-07 10:11:33 +02:00
Michal Krol
0d5ef796f8 glsl: Add a tokenise app. 2009-09-07 10:11:32 +02:00
Michal Krol
2c9a627b48 glsl: Add a preprocessor tokeniser. 2009-09-07 10:11:31 +02:00
Michal Krol
121769eeb3 glsl: Add a purify command-line tool. 2009-09-07 10:11:30 +02:00
Michal Krol
0bbf59c305 glsl: Add preprocessor purifier. 2009-09-07 10:11:29 +02:00