1230a71a2b7fab34bfbb3585b648adf3df4dfa6b
[kai/samba.git] / pidl / lib / Parse / Pidl / Expr.pm
1 ####################################################################
2 #
3 #    This file was generated using Parse::Yapp version 1.05.
4 #
5 #        Don't edit this file, use source file instead.
6 #
7 #             ANY CHANGE MADE HERE WILL BE LOST !
8 #
9 ####################################################################
10 package Parse::Pidl::Expr;
11 use vars qw ( @ISA );
12 use strict;
13
14 @ISA= qw ( Parse::Yapp::Driver );
15 use Parse::Yapp::Driver;
16
17
18
19 sub new {
20         my($class)=shift;
21         ref($class)
22     and $class=ref($class);
23
24     my($self)=$class->SUPER::new( yyversion => '1.05',
25                                   yystates =>
26 [
27         {#State 0
28                 ACTIONS => {
29                         "-" => 1,
30                         "~" => 3,
31                         "&" => 4,
32                         'NUM' => 5,
33                         'TEXT' => 6,
34                         "(" => 7,
35                         "!" => 8,
36                         "*" => 9,
37                         'VAR' => 10
38                 },
39                 GOTOS => {
40                         'exp' => 2,
41                         'var' => 11,
42                         'func' => 12,
43                         'possible_pointer' => 13
44                 }
45         },
46         {#State 1
47                 ACTIONS => {
48                         "-" => 1,
49                         "~" => 3,
50                         "&" => 4,
51                         'TEXT' => 6,
52                         'NUM' => 5,
53                         "(" => 7,
54                         "!" => 8,
55                         "*" => 9,
56                         'VAR' => 10
57                 },
58                 GOTOS => {
59                         'exp' => 14,
60                         'var' => 11,
61                         'func' => 12,
62                         'possible_pointer' => 13
63                 }
64         },
65         {#State 2
66                 ACTIONS => {
67                         '' => 16,
68                         "-" => 15,
69                         "<" => 17,
70                         "+" => 18,
71                         "%" => 19,
72                         "==" => 20,
73                         "^" => 21,
74                         "*" => 22,
75                         ">>" => 23,
76                         "!=" => 24,
77                         "?" => 25,
78                         "||" => 26,
79                         "&&" => 27,
80                         "&" => 28,
81                         "/" => 29,
82                         "|" => 30,
83                         "<<" => 32,
84                         "=>" => 31,
85                         "<=" => 33,
86                         ">" => 34
87                 }
88         },
89         {#State 3
90                 ACTIONS => {
91                         "-" => 1,
92                         "~" => 3,
93                         "&" => 4,
94                         'TEXT' => 6,
95                         'NUM' => 5,
96                         "!" => 8,
97                         "(" => 7,
98                         "*" => 9,
99                         'VAR' => 10
100                 },
101                 GOTOS => {
102                         'exp' => 35,
103                         'var' => 11,
104                         'func' => 12,
105                         'possible_pointer' => 13
106                 }
107         },
108         {#State 4
109                 ACTIONS => {
110                         "-" => 1,
111                         "~" => 3,
112                         "&" => 4,
113                         'TEXT' => 6,
114                         'NUM' => 5,
115                         "!" => 8,
116                         "(" => 7,
117                         "*" => 9,
118                         'VAR' => 10
119                 },
120                 GOTOS => {
121                         'exp' => 36,
122                         'var' => 11,
123                         'func' => 12,
124                         'possible_pointer' => 13
125                 }
126         },
127         {#State 5
128                 DEFAULT => -1
129         },
130         {#State 6
131                 DEFAULT => -2
132         },
133         {#State 7
134                 ACTIONS => {
135                         "-" => 1,
136                         "~" => 3,
137                         "&" => 4,
138                         'TEXT' => 6,
139                         'NUM' => 5,
140                         "!" => 8,
141                         "(" => 7,
142                         "*" => 9,
143                         'VAR' => 10
144                 },
145                 GOTOS => {
146                         'exp' => 38,
147                         'var' => 37,
148                         'func' => 12,
149                         'possible_pointer' => 13
150                 }
151         },
152         {#State 8
153                 ACTIONS => {
154                         "-" => 1,
155                         "~" => 3,
156                         "&" => 4,
157                         'TEXT' => 6,
158                         'NUM' => 5,
159                         "!" => 8,
160                         "(" => 7,
161                         "*" => 9,
162                         'VAR' => 10
163                 },
164                 GOTOS => {
165                         'exp' => 39,
166                         'var' => 11,
167                         'func' => 12,
168                         'possible_pointer' => 13
169                 }
170         },
171         {#State 9
172                 ACTIONS => {
173                         "*" => 9,
174                         'VAR' => 41
175                 },
176                 GOTOS => {
177                         'possible_pointer' => 40
178                 }
179         },
180         {#State 10
181                 ACTIONS => {
182                         "(" => 42
183                 },
184                 DEFAULT => -30
185         },
186         {#State 11
187                 ACTIONS => {
188                         "->" => 43,
189                         "." => 44
190                 },
191                 DEFAULT => -4
192         },
193         {#State 12
194                 DEFAULT => -3
195         },
196         {#State 13
197                 DEFAULT => -32
198         },
199         {#State 14
200                 ACTIONS => {
201                         "^" => 21,
202                         "=>" => 31,
203                         "<=" => 33
204                 },
205                 DEFAULT => -26
206         },
207         {#State 15
208                 ACTIONS => {
209                         "-" => 1,
210                         "~" => 3,
211                         "&" => 4,
212                         'TEXT' => 6,
213                         'NUM' => 5,
214                         "!" => 8,
215                         "(" => 7,
216                         "*" => 9,
217                         'VAR' => 10
218                 },
219                 GOTOS => {
220                         'exp' => 45,
221                         'var' => 11,
222                         'func' => 12,
223                         'possible_pointer' => 13
224                 }
225         },
226         {#State 16
227                 DEFAULT => 0
228         },
229         {#State 17
230                 ACTIONS => {
231                         "-" => 1,
232                         "~" => 3,
233                         "&" => 4,
234                         'TEXT' => 6,
235                         'NUM' => 5,
236                         "!" => 8,
237                         "(" => 7,
238                         "*" => 9,
239                         'VAR' => 10
240                 },
241                 GOTOS => {
242                         'exp' => 46,
243                         'var' => 11,
244                         'func' => 12,
245                         'possible_pointer' => 13
246                 }
247         },
248         {#State 18
249                 ACTIONS => {
250                         "-" => 1,
251                         "~" => 3,
252                         "&" => 4,
253                         'TEXT' => 6,
254                         'NUM' => 5,
255                         "!" => 8,
256                         "(" => 7,
257                         "*" => 9,
258                         'VAR' => 10
259                 },
260                 GOTOS => {
261                         'exp' => 47,
262                         'var' => 11,
263                         'func' => 12,
264                         'possible_pointer' => 13
265                 }
266         },
267         {#State 19
268                 ACTIONS => {
269                         "-" => 1,
270                         "~" => 3,
271                         "&" => 4,
272                         'TEXT' => 6,
273                         'NUM' => 5,
274                         "!" => 8,
275                         "(" => 7,
276                         "*" => 9,
277                         'VAR' => 10
278                 },
279                 GOTOS => {
280                         'exp' => 48,
281                         'var' => 11,
282                         'func' => 12,
283                         'possible_pointer' => 13
284                 }
285         },
286         {#State 20
287                 ACTIONS => {
288                         "-" => 1,
289                         "~" => 3,
290                         "&" => 4,
291                         'TEXT' => 6,
292                         'NUM' => 5,
293                         "!" => 8,
294                         "(" => 7,
295                         "*" => 9,
296                         'VAR' => 10
297                 },
298                 GOTOS => {
299                         'exp' => 49,
300                         'var' => 11,
301                         'func' => 12,
302                         'possible_pointer' => 13
303                 }
304         },
305         {#State 21
306                 ACTIONS => {
307                         "-" => 1,
308                         "~" => 3,
309                         "&" => 4,
310                         'TEXT' => 6,
311                         'NUM' => 5,
312                         "!" => 8,
313                         "(" => 7,
314                         "*" => 9,
315                         'VAR' => 10
316                 },
317                 GOTOS => {
318                         'exp' => 50,
319                         'var' => 11,
320                         'func' => 12,
321                         'possible_pointer' => 13
322                 }
323         },
324         {#State 22
325                 ACTIONS => {
326                         "-" => 1,
327                         "~" => 3,
328                         "&" => 4,
329                         'TEXT' => 6,
330                         'NUM' => 5,
331                         "!" => 8,
332                         "(" => 7,
333                         "*" => 9,
334                         'VAR' => 10
335                 },
336                 GOTOS => {
337                         'exp' => 51,
338                         'var' => 11,
339                         'func' => 12,
340                         'possible_pointer' => 13
341                 }
342         },
343         {#State 23
344                 ACTIONS => {
345                         "-" => 1,
346                         "~" => 3,
347                         "&" => 4,
348                         'TEXT' => 6,
349                         'NUM' => 5,
350                         "!" => 8,
351                         "(" => 7,
352                         "*" => 9,
353                         'VAR' => 10
354                 },
355                 GOTOS => {
356                         'exp' => 52,
357                         'var' => 11,
358                         'func' => 12,
359                         'possible_pointer' => 13
360                 }
361         },
362         {#State 24
363                 ACTIONS => {
364                         "-" => 1,
365                         "~" => 3,
366                         "&" => 4,
367                         'TEXT' => 6,
368                         'NUM' => 5,
369                         "!" => 8,
370                         "(" => 7,
371                         "*" => 9,
372                         'VAR' => 10
373                 },
374                 GOTOS => {
375                         'exp' => 53,
376                         'var' => 11,
377                         'func' => 12,
378                         'possible_pointer' => 13
379                 }
380         },
381         {#State 25
382                 ACTIONS => {
383                         "-" => 1,
384                         "~" => 3,
385                         "&" => 4,
386                         'TEXT' => 6,
387                         'NUM' => 5,
388                         "!" => 8,
389                         "(" => 7,
390                         "*" => 9,
391                         'VAR' => 10
392                 },
393                 GOTOS => {
394                         'exp' => 54,
395                         'var' => 11,
396                         'func' => 12,
397                         'possible_pointer' => 13
398                 }
399         },
400         {#State 26
401                 ACTIONS => {
402                         "-" => 1,
403                         "~" => 3,
404                         "&" => 4,
405                         'TEXT' => 6,
406                         'NUM' => 5,
407                         "!" => 8,
408                         "(" => 7,
409                         "*" => 9,
410                         'VAR' => 10
411                 },
412                 GOTOS => {
413                         'exp' => 55,
414                         'var' => 11,
415                         'func' => 12,
416                         'possible_pointer' => 13
417                 }
418         },
419         {#State 27
420                 ACTIONS => {
421                         "-" => 1,
422                         "~" => 3,
423                         "&" => 4,
424                         'TEXT' => 6,
425                         'NUM' => 5,
426                         "!" => 8,
427                         "(" => 7,
428                         "*" => 9,
429                         'VAR' => 10
430                 },
431                 GOTOS => {
432                         'exp' => 56,
433                         'var' => 11,
434                         'func' => 12,
435                         'possible_pointer' => 13
436                 }
437         },
438         {#State 28
439                 ACTIONS => {
440                         "-" => 1,
441                         "~" => 3,
442                         "&" => 4,
443                         'TEXT' => 6,
444                         'NUM' => 5,
445                         "!" => 8,
446                         "(" => 7,
447                         "*" => 9,
448                         'VAR' => 10
449                 },
450                 GOTOS => {
451                         'exp' => 57,
452                         'var' => 11,
453                         'func' => 12,
454                         'possible_pointer' => 13
455                 }
456         },
457         {#State 29
458                 ACTIONS => {
459                         "-" => 1,
460                         "~" => 3,
461                         "&" => 4,
462                         'TEXT' => 6,
463                         'NUM' => 5,
464                         "!" => 8,
465                         "(" => 7,
466                         "*" => 9,
467                         'VAR' => 10
468                 },
469                 GOTOS => {
470                         'exp' => 58,
471                         'var' => 11,
472                         'func' => 12,
473                         'possible_pointer' => 13
474                 }
475         },
476         {#State 30
477                 ACTIONS => {
478                         "-" => 1,
479                         "~" => 3,
480                         "&" => 4,
481                         'TEXT' => 6,
482                         'NUM' => 5,
483                         "!" => 8,
484                         "(" => 7,
485                         "*" => 9,
486                         'VAR' => 10
487                 },
488                 GOTOS => {
489                         'exp' => 59,
490                         'var' => 11,
491                         'func' => 12,
492                         'possible_pointer' => 13
493                 }
494         },
495         {#State 31
496                 ACTIONS => {
497                         "-" => 1,
498                         "~" => 3,
499                         "&" => 4,
500                         'TEXT' => 6,
501                         'NUM' => 5,
502                         "!" => 8,
503                         "(" => 7,
504                         "*" => 9,
505                         'VAR' => 10
506                 },
507                 GOTOS => {
508                         'exp' => 60,
509                         'var' => 11,
510                         'func' => 12,
511                         'possible_pointer' => 13
512                 }
513         },
514         {#State 32
515                 ACTIONS => {
516                         "-" => 1,
517                         "~" => 3,
518                         "&" => 4,
519                         'TEXT' => 6,
520                         'NUM' => 5,
521                         "!" => 8,
522                         "(" => 7,
523                         "*" => 9,
524                         'VAR' => 10
525                 },
526                 GOTOS => {
527                         'exp' => 61,
528                         'var' => 11,
529                         'func' => 12,
530                         'possible_pointer' => 13
531                 }
532         },
533         {#State 33
534                 ACTIONS => {
535                         "-" => 1,
536                         "~" => 3,
537                         "&" => 4,
538                         'TEXT' => 6,
539                         'NUM' => 5,
540                         "!" => 8,
541                         "(" => 7,
542                         "*" => 9,
543                         'VAR' => 10
544                 },
545                 GOTOS => {
546                         'exp' => 62,
547                         'var' => 11,
548                         'func' => 12,
549                         'possible_pointer' => 13
550                 }
551         },
552         {#State 34
553                 ACTIONS => {
554                         "-" => 1,
555                         "~" => 3,
556                         "&" => 4,
557                         'TEXT' => 6,
558                         'NUM' => 5,
559                         "!" => 8,
560                         "(" => 7,
561                         "*" => 9,
562                         'VAR' => 10
563                 },
564                 GOTOS => {
565                         'exp' => 63,
566                         'var' => 11,
567                         'func' => 12,
568                         'possible_pointer' => 13
569                 }
570         },
571         {#State 35
572                 ACTIONS => {
573                         "^" => 21,
574                         "=>" => 31,
575                         "<=" => 33
576                 },
577                 DEFAULT => -5
578         },
579         {#State 36
580                 ACTIONS => {
581                         "^" => 21,
582                         "=>" => 31,
583                         "<=" => 33
584                 },
585                 DEFAULT => -27
586         },
587         {#State 37
588                 ACTIONS => {
589                         ")" => 64,
590                         "->" => 43,
591                         "." => 44
592                 },
593                 DEFAULT => -4
594         },
595         {#State 38
596                 ACTIONS => {
597                         "-" => 15,
598                         "<" => 17,
599                         "+" => 18,
600                         "%" => 19,
601                         "==" => 20,
602                         "^" => 21,
603                         "*" => 22,
604                         ")" => 65,
605                         ">>" => 23,
606                         "!=" => 24,
607                         "?" => 25,
608                         "&&" => 27,
609                         "||" => 26,
610                         "&" => 28,
611                         "/" => 29,
612                         "|" => 30,
613                         "=>" => 31,
614                         "<<" => 32,
615                         "<=" => 33,
616                         ">" => 34
617                 }
618         },
619         {#State 39
620                 ACTIONS => {
621                         "-" => 15,
622                         "<" => 17,
623                         "+" => 18,
624                         "%" => 19,
625                         "==" => 20,
626                         "^" => 21,
627                         "*" => 22,
628                         ">>" => 23,
629                         "!=" => 24,
630                         "?" => 25,
631                         "&&" => 27,
632                         "||" => 26,
633                         "&" => 28,
634                         "/" => 29,
635                         "|" => 30,
636                         "=>" => 31,
637                         "<<" => 32,
638                         "<=" => 33,
639                         ">" => 34
640                 },
641                 DEFAULT => -24
642         },
643         {#State 40
644                 DEFAULT => -31
645         },
646         {#State 41
647                 DEFAULT => -30
648         },
649         {#State 42
650                 ACTIONS => {
651                         "-" => 1,
652                         "~" => 3,
653                         "&" => 4,
654                         'TEXT' => 6,
655                         'NUM' => 5,
656                         "!" => 8,
657                         "(" => 7,
658                         "*" => 9,
659                         'VAR' => 10
660                 },
661                 DEFAULT => -37,
662                 GOTOS => {
663                         'exp' => 69,
664                         'var' => 11,
665                         'args' => 66,
666                         'func' => 12,
667                         'opt_args' => 70,
668                         'exp_or_possible_pointer' => 67,
669                         'possible_pointer' => 68
670                 }
671         },
672         {#State 43
673                 ACTIONS => {
674                         'VAR' => 71
675                 }
676         },
677         {#State 44
678                 ACTIONS => {
679                         'VAR' => 72
680                 }
681         },
682         {#State 45
683                 ACTIONS => {
684                         "<" => 17,
685                         "==" => 20,
686                         "^" => 21,
687                         ">>" => 23,
688                         "!=" => 24,
689                         "?" => 25,
690                         "&&" => 27,
691                         "||" => 26,
692                         "&" => 28,
693                         "|" => 30,
694                         "=>" => 31,
695                         "<<" => 32,
696                         "<=" => 33,
697                         ">" => 34
698                 },
699                 DEFAULT => -7
700         },
701         {#State 46
702                 ACTIONS => {
703                         "==" => 20,
704                         "^" => 21,
705                         "!=" => 24,
706                         "?" => 25,
707                         "&&" => 27,
708                         "||" => 26,
709                         "&" => 28,
710                         "|" => 30,
711                         "=>" => 31,
712                         "<=" => 33
713                 },
714                 DEFAULT => -10
715         },
716         {#State 47
717                 ACTIONS => {
718                         "<" => 17,
719                         "==" => 20,
720                         "^" => 21,
721                         ">>" => 23,
722                         "!=" => 24,
723                         "?" => 25,
724                         "&&" => 27,
725                         "||" => 26,
726                         "&" => 28,
727                         "|" => 30,
728                         "=>" => 31,
729                         "<<" => 32,
730                         "<=" => 33,
731                         ">" => 34
732                 },
733                 DEFAULT => -6
734         },
735         {#State 48
736                 ACTIONS => {
737                         "-" => 15,
738                         "<" => 17,
739                         "+" => 18,
740                         "==" => 20,
741                         "^" => 21,
742                         ">>" => 23,
743                         "!=" => 24,
744                         "?" => 25,
745                         "&&" => 27,
746                         "||" => 26,
747                         "&" => 28,
748                         "|" => 30,
749                         "=>" => 31,
750                         "<<" => 32,
751                         "<=" => 33,
752                         ">" => 34
753                 },
754                 DEFAULT => -9
755         },
756         {#State 49
757                 ACTIONS => {
758                         "^" => 21,
759                         "?" => 25,
760                         "&&" => 27,
761                         "||" => 26,
762                         "&" => 28,
763                         "|" => 30,
764                         "=>" => 31,
765                         "<=" => 33
766                 },
767                 DEFAULT => -13
768         },
769         {#State 50
770                 ACTIONS => {
771                         "-" => 15,
772                         "<" => 17,
773                         "+" => 18,
774                         "%" => 19,
775                         "==" => 20,
776                         "^" => 21,
777                         "*" => 22,
778                         ">>" => 23,
779                         "!=" => 24,
780                         "?" => 25,
781                         "&&" => 27,
782                         "||" => 26,
783                         "&" => 28,
784                         "/" => 29,
785                         "|" => 30,
786                         "=>" => 31,
787                         "<<" => 32,
788                         "<=" => 33,
789                         ">" => 34
790                 },
791                 DEFAULT => -28
792         },
793         {#State 51
794                 ACTIONS => {
795                         "-" => 15,
796                         "<" => 17,
797                         "+" => 18,
798                         "==" => 20,
799                         "^" => 21,
800                         ">>" => 23,
801                         "!=" => 24,
802                         "?" => 25,
803                         "&&" => 27,
804                         "||" => 26,
805                         "&" => 28,
806                         "|" => 30,
807                         "=>" => 31,
808                         "<<" => 32,
809                         "<=" => 33,
810                         ">" => 34
811                 },
812                 DEFAULT => -8
813         },
814         {#State 52
815                 ACTIONS => {
816                         "<" => 17,
817                         "==" => 20,
818                         "^" => 21,
819                         "!=" => 24,
820                         "?" => 25,
821                         "&&" => 27,
822                         "||" => 26,
823                         "&" => 28,
824                         "|" => 30,
825                         "=>" => 31,
826                         "<=" => 33,
827                         ">" => 34
828                 },
829                 DEFAULT => -17
830         },
831         {#State 53
832                 ACTIONS => {
833                         "^" => 21,
834                         "?" => 25,
835                         "&&" => 27,
836                         "||" => 26,
837                         "&" => 28,
838                         "|" => 30,
839                         "=>" => 31,
840                         "<=" => 33
841                 },
842                 DEFAULT => -18
843         },
844         {#State 54
845                 ACTIONS => {
846                         ":" => 73,
847                         "-" => 15,
848                         "<" => 17,
849                         "+" => 18,
850                         "%" => 19,
851                         "==" => 20,
852                         "^" => 21,
853                         "*" => 22,
854                         ">>" => 23,
855                         "!=" => 24,
856                         "?" => 25,
857                         "&&" => 27,
858                         "||" => 26,
859                         "&" => 28,
860                         "/" => 29,
861                         "|" => 30,
862                         "=>" => 31,
863                         "<<" => 32,
864                         "<=" => 33,
865                         ">" => 34
866                 }
867         },
868         {#State 55
869                 ACTIONS => {
870                         "^" => 21,
871                         "?" => 25,
872                         "=>" => 31,
873                         "<=" => 33
874                 },
875                 DEFAULT => -19
876         },
877         {#State 56
878                 ACTIONS => {
879                         "^" => 21,
880                         "?" => 25,
881                         "||" => 26,
882                         "=>" => 31,
883                         "<=" => 33
884                 },
885                 DEFAULT => -20
886         },
887         {#State 57
888                 ACTIONS => {
889                         "^" => 21,
890                         "?" => 25,
891                         "&&" => 27,
892                         "||" => 26,
893                         "|" => 30,
894                         "=>" => 31,
895                         "<=" => 33
896                 },
897                 DEFAULT => -21
898         },
899         {#State 58
900                 ACTIONS => {
901                         "-" => 15,
902                         "<" => 17,
903                         "+" => 18,
904                         "==" => 20,
905                         "^" => 21,
906                         ">>" => 23,
907                         "!=" => 24,
908                         "?" => 25,
909                         "&&" => 27,
910                         "||" => 26,
911                         "&" => 28,
912                         "|" => 30,
913                         "=>" => 31,
914                         "<<" => 32,
915                         "<=" => 33,
916                         ">" => 34
917                 },
918                 DEFAULT => -25
919         },
920         {#State 59
921                 ACTIONS => {
922                         "^" => 21,
923                         "?" => 25,
924                         "&&" => 27,
925                         "||" => 26,
926                         "=>" => 31,
927                         "<=" => 33
928                 },
929                 DEFAULT => -12
930         },
931         {#State 60
932                 ACTIONS => {
933                         "-" => 15,
934                         "<" => 17,
935                         "+" => 18,
936                         "%" => 19,
937                         "==" => 20,
938                         "^" => 21,
939                         "*" => 22,
940                         ">>" => 23,
941                         "!=" => 24,
942                         "?" => 25,
943                         "&&" => 27,
944                         "||" => 26,
945                         "&" => 28,
946                         "/" => 29,
947                         "|" => 30,
948                         "=>" => 31,
949                         "<<" => 32,
950                         "<=" => 33,
951                         ">" => 34
952                 },
953                 DEFAULT => -15
954         },
955         {#State 61
956                 ACTIONS => {
957                         "<" => 17,
958                         "==" => 20,
959                         "^" => 21,
960                         "!=" => 24,
961                         "?" => 25,
962                         "&&" => 27,
963                         "||" => 26,
964                         "&" => 28,
965                         "|" => 30,
966                         "=>" => 31,
967                         "<=" => 33,
968                         ">" => 34
969                 },
970                 DEFAULT => -16
971         },
972         {#State 62
973                 ACTIONS => {
974                         "-" => 15,
975                         "<" => 17,
976                         "+" => 18,
977                         "%" => 19,
978                         "==" => 20,
979                         "^" => 21,
980                         "*" => 22,
981                         ">>" => 23,
982                         "!=" => 24,
983                         "?" => 25,
984                         "&&" => 27,
985                         "||" => 26,
986                         "&" => 28,
987                         "/" => 29,
988                         "|" => 30,
989                         "=>" => 31,
990                         "<<" => 32,
991                         "<=" => 33,
992                         ">" => 34
993                 },
994                 DEFAULT => -14
995         },
996         {#State 63
997                 ACTIONS => {
998                         "==" => 20,
999                         "^" => 21,
1000                         "!=" => 24,
1001                         "?" => 25,
1002                         "&&" => 27,
1003                         "||" => 26,
1004                         "&" => 28,
1005                         "|" => 30,
1006                         "=>" => 31,
1007                         "<=" => 33
1008                 },
1009                 DEFAULT => -11
1010         },
1011         {#State 64
1012                 DEFAULT => -34
1013         },
1014         {#State 65
1015                 DEFAULT => -29
1016         },
1017         {#State 66
1018                 DEFAULT => -38
1019         },
1020         {#State 67
1021                 ACTIONS => {
1022                         "," => 74
1023                 },
1024                 DEFAULT => -41
1025         },
1026         {#State 68
1027                 DEFAULT => -32
1028         },
1029         {#State 69
1030                 ACTIONS => {
1031                         "-" => 15,
1032                         "<" => 17,
1033                         "+" => 18,
1034                         "%" => 19,
1035                         "==" => 20,
1036                         "^" => 21,
1037                         "*" => 22,
1038                         ">>" => 23,
1039                         "!=" => 24,
1040                         "?" => 25,
1041                         "&&" => 27,
1042                         "||" => 26,
1043                         "&" => 28,
1044                         "/" => 29,
1045                         "|" => 30,
1046                         "=>" => 31,
1047                         "<<" => 32,
1048                         "<=" => 33,
1049                         ">" => 34
1050                 },
1051                 DEFAULT => -39
1052         },
1053         {#State 70
1054                 ACTIONS => {
1055                         ")" => 75
1056                 }
1057         },
1058         {#State 71
1059                 DEFAULT => -35
1060         },
1061         {#State 72
1062                 DEFAULT => -33
1063         },
1064         {#State 73
1065                 ACTIONS => {
1066                         "-" => 1,
1067                         "~" => 3,
1068                         "&" => 4,
1069                         'TEXT' => 6,
1070                         'NUM' => 5,
1071                         "!" => 8,
1072                         "(" => 7,
1073                         "*" => 9,
1074                         'VAR' => 10
1075                 },
1076                 GOTOS => {
1077                         'exp' => 76,
1078                         'var' => 11,
1079                         'func' => 12,
1080                         'possible_pointer' => 13
1081                 }
1082         },
1083         {#State 74
1084                 ACTIONS => {
1085                         "-" => 1,
1086                         "~" => 3,
1087                         "&" => 4,
1088                         'TEXT' => 6,
1089                         'NUM' => 5,
1090                         "!" => 8,
1091                         "(" => 7,
1092                         "*" => 9,
1093                         'VAR' => 10
1094                 },
1095                 GOTOS => {
1096                         'exp' => 69,
1097                         'var' => 11,
1098                         'args' => 77,
1099                         'func' => 12,
1100                         'exp_or_possible_pointer' => 67,
1101                         'possible_pointer' => 68
1102                 }
1103         },
1104         {#State 75
1105                 DEFAULT => -36
1106         },
1107         {#State 76
1108                 ACTIONS => {
1109                         "^" => 21,
1110                         "=>" => 31,
1111                         "<=" => 33
1112                 },
1113                 DEFAULT => -22
1114         },
1115         {#State 77
1116                 DEFAULT => -42
1117         }
1118 ],
1119                                   yyrules  =>
1120 [
1121         [#Rule 0
1122                  '$start', 2, undef
1123         ],
1124         [#Rule 1
1125                  'exp', 1, undef
1126         ],
1127         [#Rule 2
1128                  'exp', 1,
1129 sub
1130 #line 24 "./../pidl/expr.yp"
1131 { "\"$_[1]\"" }
1132         ],
1133         [#Rule 3
1134                  'exp', 1, undef
1135         ],
1136         [#Rule 4
1137                  'exp', 1, undef
1138         ],
1139         [#Rule 5
1140                  'exp', 2,
1141 sub
1142 #line 30 "./../pidl/expr.yp"
1143 { "~$_[2]" }
1144         ],
1145         [#Rule 6
1146                  'exp', 3,
1147 sub
1148 #line 32 "./../pidl/expr.yp"
1149 { "$_[1] + $_[3]" }
1150         ],
1151         [#Rule 7
1152                  'exp', 3,
1153 sub
1154 #line 34 "./../pidl/expr.yp"
1155 { "$_[1] - $_[3]" }
1156         ],
1157         [#Rule 8
1158                  'exp', 3,
1159 sub
1160 #line 36 "./../pidl/expr.yp"
1161 { "$_[1] * $_[3]" }
1162         ],
1163         [#Rule 9
1164                  'exp', 3,
1165 sub
1166 #line 38 "./../pidl/expr.yp"
1167 { "$_[1] % $_[3]" }
1168         ],
1169         [#Rule 10
1170                  'exp', 3,
1171 sub
1172 #line 40 "./../pidl/expr.yp"
1173 { "$_[1] < $_[3]" }
1174         ],
1175         [#Rule 11
1176                  'exp', 3,
1177 sub
1178 #line 42 "./../pidl/expr.yp"
1179 { "$_[1] > $_[3]" }
1180         ],
1181         [#Rule 12
1182                  'exp', 3,
1183 sub
1184 #line 44 "./../pidl/expr.yp"
1185 { "$_[1] | $_[3]" }
1186         ],
1187         [#Rule 13
1188                  'exp', 3,
1189 sub
1190 #line 46 "./../pidl/expr.yp"
1191 { "$_[1] == $_[3]" }
1192         ],
1193         [#Rule 14
1194                  'exp', 3,
1195 sub
1196 #line 48 "./../pidl/expr.yp"
1197 { "$_[1] <= $_[3]" }
1198         ],
1199         [#Rule 15
1200                  'exp', 3,
1201 sub
1202 #line 50 "./../pidl/expr.yp"
1203 { "$_[1] => $_[3]" }
1204         ],
1205         [#Rule 16
1206                  'exp', 3,
1207 sub
1208 #line 52 "./../pidl/expr.yp"
1209 { "$_[1] << $_[3]" }
1210         ],
1211         [#Rule 17
1212                  'exp', 3,
1213 sub
1214 #line 54 "./../pidl/expr.yp"
1215 { "$_[1] >> $_[3]" }
1216         ],
1217         [#Rule 18
1218                  'exp', 3,
1219 sub
1220 #line 56 "./../pidl/expr.yp"
1221 { "$_[1] != $_[3]" }
1222         ],
1223         [#Rule 19
1224                  'exp', 3,
1225 sub
1226 #line 58 "./../pidl/expr.yp"
1227 { "$_[1] || $_[3]" }
1228         ],
1229         [#Rule 20
1230                  'exp', 3,
1231 sub
1232 #line 60 "./../pidl/expr.yp"
1233 { "$_[1] && $_[3]" }
1234         ],
1235         [#Rule 21
1236                  'exp', 3,
1237 sub
1238 #line 62 "./../pidl/expr.yp"
1239 { "$_[1] & $_[3]" }
1240         ],
1241         [#Rule 22
1242                  'exp', 5,
1243 sub
1244 #line 64 "./../pidl/expr.yp"
1245 { "$_[1]?$_[3]:$_[5]" }
1246         ],
1247         [#Rule 23
1248                  'exp', 2,
1249 sub
1250 #line 66 "./../pidl/expr.yp"
1251 { "~$_[1]" }
1252         ],
1253         [#Rule 24
1254                  'exp', 2,
1255 sub
1256 #line 68 "./../pidl/expr.yp"
1257 { "not $_[1]" }
1258         ],
1259         [#Rule 25
1260                  'exp', 3,
1261 sub
1262 #line 70 "./../pidl/expr.yp"
1263 { "$_[1] / $_[3]" }
1264         ],
1265         [#Rule 26
1266                  'exp', 2,
1267 sub
1268 #line 72 "./../pidl/expr.yp"
1269 { "-$_[2]" }
1270         ],
1271         [#Rule 27
1272                  'exp', 2,
1273 sub
1274 #line 74 "./../pidl/expr.yp"
1275 { "&$_[2]" }
1276         ],
1277         [#Rule 28
1278                  'exp', 3,
1279 sub
1280 #line 76 "./../pidl/expr.yp"
1281 { "$_[1]^$_[3]" }
1282         ],
1283         [#Rule 29
1284                  'exp', 3,
1285 sub
1286 #line 78 "./../pidl/expr.yp"
1287 { "($_[2])" }
1288         ],
1289         [#Rule 30
1290                  'possible_pointer', 1,
1291 sub
1292 #line 82 "./../pidl/expr.yp"
1293 { $_[0]->_Lookup($_[1]) }
1294         ],
1295         [#Rule 31
1296                  'possible_pointer', 2,
1297 sub
1298 #line 84 "./../pidl/expr.yp"
1299 { $_[0]->_Dereference($_[2]); "*$_[2]" }
1300         ],
1301         [#Rule 32
1302                  'var', 1,
1303 sub
1304 #line 88 "./../pidl/expr.yp"
1305 { $_[0]->_Use($_[1]) }
1306         ],
1307         [#Rule 33
1308                  'var', 3,
1309 sub
1310 #line 90 "./../pidl/expr.yp"
1311 { $_[0]->_Use("$_[1].$_[3]") }
1312         ],
1313         [#Rule 34
1314                  'var', 3,
1315 sub
1316 #line 92 "./../pidl/expr.yp"
1317 { "($_[2])" }
1318         ],
1319         [#Rule 35
1320                  'var', 3,
1321 sub
1322 #line 94 "./../pidl/expr.yp"
1323 { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
1324         ],
1325         [#Rule 36
1326                  'func', 4,
1327 sub
1328 #line 99 "./../pidl/expr.yp"
1329 { "$_[1]($_[3])" }
1330         ],
1331         [#Rule 37
1332                  'opt_args', 0,
1333 sub
1334 #line 104 "./../pidl/expr.yp"
1335 { "" }
1336         ],
1337         [#Rule 38
1338                  'opt_args', 1, undef
1339         ],
1340         [#Rule 39
1341                  'exp_or_possible_pointer', 1, undef
1342         ],
1343         [#Rule 40
1344                  'exp_or_possible_pointer', 1, undef
1345         ],
1346         [#Rule 41
1347                  'args', 1, undef
1348         ],
1349         [#Rule 42
1350                  'args', 3,
1351 sub
1352 #line 118 "./../pidl/expr.yp"
1353 { "$_[1], $_[3]" }
1354         ]
1355 ],
1356                                   @_);
1357     bless($self,$class);
1358 }
1359
1360 #line 121 "./../pidl/expr.yp"
1361
1362
1363 package Parse::Pidl::Expr;
1364
1365 sub _Lexer {
1366         my($parser)=shift;
1367
1368         $parser->YYData->{INPUT}=~s/^[ \t]//;
1369
1370         for ($parser->YYData->{INPUT}) {
1371                 if (s/^(0x[0-9A-Fa-f]+)//) {
1372                         $parser->YYData->{LAST_TOKEN} = $1;
1373                         return('NUM',$1);
1374                 }
1375                 if (s/^([0-9]+(?:\.[0-9]+)?)//) {
1376                         $parser->YYData->{LAST_TOKEN} = $1;
1377                         return('NUM',$1);
1378                 }
1379                 if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
1380                         $parser->YYData->{LAST_TOKEN} = $1;
1381                         return('VAR',$1);
1382                 }
1383                 if (s/^\"(.*?)\"//) {
1384                         $parser->YYData->{LAST_TOKEN} = $1;
1385                         return('TEXT',$1); 
1386                 }
1387                 if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) {
1388                         $parser->YYData->{LAST_TOKEN} = $1;
1389                         return($1,$1);
1390                 }
1391                 if (s/^(.)//s) {
1392                         $parser->YYData->{LAST_TOKEN} = $1;
1393                         return($1,$1);
1394                 }
1395         }
1396 }
1397
1398 sub _Use($$)
1399 {
1400         my ($self, $x) = @_;
1401         if (defined($self->YYData->{USE})) {
1402                 return $self->YYData->{USE}->($x);
1403         }
1404         return $x;
1405 }
1406
1407 sub _Lookup($$) 
1408 {
1409         my ($self, $x) = @_;
1410         return $self->YYData->{LOOKUP}->($x);
1411 }
1412
1413 sub _Dereference($$)
1414 {
1415         my ($self, $x) = @_;
1416         if (defined($self->YYData->{DEREFERENCE})) {
1417                 $self->YYData->{DEREFERENCE}->($x);
1418         }
1419 }
1420
1421 sub _Error($)
1422 {
1423         my ($self) = @_;
1424         if (defined($self->YYData->{LAST_TOKEN})) {
1425                 $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'");
1426         } else {
1427                 $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."'");
1428         }
1429 }
1430
1431 sub Run {
1432         my($self, $data, $error, $lookup, $deref, $use) = @_;
1433
1434         $self->YYData->{FULL_INPUT} = $data;
1435         $self->YYData->{INPUT} = $data;
1436         $self->YYData->{LOOKUP} = $lookup;
1437         $self->YYData->{DEREFERENCE} = $deref;
1438         $self->YYData->{ERROR} = $error;
1439         $self->YYData->{USE} = $use;
1440
1441         return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);
1442 }
1443
1444 1;