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