Michal Krol
ee67167358
glsl/pp: Fix handling of if/elif/else cases.
...
Once if/elif evalutes to true, all subsequent conditions are always false.
2010-02-15 21:33:22 +01:00
Vinson Lee
f0e1499805
glsl/pp: Add asserts to check for null pointer deferences.
2010-02-15 00:30:31 -08:00
Brian Paul
46f788c2e5
glsl/cl: implement parsing for layout qualifiers
...
For GL_ARB_fragment_coord_conventions support.
2010-02-13 13:50:45 -07:00
Brian Paul
3b53b7e8b0
glsl/pp: fix incorrect extension enable flag for warn mode
2010-02-13 13:48:32 -07:00
Brian Paul
3251f31d59
glsl/pp: fix extension enable/disable options
...
Now the #extension name: disable/enable flags do the right thing.
Fixes glean/glsl1 "Preprocessor test (extension test 3)"
2010-02-10 10:49:50 -07:00
Michal Krol
8b1c332a77
Simplify GLSL extension mechanism.
...
Since extension name and extension name string are the same, collapse
them into one name.
2010-02-10 18:04:07 +01:00
Michal Krol
c1395a71ac
glsl/pp: Fix ifdef directive for extension names.
2010-02-10 17:55:29 +01:00
Vinson Lee
c73dbce891
glsl/pp: Silence GCC "no previous prototype" warning.
2010-01-26 00:47:31 -08:00
Brian Paul
4c041fac96
glsl: remove __inline directive
...
It makes no difference with gcc -O3, for example.
2010-01-18 11:06:57 -07:00
José Fonseca
cbb23523a8
glsl: Ignore programs.
2010-01-01 12:16:19 +00:00
Brian Paul
561a107df7
glsl: added default case in _fetch_token() to silence warnings
2009-12-29 08:47:40 -07:00
José Fonseca
7abdaf574a
scons: Fix xlib build.
...
After glsl rework merge.
2009-12-28 22:53:40 +00:00
Keith Whitwell
b2a615e3cd
glsl/pp: move static functions out of header file
2009-12-23 16:10:37 +00:00
Keith Whitwell
cdd25ab8cf
glsl/pp: quieten compiler about missing case statements
2009-12-23 16:10:37 +00:00
Dave Airlie
55c43ee315
glsl: make stack compile.
...
it would be nice if this stuff would be test built on mesa's primary
platform with mesa's primary build system.
Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-12-21 09:10:21 +10:00
Michal Krol
1071ad70f5
glsl/apps: Update after glsl cl interface changes.
2009-12-20 21:19:10 +01:00
Michal Krol
d801c296c6
glsl: Do syntax parsing inline with processing.
2009-12-20 21:19:07 +01:00
Michal Krol
9c15948125
glsl/apps: Update after glsl pp interface changes.
2009-12-20 21:19:03 +01:00
Michal Krol
e0f57a37b2
glsl/apps: Do not print number of eaten tokens in version.
...
This is due to the glsl pp interface changes.
2009-12-20 21:19:02 +01:00
Michal Krol
0874ce48a6
glsl/apps: Print error line number in compile.
2009-12-20 21:19:01 +01:00
Michal Krol
d696cb279d
glsl/pp: Do processing inline with tokenisation.
2009-12-20 21:18:59 +01:00
Michal Krol
7631dca25b
glsl/pp: Remove outdated TODO.
...
Already implemented in mesa compiler using predefined symbols.
2009-12-20 21:18:58 +01:00
Michal Krol
e9aa65d2b7
glsl/pp: Report correct error line for purify and tokeniser errors.
2009-12-20 21:18:57 +01:00
Sedat Dilek
294bd53d4b
glsl/apps: Add dummy install target to fix 'make install'
...
Signed-off-by: Brian Paul <brianp@vmware.com>
2009-12-17 12:46:55 -07:00
José Fonseca
491f384c39
scons: Get GLSL code building correctly when cross compiling.
...
This is quite messy. GLSL code has to be built twice: one for the
host OS, another for the target OS.
2009-12-10 16:30:08 +00:00
Brian Paul
289eab5389
glsl/sl: fix _parse_boolconstant()
...
Need to emit the radix before the digits.
This fixes several glean/glgl1 regressions.
2009-12-10 09:16:39 -07:00
Brian Paul
05eccfe79e
glsl/apps: remove unused vars
2009-12-10 08:25:47 -07:00
Brian Paul
0d654a7f2c
glsl/pp: make some functions static
2009-12-10 08:25:35 -07:00
Brian Paul
52271c5345
glsl/pp: declare sl_pp_purify_options to silence warning
2009-12-10 08:25:16 -07:00
Brian Paul
7502b6affa
glsl/cl: silence unused var warning
2009-12-10 08:24:45 -07:00
Michal Krol
417f36ccb0
glsl/apps: Predefine __GLSL_PP_PREDEFINED_MACRO_TEST for testing.
2009-12-10 12:58:44 +01:00
Michal Krol
22200bcafc
glsl/pp: Add support for user-defined macros.
2009-12-10 12:58:21 +01:00
Michal Krol
d1a09a9ba4
glsl/apps: Explicitly add ARB_draw_buffers and ARB_texture_rectangle.
2009-12-10 12:39:37 +01:00
Michal Krol
91e164b3d0
glsl/pp: Add sl_pp_context_add_extension().
...
This way third parties are able to add supported extension strings.
2009-12-10 12:38:22 +01:00
michal
068596c9a7
Build mesa glsl with make.
...
Still don't know how to add glsl to mesa dependencies.
2009-12-10 01:03:15 +01:00
Michal Krol
77a0a3e5ca
glsl/apps: Make compile more shell friendly.
2009-11-25 14:59:29 +01:00
Michal Krol
3371f7e502
scons: Autogenerate GLSL builtin library *_gc.h from *.gc files.
2009-11-25 14:52:21 +01:00
Michal Krol
6199a0cf89
glsl/apps: No need to purify source text for tokeniser.
2009-11-21 20:44:16 +01:00
Michal Krol
abe1f33298
glsl/pp: Do purification and tokenisation in a single step.
2009-11-21 20:41:48 +01:00
Michal Krol
b89cd8afc5
glsl/pp: Expand unknown identifiers to 0 in if/elif expressions.
2009-11-20 08:59:50 +01:00
Michal Krol
547ac2869b
glsl/pp: Fix macro formal argument parsing, more descriptive error msgs.
2009-11-17 09:06:53 +01:00
Michal Krol
eaa34c2dea
glsl/apps: Report syntax parser errors.
2009-11-13 19:51:49 +01:00
Michal Krol
99c89ebdb0
glsl/cl: Add simple error reporting.
2009-11-13 19:51:02 +01:00
Michal Krol
38a1f0b5d1
glsl/apps: Add GLSL compiler that translates source text into binary stream.
...
Should be used in place of gc_to_bin utility to precompile builtin library.
2009-11-13 03:02:14 +01:00
Michal Krol
08e90bdea1
glsl/cl: Add a hard-coded syntax parser.
2009-11-13 03:00:45 +01:00
Michal Krol
d44cebd1ee
glsl/pp: Add sl_pp_purify_getc().
2009-11-10 20:49:45 +01:00
Michal Krol
b5c8c87eab
glsl/apps: Update for glsl/pp interface changes.
2009-11-10 00:15:54 +01:00
Michal Krol
d37f7694b6
glsl/pp: Have sl_pp_purify() return error msg/line no.
2009-11-10 00:15:33 +01:00
Michal Krol
c4bd6ccde8
glsl/pp: Expand macro actual arguments before pasting into its body.
2009-09-28 11:30:15 +02:00
Michal Krol
92e33569f3
glsl/pp: Add forward decls to silence gcc warnings.
2009-09-24 10:57:55 +02:00
Michal Krol
69fec23251
glsl/pp: Avoid using `__VERSION__' as an identifier.
2009-09-24 10:57:32 +02:00
Michal Krol
7a95a3c7c4
glsl/pp: Include missing headers.
2009-09-24 10:56:46 +02:00
Michal Krol
e1eed56702
glsl/pp: Allow builds on all platforms.
2009-09-24 10:56:01 +02:00
Michal Krol
e8e3fe15e1
glsl/apps: Include missing header, properly escape format strings.
2009-09-24 10:55:37 +02:00
Michal Krol
db097a9a3f
glsl/apps: Allow builds on all platforms.
2009-09-24 10:54:56 +02:00
Michal Krol
a58360dbc2
glsl/pp: Use struct instead of union.
2009-09-24 09:04:15 +02:00
Michal Krol
13f9a39cea
glsl/apps: Fix apps after pp interface changes.
2009-09-24 08:43:54 +02:00
Michal Krol
9a1447d449
glsl/pp: Store both line number and file index in a single token.
2009-09-24 08:43:05 +02:00
Michal Krol
1ed1dc8b41
glsl/pp: Include missing headers.
2009-09-23 09:40:24 +02:00
Michal Krol
2f89e1a5a1
glsl/pp: Add `0' and `1' to dictionary.
2009-09-23 09:37:37 +02:00
Michal Krol
32966991c6
glsl/pp: Check for reserved macro names.
2009-09-23 09:33:12 +02:00
Michal Krol
125691dda3
glsl/apps: Update after recent pp interface changes.
2009-09-22 12:52:21 +02:00
Michal Krol
0481e85af7
glsl/pp: Differentiate between integer and floating-point number tokens.
2009-09-22 12:51:08 +02:00
Michal Krol
5f9f30a752
glsl/apps: Use glsl pp public interface.
2009-09-18 11:20:42 +02:00
Michal Krol
95956bb8cb
glsl/pp: Define a public interface for external modules.
...
Make sl_pp_context struct opaque.
Move all public declarations to sl_pp_public.h.
2009-09-18 11:19:25 +02:00
Michal Krol
90daefd1c4
glsl/pp: Add a TODO for FEATURE_es2_glsl.
2009-09-17 12:33:26 +02:00
Michal Krol
4fcda5000e
slang/pp: Fix file number parsing.
2009-09-17 12:14:12 +02:00
Michal Krol
ce8f486156
slang/pp: Use a dictionary for the remaining string literals.
2009-09-17 12:12:34 +02:00
Michal Krol
0ddf41d34d
glsl/pp: Add remaining error messages.
2009-09-17 11:51:35 +02:00
Michal Krol
69bdd47dba
glsl/apps: Always write out error condition.
2009-09-17 10:45:16 +02:00
Michal Krol
cc629940d4
glsl/apps: Always write out error condition.
2009-09-16 22:04:22 +02:00
Michal Krol
a7382628f2
glsl/pp: Validate numbers.
2009-09-16 21:51:12 +02:00
Michal Krol
de0753e4cb
glsl/pp: Add more error messages.
2009-09-16 20:40:02 +02:00
Michal Krol
d4638f5dce
glsl/pp: Add more error messages.
2009-09-16 20:27:59 +02:00
Michal Krol
0f302b60fd
glsl/pp: Support GL_ARB_draw_buffers and GL_ARB_texture_rectangle.
2009-09-14 13:09:36 +02:00
Michal Krol
169aead1b5
glsl/apps: Adapt to pp interface change.
2009-09-14 13:08:07 +02:00
Michal Krol
a67f32289a
glsl/pp: Add a dictionary to a context.
2009-09-14 13:07:25 +02:00
Michal Krol
5ad8937752
glsl: Add error messages for version parser.
2009-09-07 10:12:12 +02:00
Michal Krol
b7960b3d3a
glsl: Handle file tokens in apps/process.
2009-09-07 10:12:11 +02:00
Michal Krol
a64ba93aab
glsl: Handle file numbering.
2009-09-07 10:12:10 +02:00
Michal Krol
2d2d638444
glsl: Actually respect the hash-line directive.
2009-09-07 10:12:09 +02:00
Michal Krol
b6df77fb9a
glsl: Handle line tokens in apps/process.
2009-09-07 10:12:08 +02:00
Michal Krol
4aa3222df3
glsl: Correctly handle line numbering.
2009-09-07 10:12:07 +02:00
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