Commit Graph

3866 Commits

Author SHA1 Message Date
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