lib/util/time: strip a potential trailing newline in the asctime case.
[Samba/gebeck_regimport.git] / pidl / lib / Parse / Pidl / Expr.pm
blob24581d29f4902288b04a1b5b74a5db068c77e004
1 ####################################################################
3 # This file was generated using Parse::Yapp version 1.05.
5 # Don't edit this file, use source file instead.
7 # ANY CHANGE MADE HERE WILL BE LOST !
9 ####################################################################
10 package Parse::Pidl::Expr;
11 use vars qw ( @ISA );
12 use strict;
14 @ISA= qw ( Parse::Yapp::Driver );
15 use Parse::Yapp::Driver;
19 sub new {
20 my($class)=shift;
21 ref($class)
22 and $class=ref($class);
24 my($self)=$class->SUPER::new( yyversion => '1.05',
25 yystates =>
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
39 GOTOS => {
40 'exp' => 2,
41 'var' => 11,
42 'func' => 12,
43 'possible_pointer' => 13
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
58 GOTOS => {
59 'exp' => 14,
60 'var' => 11,
61 'func' => 12,
62 'possible_pointer' => 13
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
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
101 GOTOS => {
102 'exp' => 35,
103 'var' => 11,
104 'func' => 12,
105 'possible_pointer' => 13
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
120 GOTOS => {
121 'exp' => 36,
122 'var' => 11,
123 'func' => 12,
124 'possible_pointer' => 13
127 {#State 5
128 DEFAULT => -1
130 {#State 6
131 DEFAULT => -2
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
145 GOTOS => {
146 'exp' => 38,
147 'var' => 37,
148 'func' => 12,
149 'possible_pointer' => 13
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
164 GOTOS => {
165 'exp' => 39,
166 'var' => 11,
167 'func' => 12,
168 'possible_pointer' => 13
171 {#State 9
172 ACTIONS => {
173 "*" => 9,
174 'VAR' => 41
176 GOTOS => {
177 'possible_pointer' => 40
180 {#State 10
181 ACTIONS => {
182 "(" => 42
184 DEFAULT => -30
186 {#State 11
187 ACTIONS => {
188 "->" => 43,
189 "." => 44
191 DEFAULT => -4
193 {#State 12
194 DEFAULT => -3
196 {#State 13
197 DEFAULT => -32
199 {#State 14
200 ACTIONS => {
201 "^" => 21,
202 "=>" => 31,
203 "<=" => 33
205 DEFAULT => -26
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
219 GOTOS => {
220 'exp' => 45,
221 'var' => 11,
222 'func' => 12,
223 'possible_pointer' => 13
226 {#State 16
227 DEFAULT => 0
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
241 GOTOS => {
242 'exp' => 46,
243 'var' => 11,
244 'func' => 12,
245 'possible_pointer' => 13
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
260 GOTOS => {
261 'exp' => 47,
262 'var' => 11,
263 'func' => 12,
264 'possible_pointer' => 13
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
279 GOTOS => {
280 'exp' => 48,
281 'var' => 11,
282 'func' => 12,
283 'possible_pointer' => 13
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
298 GOTOS => {
299 'exp' => 49,
300 'var' => 11,
301 'func' => 12,
302 'possible_pointer' => 13
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
317 GOTOS => {
318 'exp' => 50,
319 'var' => 11,
320 'func' => 12,
321 'possible_pointer' => 13
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
336 GOTOS => {
337 'exp' => 51,
338 'var' => 11,
339 'func' => 12,
340 'possible_pointer' => 13
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
355 GOTOS => {
356 'exp' => 52,
357 'var' => 11,
358 'func' => 12,
359 'possible_pointer' => 13
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
374 GOTOS => {
375 'exp' => 53,
376 'var' => 11,
377 'func' => 12,
378 'possible_pointer' => 13
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
393 GOTOS => {
394 'exp' => 54,
395 'var' => 11,
396 'func' => 12,
397 'possible_pointer' => 13
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
412 GOTOS => {
413 'exp' => 55,
414 'var' => 11,
415 'func' => 12,
416 'possible_pointer' => 13
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
431 GOTOS => {
432 'exp' => 56,
433 'var' => 11,
434 'func' => 12,
435 'possible_pointer' => 13
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
450 GOTOS => {
451 'exp' => 57,
452 'var' => 11,
453 'func' => 12,
454 'possible_pointer' => 13
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
469 GOTOS => {
470 'exp' => 58,
471 'var' => 11,
472 'func' => 12,
473 'possible_pointer' => 13
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
488 GOTOS => {
489 'exp' => 59,
490 'var' => 11,
491 'func' => 12,
492 'possible_pointer' => 13
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
507 GOTOS => {
508 'exp' => 60,
509 'var' => 11,
510 'func' => 12,
511 'possible_pointer' => 13
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
526 GOTOS => {
527 'exp' => 61,
528 'var' => 11,
529 'func' => 12,
530 'possible_pointer' => 13
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
545 GOTOS => {
546 'exp' => 62,
547 'var' => 11,
548 'func' => 12,
549 'possible_pointer' => 13
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
564 GOTOS => {
565 'exp' => 63,
566 'var' => 11,
567 'func' => 12,
568 'possible_pointer' => 13
571 {#State 35
572 ACTIONS => {
573 "^" => 21,
574 "=>" => 31,
575 "<=" => 33
577 DEFAULT => -5
579 {#State 36
580 ACTIONS => {
581 "^" => 21,
582 "=>" => 31,
583 "<=" => 33
585 DEFAULT => -27
587 {#State 37
588 ACTIONS => {
589 ")" => 64,
590 "->" => 43,
591 "." => 44
593 DEFAULT => -4
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
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
641 DEFAULT => -24
643 {#State 40
644 DEFAULT => -31
646 {#State 41
647 DEFAULT => -30
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
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
672 {#State 43
673 ACTIONS => {
674 'VAR' => 71
677 {#State 44
678 ACTIONS => {
679 'VAR' => 72
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
699 DEFAULT => -7
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
714 DEFAULT => -10
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
733 DEFAULT => -6
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
754 DEFAULT => -9
756 {#State 49
757 ACTIONS => {
758 "^" => 21,
759 "?" => 25,
760 "&&" => 27,
761 "||" => 26,
762 "&" => 28,
763 "|" => 30,
764 "=>" => 31,
765 "<=" => 33
767 DEFAULT => -13
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
791 DEFAULT => -28
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
812 DEFAULT => -8
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
829 DEFAULT => -17
831 {#State 53
832 ACTIONS => {
833 "^" => 21,
834 "?" => 25,
835 "&&" => 27,
836 "||" => 26,
837 "&" => 28,
838 "|" => 30,
839 "=>" => 31,
840 "<=" => 33
842 DEFAULT => -18
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
868 {#State 55
869 ACTIONS => {
870 "^" => 21,
871 "?" => 25,
872 "=>" => 31,
873 "<=" => 33
875 DEFAULT => -19
877 {#State 56
878 ACTIONS => {
879 "^" => 21,
880 "?" => 25,
881 "||" => 26,
882 "=>" => 31,
883 "<=" => 33
885 DEFAULT => -20
887 {#State 57
888 ACTIONS => {
889 "^" => 21,
890 "?" => 25,
891 "&&" => 27,
892 "||" => 26,
893 "|" => 30,
894 "=>" => 31,
895 "<=" => 33
897 DEFAULT => -21
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
918 DEFAULT => -25
920 {#State 59
921 ACTIONS => {
922 "^" => 21,
923 "?" => 25,
924 "&&" => 27,
925 "||" => 26,
926 "=>" => 31,
927 "<=" => 33
929 DEFAULT => -12
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
953 DEFAULT => -15
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
970 DEFAULT => -16
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
994 DEFAULT => -14
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
1009 DEFAULT => -11
1011 {#State 64
1012 DEFAULT => -34
1014 {#State 65
1015 DEFAULT => -29
1017 {#State 66
1018 DEFAULT => -38
1020 {#State 67
1021 ACTIONS => {
1022 "," => 74
1024 DEFAULT => -41
1026 {#State 68
1027 DEFAULT => -32
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
1051 DEFAULT => -39
1053 {#State 70
1054 ACTIONS => {
1055 ")" => 75
1058 {#State 71
1059 DEFAULT => -35
1061 {#State 72
1062 DEFAULT => -33
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
1076 GOTOS => {
1077 'exp' => 76,
1078 'var' => 11,
1079 'func' => 12,
1080 'possible_pointer' => 13
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
1095 GOTOS => {
1096 'exp' => 69,
1097 'var' => 11,
1098 'args' => 77,
1099 'func' => 12,
1100 'exp_or_possible_pointer' => 67,
1101 'possible_pointer' => 68
1104 {#State 75
1105 DEFAULT => -36
1107 {#State 76
1108 ACTIONS => {
1109 "^" => 21,
1110 "=>" => 31,
1111 "<=" => 33
1113 DEFAULT => -22
1115 {#State 77
1116 DEFAULT => -42
1119 yyrules =>
1121 [#Rule 0
1122 '$start', 2, undef
1124 [#Rule 1
1125 'exp', 1, undef
1127 [#Rule 2
1128 'exp', 1,
1130 #line 24 "expr.yp"
1131 { "\"$_[1]\"" }
1133 [#Rule 3
1134 'exp', 1, undef
1136 [#Rule 4
1137 'exp', 1, undef
1139 [#Rule 5
1140 'exp', 2,
1142 #line 30 "expr.yp"
1143 { "~$_[2]" }
1145 [#Rule 6
1146 'exp', 3,
1148 #line 32 "expr.yp"
1149 { "$_[1] + $_[3]" }
1151 [#Rule 7
1152 'exp', 3,
1154 #line 34 "expr.yp"
1155 { "$_[1] - $_[3]" }
1157 [#Rule 8
1158 'exp', 3,
1160 #line 36 "expr.yp"
1161 { "$_[1] * $_[3]" }
1163 [#Rule 9
1164 'exp', 3,
1166 #line 38 "expr.yp"
1167 { "$_[1] % $_[3]" }
1169 [#Rule 10
1170 'exp', 3,
1172 #line 40 "expr.yp"
1173 { "$_[1] < $_[3]" }
1175 [#Rule 11
1176 'exp', 3,
1178 #line 42 "expr.yp"
1179 { "$_[1] > $_[3]" }
1181 [#Rule 12
1182 'exp', 3,
1184 #line 44 "expr.yp"
1185 { "$_[1] | $_[3]" }
1187 [#Rule 13
1188 'exp', 3,
1190 #line 46 "expr.yp"
1191 { "$_[1] == $_[3]" }
1193 [#Rule 14
1194 'exp', 3,
1196 #line 48 "expr.yp"
1197 { "$_[1] <= $_[3]" }
1199 [#Rule 15
1200 'exp', 3,
1202 #line 50 "expr.yp"
1203 { "$_[1] => $_[3]" }
1205 [#Rule 16
1206 'exp', 3,
1208 #line 52 "expr.yp"
1209 { "$_[1] << $_[3]" }
1211 [#Rule 17
1212 'exp', 3,
1214 #line 54 "expr.yp"
1215 { "$_[1] >> $_[3]" }
1217 [#Rule 18
1218 'exp', 3,
1220 #line 56 "expr.yp"
1221 { "$_[1] != $_[3]" }
1223 [#Rule 19
1224 'exp', 3,
1226 #line 58 "expr.yp"
1227 { "$_[1] || $_[3]" }
1229 [#Rule 20
1230 'exp', 3,
1232 #line 60 "expr.yp"
1233 { "$_[1] && $_[3]" }
1235 [#Rule 21
1236 'exp', 3,
1238 #line 62 "expr.yp"
1239 { "$_[1] & $_[3]" }
1241 [#Rule 22
1242 'exp', 5,
1244 #line 64 "expr.yp"
1245 { "$_[1]?$_[3]:$_[5]" }
1247 [#Rule 23
1248 'exp', 2,
1250 #line 66 "expr.yp"
1251 { "~$_[1]" }
1253 [#Rule 24
1254 'exp', 2,
1256 #line 68 "expr.yp"
1257 { "not $_[1]" }
1259 [#Rule 25
1260 'exp', 3,
1262 #line 70 "expr.yp"
1263 { "$_[1] / $_[3]" }
1265 [#Rule 26
1266 'exp', 2,
1268 #line 72 "expr.yp"
1269 { "-$_[2]" }
1271 [#Rule 27
1272 'exp', 2,
1274 #line 74 "expr.yp"
1275 { "&$_[2]" }
1277 [#Rule 28
1278 'exp', 3,
1280 #line 76 "expr.yp"
1281 { "$_[1]^$_[3]" }
1283 [#Rule 29
1284 'exp', 3,
1286 #line 78 "expr.yp"
1287 { "($_[2])" }
1289 [#Rule 30
1290 'possible_pointer', 1,
1292 #line 82 "expr.yp"
1293 { $_[0]->_Lookup($_[1]) }
1295 [#Rule 31
1296 'possible_pointer', 2,
1298 #line 84 "expr.yp"
1299 { $_[0]->_Dereference($_[2]); "*$_[2]" }
1301 [#Rule 32
1302 'var', 1,
1304 #line 88 "expr.yp"
1305 { $_[0]->_Use($_[1]) }
1307 [#Rule 33
1308 'var', 3,
1310 #line 90 "expr.yp"
1311 { $_[0]->_Use("$_[1].$_[3]") }
1313 [#Rule 34
1314 'var', 3,
1316 #line 92 "expr.yp"
1317 { "($_[2])" }
1319 [#Rule 35
1320 'var', 3,
1322 #line 94 "expr.yp"
1323 { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
1325 [#Rule 36
1326 'func', 4,
1328 #line 99 "expr.yp"
1329 { "$_[1]($_[3])" }
1331 [#Rule 37
1332 'opt_args', 0,
1334 #line 104 "expr.yp"
1335 { "" }
1337 [#Rule 38
1338 'opt_args', 1, undef
1340 [#Rule 39
1341 'exp_or_possible_pointer', 1, undef
1343 [#Rule 40
1344 'exp_or_possible_pointer', 1, undef
1346 [#Rule 41
1347 'args', 1, undef
1349 [#Rule 42
1350 'args', 3,
1352 #line 118 "expr.yp"
1353 { "$_[1], $_[3]" }
1356 @_);
1357 bless($self,$class);
1360 #line 121 "expr.yp"
1363 package Parse::Pidl::Expr;
1365 sub _Lexer {
1366 my($parser)=shift;
1368 $parser->YYData->{INPUT}=~s/^[ \t]//;
1370 for ($parser->YYData->{INPUT}) {
1371 if (s/^(0x[0-9A-Fa-f]+)//) {
1372 $parser->YYData->{LAST_TOKEN} = $1;
1373 return('NUM',$1);
1375 if (s/^([0-9]+(?:\.[0-9]+)?)//) {
1376 $parser->YYData->{LAST_TOKEN} = $1;
1377 return('NUM',$1);
1379 if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
1380 $parser->YYData->{LAST_TOKEN} = $1;
1381 return('VAR',$1);
1383 if (s/^\"(.*?)\"//) {
1384 $parser->YYData->{LAST_TOKEN} = $1;
1385 return('TEXT',$1);
1387 if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) {
1388 $parser->YYData->{LAST_TOKEN} = $1;
1389 return($1,$1);
1391 if (s/^(.)//s) {
1392 $parser->YYData->{LAST_TOKEN} = $1;
1393 return($1,$1);
1398 sub _Use($$)
1400 my ($self, $x) = @_;
1401 if (defined($self->YYData->{USE})) {
1402 return $self->YYData->{USE}->($x);
1404 return $x;
1407 sub _Lookup($$)
1409 my ($self, $x) = @_;
1410 return $self->YYData->{LOOKUP}->($x);
1413 sub _Dereference($$)
1415 my ($self, $x) = @_;
1416 if (defined($self->YYData->{DEREFERENCE})) {
1417 $self->YYData->{DEREFERENCE}->($x);
1421 sub _Error($)
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}."'");
1431 sub Run {
1432 my($self, $data, $error, $lookup, $deref, $use) = @_;
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;
1441 return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);