smbd: fix share access check for overwrite dispostions
[Samba.git] / pidl / lib / Parse / Pidl / Expr.pm
blob967d687670edfe0b55a73408daa89045f0f97fea
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;
13 use warnings;
15 @ISA= qw ( Parse::Yapp::Driver );
16 use Parse::Yapp::Driver;
20 sub new {
21 my($class)=shift;
22 ref($class)
23 and $class=ref($class);
25 my($self)=$class->SUPER::new( yyversion => '1.05',
26 yystates =>
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
40 GOTOS => {
41 'exp' => 2,
42 'var' => 11,
43 'func' => 12,
44 'possible_pointer' => 13
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
59 GOTOS => {
60 'exp' => 14,
61 'var' => 11,
62 'func' => 12,
63 'possible_pointer' => 13
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
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
102 GOTOS => {
103 'exp' => 35,
104 'var' => 11,
105 'func' => 12,
106 'possible_pointer' => 13
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
121 GOTOS => {
122 'exp' => 36,
123 'var' => 11,
124 'func' => 12,
125 'possible_pointer' => 13
128 {#State 5
129 DEFAULT => -1
131 {#State 6
132 DEFAULT => -2
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
146 GOTOS => {
147 'exp' => 38,
148 'var' => 37,
149 'func' => 12,
150 'possible_pointer' => 13
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
165 GOTOS => {
166 'exp' => 39,
167 'var' => 11,
168 'func' => 12,
169 'possible_pointer' => 13
172 {#State 9
173 ACTIONS => {
174 "*" => 9,
175 'VAR' => 41
177 GOTOS => {
178 'possible_pointer' => 40
181 {#State 10
182 ACTIONS => {
183 "(" => 42
185 DEFAULT => -30
187 {#State 11
188 ACTIONS => {
189 "->" => 43,
190 "." => 44
192 DEFAULT => -4
194 {#State 12
195 DEFAULT => -3
197 {#State 13
198 DEFAULT => -32
200 {#State 14
201 ACTIONS => {
202 "^" => 21,
203 "=>" => 31,
204 "<=" => 33
206 DEFAULT => -26
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
220 GOTOS => {
221 'exp' => 45,
222 'var' => 11,
223 'func' => 12,
224 'possible_pointer' => 13
227 {#State 16
228 DEFAULT => 0
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
242 GOTOS => {
243 'exp' => 46,
244 'var' => 11,
245 'func' => 12,
246 'possible_pointer' => 13
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
261 GOTOS => {
262 'exp' => 47,
263 'var' => 11,
264 'func' => 12,
265 'possible_pointer' => 13
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
280 GOTOS => {
281 'exp' => 48,
282 'var' => 11,
283 'func' => 12,
284 'possible_pointer' => 13
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
299 GOTOS => {
300 'exp' => 49,
301 'var' => 11,
302 'func' => 12,
303 'possible_pointer' => 13
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
318 GOTOS => {
319 'exp' => 50,
320 'var' => 11,
321 'func' => 12,
322 'possible_pointer' => 13
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
337 GOTOS => {
338 'exp' => 51,
339 'var' => 11,
340 'func' => 12,
341 'possible_pointer' => 13
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
356 GOTOS => {
357 'exp' => 52,
358 'var' => 11,
359 'func' => 12,
360 'possible_pointer' => 13
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
375 GOTOS => {
376 'exp' => 53,
377 'var' => 11,
378 'func' => 12,
379 'possible_pointer' => 13
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
394 GOTOS => {
395 'exp' => 54,
396 'var' => 11,
397 'func' => 12,
398 'possible_pointer' => 13
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
413 GOTOS => {
414 'exp' => 55,
415 'var' => 11,
416 'func' => 12,
417 'possible_pointer' => 13
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
432 GOTOS => {
433 'exp' => 56,
434 'var' => 11,
435 'func' => 12,
436 'possible_pointer' => 13
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
451 GOTOS => {
452 'exp' => 57,
453 'var' => 11,
454 'func' => 12,
455 'possible_pointer' => 13
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
470 GOTOS => {
471 'exp' => 58,
472 'var' => 11,
473 'func' => 12,
474 'possible_pointer' => 13
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
489 GOTOS => {
490 'exp' => 59,
491 'var' => 11,
492 'func' => 12,
493 'possible_pointer' => 13
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
508 GOTOS => {
509 'exp' => 60,
510 'var' => 11,
511 'func' => 12,
512 'possible_pointer' => 13
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
527 GOTOS => {
528 'exp' => 61,
529 'var' => 11,
530 'func' => 12,
531 'possible_pointer' => 13
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
546 GOTOS => {
547 'exp' => 62,
548 'var' => 11,
549 'func' => 12,
550 'possible_pointer' => 13
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
565 GOTOS => {
566 'exp' => 63,
567 'var' => 11,
568 'func' => 12,
569 'possible_pointer' => 13
572 {#State 35
573 ACTIONS => {
574 "^" => 21,
575 "=>" => 31,
576 "<=" => 33
578 DEFAULT => -5
580 {#State 36
581 ACTIONS => {
582 "^" => 21,
583 "=>" => 31,
584 "<=" => 33
586 DEFAULT => -27
588 {#State 37
589 ACTIONS => {
590 ")" => 64,
591 "->" => 43,
592 "." => 44
594 DEFAULT => -4
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
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
642 DEFAULT => -24
644 {#State 40
645 DEFAULT => -31
647 {#State 41
648 DEFAULT => -30
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
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
673 {#State 43
674 ACTIONS => {
675 'VAR' => 71
678 {#State 44
679 ACTIONS => {
680 'VAR' => 72
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
700 DEFAULT => -7
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
715 DEFAULT => -10
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
734 DEFAULT => -6
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
755 DEFAULT => -9
757 {#State 49
758 ACTIONS => {
759 "^" => 21,
760 "?" => 25,
761 "&&" => 27,
762 "||" => 26,
763 "&" => 28,
764 "|" => 30,
765 "=>" => 31,
766 "<=" => 33
768 DEFAULT => -13
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
792 DEFAULT => -28
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
813 DEFAULT => -8
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
830 DEFAULT => -17
832 {#State 53
833 ACTIONS => {
834 "^" => 21,
835 "?" => 25,
836 "&&" => 27,
837 "||" => 26,
838 "&" => 28,
839 "|" => 30,
840 "=>" => 31,
841 "<=" => 33
843 DEFAULT => -18
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
869 {#State 55
870 ACTIONS => {
871 "^" => 21,
872 "?" => 25,
873 "=>" => 31,
874 "<=" => 33
876 DEFAULT => -19
878 {#State 56
879 ACTIONS => {
880 "^" => 21,
881 "?" => 25,
882 "||" => 26,
883 "=>" => 31,
884 "<=" => 33
886 DEFAULT => -20
888 {#State 57
889 ACTIONS => {
890 "^" => 21,
891 "?" => 25,
892 "&&" => 27,
893 "||" => 26,
894 "|" => 30,
895 "=>" => 31,
896 "<=" => 33
898 DEFAULT => -21
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
919 DEFAULT => -25
921 {#State 59
922 ACTIONS => {
923 "^" => 21,
924 "?" => 25,
925 "&&" => 27,
926 "||" => 26,
927 "=>" => 31,
928 "<=" => 33
930 DEFAULT => -12
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
954 DEFAULT => -15
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
971 DEFAULT => -16
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
995 DEFAULT => -14
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
1010 DEFAULT => -11
1012 {#State 64
1013 DEFAULT => -34
1015 {#State 65
1016 DEFAULT => -29
1018 {#State 66
1019 DEFAULT => -38
1021 {#State 67
1022 ACTIONS => {
1023 "," => 74
1025 DEFAULT => -41
1027 {#State 68
1028 DEFAULT => -32
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
1052 DEFAULT => -39
1054 {#State 70
1055 ACTIONS => {
1056 ")" => 75
1059 {#State 71
1060 DEFAULT => -35
1062 {#State 72
1063 DEFAULT => -33
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
1077 GOTOS => {
1078 'exp' => 76,
1079 'var' => 11,
1080 'func' => 12,
1081 'possible_pointer' => 13
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
1096 GOTOS => {
1097 'exp' => 69,
1098 'var' => 11,
1099 'args' => 77,
1100 'func' => 12,
1101 'exp_or_possible_pointer' => 67,
1102 'possible_pointer' => 68
1105 {#State 75
1106 DEFAULT => -36
1108 {#State 76
1109 ACTIONS => {
1110 "^" => 21,
1111 "=>" => 31,
1112 "<=" => 33
1114 DEFAULT => -22
1116 {#State 77
1117 DEFAULT => -42
1120 yyrules =>
1122 [#Rule 0
1123 '$start', 2, undef
1125 [#Rule 1
1126 'exp', 1, undef
1128 [#Rule 2
1129 'exp', 1,
1131 #line 24 "expr.yp"
1132 { "\"$_[1]\"" }
1134 [#Rule 3
1135 'exp', 1, undef
1137 [#Rule 4
1138 'exp', 1, undef
1140 [#Rule 5
1141 'exp', 2,
1143 #line 30 "expr.yp"
1144 { "~$_[2]" }
1146 [#Rule 6
1147 'exp', 3,
1149 #line 32 "expr.yp"
1150 { "$_[1] + $_[3]" }
1152 [#Rule 7
1153 'exp', 3,
1155 #line 34 "expr.yp"
1156 { "$_[1] - $_[3]" }
1158 [#Rule 8
1159 'exp', 3,
1161 #line 36 "expr.yp"
1162 { "$_[1] * $_[3]" }
1164 [#Rule 9
1165 'exp', 3,
1167 #line 38 "expr.yp"
1168 { "$_[1] % $_[3]" }
1170 [#Rule 10
1171 'exp', 3,
1173 #line 40 "expr.yp"
1174 { "$_[1] < $_[3]" }
1176 [#Rule 11
1177 'exp', 3,
1179 #line 42 "expr.yp"
1180 { "$_[1] > $_[3]" }
1182 [#Rule 12
1183 'exp', 3,
1185 #line 44 "expr.yp"
1186 { "$_[1] | $_[3]" }
1188 [#Rule 13
1189 'exp', 3,
1191 #line 46 "expr.yp"
1192 { "$_[1] == $_[3]" }
1194 [#Rule 14
1195 'exp', 3,
1197 #line 48 "expr.yp"
1198 { "$_[1] <= $_[3]" }
1200 [#Rule 15
1201 'exp', 3,
1203 #line 50 "expr.yp"
1204 { "$_[1] => $_[3]" }
1206 [#Rule 16
1207 'exp', 3,
1209 #line 52 "expr.yp"
1210 { "$_[1] << $_[3]" }
1212 [#Rule 17
1213 'exp', 3,
1215 #line 54 "expr.yp"
1216 { "$_[1] >> $_[3]" }
1218 [#Rule 18
1219 'exp', 3,
1221 #line 56 "expr.yp"
1222 { "$_[1] != $_[3]" }
1224 [#Rule 19
1225 'exp', 3,
1227 #line 58 "expr.yp"
1228 { "$_[1] || $_[3]" }
1230 [#Rule 20
1231 'exp', 3,
1233 #line 60 "expr.yp"
1234 { "$_[1] && $_[3]" }
1236 [#Rule 21
1237 'exp', 3,
1239 #line 62 "expr.yp"
1240 { "$_[1] & $_[3]" }
1242 [#Rule 22
1243 'exp', 5,
1245 #line 64 "expr.yp"
1246 { "$_[1]?$_[3]:$_[5]" }
1248 [#Rule 23
1249 'exp', 2,
1251 #line 66 "expr.yp"
1252 { "~$_[1]" }
1254 [#Rule 24
1255 'exp', 2,
1257 #line 68 "expr.yp"
1258 { "not $_[1]" }
1260 [#Rule 25
1261 'exp', 3,
1263 #line 70 "expr.yp"
1264 { "$_[1] / $_[3]" }
1266 [#Rule 26
1267 'exp', 2,
1269 #line 72 "expr.yp"
1270 { "-$_[2]" }
1272 [#Rule 27
1273 'exp', 2,
1275 #line 74 "expr.yp"
1276 { "&$_[2]" }
1278 [#Rule 28
1279 'exp', 3,
1281 #line 76 "expr.yp"
1282 { "$_[1]^$_[3]" }
1284 [#Rule 29
1285 'exp', 3,
1287 #line 78 "expr.yp"
1288 { "($_[2])" }
1290 [#Rule 30
1291 'possible_pointer', 1,
1293 #line 82 "expr.yp"
1294 { $_[0]->_Lookup($_[1]) }
1296 [#Rule 31
1297 'possible_pointer', 2,
1299 #line 84 "expr.yp"
1300 { $_[0]->_Dereference($_[2]); "*$_[2]" }
1302 [#Rule 32
1303 'var', 1,
1305 #line 88 "expr.yp"
1306 { $_[0]->_Use($_[1]) }
1308 [#Rule 33
1309 'var', 3,
1311 #line 90 "expr.yp"
1312 { $_[0]->_Use("$_[1].$_[3]") }
1314 [#Rule 34
1315 'var', 3,
1317 #line 92 "expr.yp"
1318 { "($_[2])" }
1320 [#Rule 35
1321 'var', 3,
1323 #line 94 "expr.yp"
1324 { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
1326 [#Rule 36
1327 'func', 4,
1329 #line 99 "expr.yp"
1330 { "$_[1]($_[3])" }
1332 [#Rule 37
1333 'opt_args', 0,
1335 #line 104 "expr.yp"
1336 { "" }
1338 [#Rule 38
1339 'opt_args', 1, undef
1341 [#Rule 39
1342 'exp_or_possible_pointer', 1, undef
1344 [#Rule 40
1345 'exp_or_possible_pointer', 1, undef
1347 [#Rule 41
1348 'args', 1, undef
1350 [#Rule 42
1351 'args', 3,
1353 #line 118 "expr.yp"
1354 { "$_[1], $_[3]" }
1357 @_);
1358 bless($self,$class);
1361 #line 121 "expr.yp"
1364 package Parse::Pidl::Expr;
1366 sub _Lexer {
1367 my($parser)=shift;
1369 $parser->YYData->{INPUT}=~s/^[ \t]//;
1371 for ($parser->YYData->{INPUT}) {
1372 if (s/^(0x[0-9A-Fa-f]+)//) {
1373 $parser->YYData->{LAST_TOKEN} = $1;
1374 return('NUM',$1);
1376 if (s/^([0-9]+(?:\.[0-9]+)?)//) {
1377 $parser->YYData->{LAST_TOKEN} = $1;
1378 return('NUM',$1);
1380 if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
1381 $parser->YYData->{LAST_TOKEN} = $1;
1382 return('VAR',$1);
1384 if (s/^\"(.*?)\"//) {
1385 $parser->YYData->{LAST_TOKEN} = $1;
1386 return('TEXT',$1);
1388 if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) {
1389 $parser->YYData->{LAST_TOKEN} = $1;
1390 return($1,$1);
1392 if (s/^(.)//s) {
1393 $parser->YYData->{LAST_TOKEN} = $1;
1394 return($1,$1);
1399 sub _Use($$)
1401 my ($self, $x) = @_;
1402 if (defined($self->YYData->{USE})) {
1403 return $self->YYData->{USE}->($x);
1405 return $x;
1408 sub _Lookup($$)
1410 my ($self, $x) = @_;
1411 return $self->YYData->{LOOKUP}->($x);
1414 sub _Dereference($$)
1416 my ($self, $x) = @_;
1417 if (defined($self->YYData->{DEREFERENCE})) {
1418 $self->YYData->{DEREFERENCE}->($x);
1422 sub _Error($)
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}."'");
1432 sub Run {
1433 my($self, $data, $error, $lookup, $deref, $use) = @_;
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;
1442 return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);