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