source: OGRE/trunk/ogrenew/RenderSystems/GL/src/nvparse/rc1.0_tokens.l @ 657

Revision 657, 8.7 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1/* definitions */
2digit    [0-9]
3char     [a-zA-Z_.]
4alphanum [0-9a-zA-Z_]
5
6%option prefix="rc10_"
7%{  /* code to be included */
8
9#include <stdlib.h>
10#include "rc1.0_combiners.h"
11#include "_rc1.0_parser.h"
12
13#ifdef _WIN32
14# include <windows.h>
15#endif
16
17#if defined(__APPLE__) && defined(__GNUC__)
18#include <OpenGL/gl.h>
19#include "glext.h"
20#else
21#include <GL/gl.h>
22#include <GL/glext.h>
23#endif
24
25#include "nvparse_errors.h"
26#include "nvparse_externs.h"
27
28#define YY_INPUT(buf,result,max_size) \
29{ \
30    result = 0;                        \
31    while (*myin && result < max_size) \
32    buf[result++] = *myin++;           \
33}
34
35#define YY_ALWAYS_INTERACTIVE 1
36
37%}
38/* end of definitions */
39%%
40
41\/\*                    {
42                            A:
43                                switch (yyinput()) {
44                                  case '*': goto B;
45                                  case 0: errors.set("end-of-file in comment", line_number); break;
46                                  case '\n': line_number++;
47                                  default:  goto A;
48                                }
49                            B:
50                                switch (yyinput()) {
51                                  case '*': goto B;
52                                  case '/': break;
53                                  case 0: errors.set("end-of-file in comment", line_number); break;
54                                  case '\n': line_number++;
55                                  default:  goto A;
56                                }
57                        }
58
59\/\/            {
60                            char ch;
61                            while ((ch = yyinput()) != '\n');
62                            if (ch == '\n') line_number++;
63                        }
64
65\#                      {
66                            char ch;
67                            while ((ch = yyinput()) != '\n');
68                            if (ch == '\n') line_number++;
69                        }
70
71!!RC1\.0        { /* eat header */ }
72
73fog\.rgb        {
74                            rc10_lval.registerEnum.word = RCP_FOG_RGB;
75                            return(regVariable);
76                        }
77fog\.a          {
78                            rc10_lval.registerEnum.word = RCP_FOG_ALPHA;
79                            return(regVariable);
80                        }
81fog\.b          {
82                            rc10_lval.registerEnum.word = RCP_FOG_BLUE;
83                            return(regVariable);
84                        }
85fog                     {
86                            rc10_lval.registerEnum.word = RCP_FOG;
87                            return(regVariable);
88                        }
89
90col0\.rgb       {
91                            rc10_lval.registerEnum.word = RCP_PRIMARY_COLOR_RGB;
92                            return(regVariable);
93                        }
94col0\.a         {
95                            rc10_lval.registerEnum.word = RCP_PRIMARY_COLOR_ALPHA;
96                            return(regVariable);
97                        }
98col0\.b         {
99                            rc10_lval.registerEnum.word = RCP_PRIMARY_COLOR_BLUE;
100                            return(regVariable);
101                        }
102col0            {
103                            rc10_lval.registerEnum.word = RCP_PRIMARY_COLOR;
104                            return(regVariable);
105                        }
106
107col1\.rgb       {
108                            rc10_lval.registerEnum.word = RCP_SECONDARY_COLOR_RGB;
109                            return(regVariable);
110                        }
111col1\.a         {
112                            rc10_lval.registerEnum.word = RCP_SECONDARY_COLOR_ALPHA;
113                            return(regVariable);
114                        }
115col1\.b         {
116                            rc10_lval.registerEnum.word = RCP_SECONDARY_COLOR_BLUE;
117                            return(regVariable);
118                        }
119col1            {
120                            rc10_lval.registerEnum.word = RCP_SECONDARY_COLOR;
121                            return(regVariable);
122                        }
123
124spare0\.rgb     {
125                            rc10_lval.registerEnum.word = RCP_SPARE0_RGB;
126                            return(regVariable);
127                        }
128spare0\.a               {
129                            rc10_lval.registerEnum.word = RCP_SPARE0_ALPHA;
130                            return(regVariable);
131                        }
132spare0\.b               {
133                            rc10_lval.registerEnum.word = RCP_SPARE0_BLUE;
134                            return(regVariable);
135                        }
136spare0          {
137                            rc10_lval.registerEnum.word = RCP_SPARE0;
138                            return(regVariable);
139                        }
140
141spare1\.rgb     {
142                            rc10_lval.registerEnum.word = RCP_SPARE1_RGB;
143                            return(regVariable);
144                        }
145spare1\.a               {
146                            rc10_lval.registerEnum.word = RCP_SPARE1_ALPHA;
147                            return(regVariable);
148                        }
149spare1\.b               {
150                            rc10_lval.registerEnum.word = RCP_SPARE1_BLUE;
151                            return(regVariable);
152                        }
153spare1          {
154                            rc10_lval.registerEnum.word = RCP_SPARE1;
155                            return(regVariable);
156                        }
157
158tex0\.rgb       {
159                            rc10_lval.registerEnum.word = RCP_TEXTURE0_RGB;
160                            return(regVariable);
161                        }
162tex0\.a         {
163                            rc10_lval.registerEnum.word = RCP_TEXTURE0_ALPHA;
164                            return(regVariable);
165                        }
166tex0\.b         {
167                            rc10_lval.registerEnum.word = RCP_TEXTURE0_BLUE;
168                            return(regVariable);
169                        }
170tex0            {
171                            rc10_lval.registerEnum.word = RCP_TEXTURE0;
172                            return(regVariable);
173                        }
174
175tex1\.rgb       {
176                            rc10_lval.registerEnum.word = RCP_TEXTURE1_RGB;
177                            return(regVariable);
178                        }
179tex1\.a         {
180                            rc10_lval.registerEnum.word = RCP_TEXTURE1_ALPHA;
181                            return(regVariable);
182                        }
183tex1\.b         {
184                            rc10_lval.registerEnum.word = RCP_TEXTURE1_BLUE;
185                            return(regVariable);
186                        }
187tex1            {
188                            rc10_lval.registerEnum.word = RCP_TEXTURE1;
189                            return(regVariable);
190                        }
191
192tex2\.rgb       {
193                            rc10_lval.registerEnum.word = RCP_TEXTURE2_RGB;
194                            return(regVariable);
195                        }
196tex2\.a         {
197                            rc10_lval.registerEnum.word = RCP_TEXTURE2_ALPHA;
198                            return(regVariable);
199                        }
200tex2\.b         {
201                            rc10_lval.registerEnum.word = RCP_TEXTURE2_BLUE;
202                            return(regVariable);
203                        }
204tex2            {
205                            rc10_lval.registerEnum.word = RCP_TEXTURE2;
206                            return(regVariable);
207                        }
208
209tex3\.rgb       {
210                            rc10_lval.registerEnum.word = RCP_TEXTURE3_RGB;
211                            return(regVariable);
212                        }
213tex3\.a         {
214                            rc10_lval.registerEnum.word = RCP_TEXTURE3_ALPHA;
215                            return(regVariable);
216                        }
217tex3\.b         {
218                            rc10_lval.registerEnum.word = RCP_TEXTURE3_BLUE;
219                            return(regVariable);
220                        }
221tex3            {
222                            rc10_lval.registerEnum.word = RCP_TEXTURE3;
223                            return(regVariable);
224                        }
225
226const0\.rgb     {
227                            rc10_lval.registerEnum.word = RCP_CONST_COLOR0_RGB;
228                            return(regVariable);
229                        }
230const0\.a               {
231                            rc10_lval.registerEnum.word = RCP_CONST_COLOR0_ALPHA;
232                            return(regVariable);
233                        }
234const0\.b               {
235                            rc10_lval.registerEnum.word = RCP_CONST_COLOR0_BLUE;
236                            return(regVariable);
237                        }
238const0          {
239                            rc10_lval.registerEnum.word = RCP_CONST_COLOR0;
240                            return(constVariable);
241                        }
242
243const1\.rgb     {
244                            rc10_lval.registerEnum.word = RCP_CONST_COLOR1_RGB;
245                            return(regVariable);
246                        }
247const1\.a               {
248                            rc10_lval.registerEnum.word = RCP_CONST_COLOR1_ALPHA;
249                            return(regVariable);
250                        }
251const1\.b               {
252                            rc10_lval.registerEnum.word = RCP_CONST_COLOR1_BLUE;
253                            return(regVariable);
254                        }
255const1          {
256                            rc10_lval.registerEnum.word = RCP_CONST_COLOR1;
257                            return(constVariable);
258                        }
259
260zero\.rgb       {
261                            rc10_lval.registerEnum.word = RCP_ZERO_RGB;
262                            return(regVariable);
263                        }
264zero\.a         {
265                            rc10_lval.registerEnum.word = RCP_ZERO_ALPHA;
266                            return(regVariable);
267                        }
268zero\.b         {
269                            rc10_lval.registerEnum.word = RCP_ZERO_BLUE;
270                            return(regVariable);
271                        }
272zero            {
273                            rc10_lval.registerEnum.word = RCP_ZERO;
274                            return(regVariable);
275                        }
276
277one\.rgb        {
278                            rc10_lval.registerEnum.word = RCP_ONE_RGB;
279                            return(regVariable);
280                        }
281one\.a          {
282                            rc10_lval.registerEnum.word = RCP_ONE_ALPHA;
283                            return(regVariable);
284                        }
285one\.b          {
286                            rc10_lval.registerEnum.word = RCP_ONE_BLUE;
287                            return(regVariable);
288                        }
289one                     {
290                            rc10_lval.registerEnum.word = RCP_ONE;
291                            return(regVariable);
292                        }
293
294discard         {
295                            rc10_lval.registerEnum.word = RCP_DISCARD;
296                            return(regVariable);
297                        }
298
299out\.rgb                return(fragment_rgb);
300out\.a                  return(fragment_alpha);
301
302final_product {
303                            rc10_lval.registerEnum.word = RCP_FINAL_PRODUCT;
304                            return(final_product);
305                        }
306
307color_sum {
308                            rc10_lval.registerEnum.word = RCP_COLOR_SUM;
309                            return(color_sum);
310                        }
311
312expand                  return(expandString);
313half_bias               return(halfBiasString);
314unsigned                return(unsignedString);
315unsigned_invert return(unsignedInvertString);
316mux                             {
317                                        rc10_lval.ival = GL_TRUE;
318                                        return(muxString);
319                                }
320
321sum                             {
322                                        rc10_lval.ival = GL_FALSE;
323                                        return(sumString);
324                                }
325
326rgb                             {
327                                        rc10_lval.ival = RCP_RGB;
328                                        return(rgb_portion);
329                                }
330alpha                   {
331                                        rc10_lval.ival = RCP_ALPHA;
332                                        return(alpha_portion);
333                                }
334
335clamp_color_sum {
336                                rc10_lval.ival = true;
337                                return(clamp_color_sum);
338                        }
339lerp                    return(lerp);
340
341
342bias_by_negative_one_half_scale_by_two {
343                                rc10_lval.biasScaleEnum.word = RCP_BIAS_BY_NEGATIVE_ONE_HALF_SCALE_BY_TWO;
344                                return(bias_by_negative_one_half_scale_by_two);
345                        }
346bias_by_negative_one_half {
347                                rc10_lval.biasScaleEnum.word = RCP_BIAS_BY_NEGATIVE_ONE_HALF;
348                                return(bias_by_negative_one_half);
349                        }
350scale_by_one_half {
351                                rc10_lval.biasScaleEnum.word = RCP_SCALE_BY_ONE_HALF;
352                                return(scale_by_one_half);
353                        }
354scale_by_two {
355                                rc10_lval.biasScaleEnum.word = RCP_SCALE_BY_TWO;
356                                return(scale_by_two);
357                        }
358scale_by_four {
359                                rc10_lval.biasScaleEnum.word = RCP_SCALE_BY_FOUR;
360                                return(scale_by_four);
361                        }
362
363[+-]?[0-9]+\.[0-9]*     {
364                                rc10_lval.fval = (float)atof(yytext);
365                                return(floatValue);
366                        }
367
368[+-]?[0-9]*\.[0-9]+     {
369                                rc10_lval.fval = (float)atof(yytext);
370                                return(floatValue);
371                        }
372
373[+-]?[0-9]+             {
374                                rc10_lval.fval = (float)atof(yytext);
375                                return(floatValue);
376                        }
377
378\{                      return(openBracket);
379\}                      return(closeBracket);
380\(                      return(openParen);
381\)                      return(closeParen);
382;                       return(semicolon);
383,                       return(comma);
384\.                      return(dot);
385\*                      return(times);
386-                       return(minus);
387\+                      return(plus);
388=                       return(equals);
389
390\r*\n           {
391                                line_number++;
392                        }
393
394[ \t]+          {}
395
396{alphanum}+ {
397                                errors.set("unrecognized token", line_number);
398                        }
399                               
400
401%%
402
403bool rc10_init_more();
404
405bool rc10_init(char* inputString)
406{
407    myin = inputString;
408        return rc10_init_more();
409}
410
411#ifndef rc10_wrap
412int rc10_wrap(void)
413{
414  return(1);
415}
416#endif
Note: See TracBrowser for help on using the repository browser.