~ubuntu-branches/ubuntu/lucid/graphviz/lucid-updates

« back to all changes in this revision

Viewing changes to lib/expr/y.tab.c

  • Committer: Bazaar Package Importer
  • Author(s): Bryce Harrington
  • Date: 2008-06-19 20:23:23 UTC
  • mfrom: (1.2.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20080619202323-ls23h96ntj9ny94m
Tags: 2.18-1ubuntu1
* Merge from debian unstable, remaining changes:
  - Build depend on liblualib50-dev instead of liblua5.1-0-dev.
  - Drop libttf-dev (libttf-dev is in universe) (LP: #174749).
  - Replace gs-common with ghostscript.
  - Build-depend on python-dev instead of python2.4-dev or python2.5-dev.
  - Mention the correct python version for the python bindings in the
    package description.

Show diffs side-by-side

added added

removed removed

Lines of Context:
648
648
       0,   173,   173,   194,   195,   198,   198,   234,   237,   252,
649
649
     256,   260,   260,   264,   274,   287,   302,   312,   312,   323,
650
650
     335,   339,   352,   381,   384,   413,   414,   417,   438,   444,
651
 
     445,   452,   452,   500,   501,   502,   503,   506,   507,   511,
652
 
     514,   521,   524,   527,   531,   535,   580,   584,   588,   592,
653
 
     596,   600,   604,   608,   612,   616,   620,   624,   628,   632,
654
 
     636,   640,   653,   657,   666,   666,   666,   705,   725,   729,
655
 
     733,   737,   741,   745,   749,   753,   757,   761,   767,   771,
656
 
     775,   781,   786,   790,   814,   849,   873,   881,   889,   893,
657
 
     897,   900,   907,   912,   917,   922,   929,   930,   931,   934,
658
 
     935,   938,   942,   962,   975,   978,   982,   996,   999,  1006,
659
 
    1009,  1017,  1022,  1029,  1032,  1038,  1041,  1045,  1056,  1056,
660
 
    1068,  1071,  1083,  1102,  1106,  1113,  1116,  1123,  1124,  1137,
661
 
    1124
 
651
     445,   452,   452,   501,   502,   503,   504,   507,   508,   512,
 
652
     515,   522,   525,   528,   532,   536,   581,   585,   589,   593,
 
653
     597,   601,   605,   609,   613,   617,   621,   625,   629,   633,
 
654
     637,   641,   654,   658,   667,   667,   667,   706,   726,   730,
 
655
     734,   738,   742,   746,   750,   754,   758,   762,   768,   772,
 
656
     776,   782,   787,   791,   815,   850,   874,   882,   890,   894,
 
657
     898,   901,   908,   913,   918,   923,   930,   931,   932,   935,
 
658
     936,   939,   943,   963,   976,   979,   983,   997,  1000,  1007,
 
659
    1010,  1018,  1023,  1030,  1033,  1039,  1042,  1046,  1057,  1057,
 
660
    1069,  1072,  1084,  1103,  1107,  1114,  1117,  1124,  1125,  1138,
 
661
    1125
662
662
};
663
663
#endif
664
664
 
2208
2208
                        if ((yyvsp[(4) - (4)].expr) && (yyvsp[(4) - (4)].expr)->op == PROCEDURE)
2209
2209
                        {
2210
2210
                                (yyvsp[(1) - (4)].id)->lex = PROCEDURE;
 
2211
                                (yyvsp[(1) - (4)].id)->type = (yyvsp[(4) - (4)].expr)->type;
2211
2212
                                (yyvsp[(1) - (4)].id)->value = (yyvsp[(4) - (4)].expr);
2212
2213
                        }
2213
2214
                        else
2250
2251
    break;
2251
2252
 
2252
2253
  case 39:
2253
 
#line 511 "../../lib/expr/exparse.y"
 
2254
#line 512 "../../lib/expr/exparse.y"
2254
2255
    {
2255
2256
                        (yyval.expr) = 0;
2256
2257
                }
2257
2258
    break;
2258
2259
 
2259
2260
  case 40:
2260
 
#line 515 "../../lib/expr/exparse.y"
 
2261
#line 516 "../../lib/expr/exparse.y"
2261
2262
    {
2262
2263
                        (yyval.expr) = (yyvsp[(2) - (2)].expr);
2263
2264
                }
2264
2265
    break;
2265
2266
 
2266
2267
  case 41:
2267
 
#line 521 "../../lib/expr/exparse.y"
 
2268
#line 522 "../../lib/expr/exparse.y"
2268
2269
    {
2269
2270
                        (yyval.expr) = 0;
2270
2271
                }
2271
2272
    break;
2272
2273
 
2273
2274
  case 43:
2274
 
#line 528 "../../lib/expr/exparse.y"
 
2275
#line 529 "../../lib/expr/exparse.y"
2275
2276
    {
2276
2277
                        (yyval.expr) = (yyvsp[(2) - (3)].expr);
2277
2278
                }
2278
2279
    break;
2279
2280
 
2280
2281
  case 44:
2281
 
#line 532 "../../lib/expr/exparse.y"
 
2282
#line 533 "../../lib/expr/exparse.y"
2282
2283
    {
2283
2284
                        (yyval.expr) = ((yyvsp[(4) - (4)].expr)->type == (yyvsp[(2) - (4)].id)->type) ? (yyvsp[(4) - (4)].expr) : excast(expr.program, (yyvsp[(4) - (4)].expr), (yyvsp[(2) - (4)].id)->type, NiL, 0);
2284
2285
                }
2285
2286
    break;
2286
2287
 
2287
2288
  case 45:
2288
 
#line 536 "../../lib/expr/exparse.y"
 
2289
#line 537 "../../lib/expr/exparse.y"
2289
2290
    {
2290
2291
                        int     rel;
2291
2292
 
2333
2334
    break;
2334
2335
 
2335
2336
  case 46:
2336
 
#line 581 "../../lib/expr/exparse.y"
 
2337
#line 582 "../../lib/expr/exparse.y"
2337
2338
    {
2338
2339
                        goto binary;
2339
2340
                }
2340
2341
    break;
2341
2342
 
2342
2343
  case 47:
2343
 
#line 585 "../../lib/expr/exparse.y"
 
2344
#line 586 "../../lib/expr/exparse.y"
2344
2345
    {
2345
2346
                        goto binary;
2346
2347
                }
2347
2348
    break;
2348
2349
 
2349
2350
  case 48:
2350
 
#line 589 "../../lib/expr/exparse.y"
 
2351
#line 590 "../../lib/expr/exparse.y"
2351
2352
    {
2352
2353
                        goto binary;
2353
2354
                }
2354
2355
    break;
2355
2356
 
2356
2357
  case 49:
2357
 
#line 593 "../../lib/expr/exparse.y"
 
2358
#line 594 "../../lib/expr/exparse.y"
2358
2359
    {
2359
2360
                        goto binary;
2360
2361
                }
2361
2362
    break;
2362
2363
 
2363
2364
  case 50:
2364
 
#line 597 "../../lib/expr/exparse.y"
 
2365
#line 598 "../../lib/expr/exparse.y"
2365
2366
    {
2366
2367
                        goto binary;
2367
2368
                }
2368
2369
    break;
2369
2370
 
2370
2371
  case 51:
2371
 
#line 601 "../../lib/expr/exparse.y"
 
2372
#line 602 "../../lib/expr/exparse.y"
2372
2373
    {
2373
2374
                        goto binary;
2374
2375
                }
2375
2376
    break;
2376
2377
 
2377
2378
  case 52:
2378
 
#line 605 "../../lib/expr/exparse.y"
 
2379
#line 606 "../../lib/expr/exparse.y"
2379
2380
    {
2380
2381
                        goto relational;
2381
2382
                }
2382
2383
    break;
2383
2384
 
2384
2385
  case 53:
2385
 
#line 609 "../../lib/expr/exparse.y"
 
2386
#line 610 "../../lib/expr/exparse.y"
2386
2387
    {
2387
2388
                        goto relational;
2388
2389
                }
2389
2390
    break;
2390
2391
 
2391
2392
  case 54:
2392
 
#line 613 "../../lib/expr/exparse.y"
 
2393
#line 614 "../../lib/expr/exparse.y"
2393
2394
    {
2394
2395
                        goto relational;
2395
2396
                }
2396
2397
    break;
2397
2398
 
2398
2399
  case 55:
2399
 
#line 617 "../../lib/expr/exparse.y"
 
2400
#line 618 "../../lib/expr/exparse.y"
2400
2401
    {
2401
2402
                        goto relational;
2402
2403
                }
2403
2404
    break;
2404
2405
 
2405
2406
  case 56:
2406
 
#line 621 "../../lib/expr/exparse.y"
 
2407
#line 622 "../../lib/expr/exparse.y"
2407
2408
    {
2408
2409
                        goto relational;
2409
2410
                }
2410
2411
    break;
2411
2412
 
2412
2413
  case 57:
2413
 
#line 625 "../../lib/expr/exparse.y"
 
2414
#line 626 "../../lib/expr/exparse.y"
2414
2415
    {
2415
2416
                        goto binary;
2416
2417
                }
2417
2418
    break;
2418
2419
 
2419
2420
  case 58:
2420
 
#line 629 "../../lib/expr/exparse.y"
 
2421
#line 630 "../../lib/expr/exparse.y"
2421
2422
    {
2422
2423
                        goto binary;
2423
2424
                }
2424
2425
    break;
2425
2426
 
2426
2427
  case 59:
2427
 
#line 633 "../../lib/expr/exparse.y"
 
2428
#line 634 "../../lib/expr/exparse.y"
2428
2429
    {
2429
2430
                        goto binary;
2430
2431
                }
2431
2432
    break;
2432
2433
 
2433
2434
  case 60:
2434
 
#line 637 "../../lib/expr/exparse.y"
 
2435
#line 638 "../../lib/expr/exparse.y"
2435
2436
    {
2436
2437
                        goto binary;
2437
2438
                }
2438
2439
    break;
2439
2440
 
2440
2441
  case 61:
2441
 
#line 641 "../../lib/expr/exparse.y"
 
2442
#line 642 "../../lib/expr/exparse.y"
2442
2443
    {
2443
2444
                logical:
2444
2445
                        if ((yyvsp[(1) - (3)].expr)->type == STRING)
2454
2455
    break;
2455
2456
 
2456
2457
  case 62:
2457
 
#line 654 "../../lib/expr/exparse.y"
 
2458
#line 655 "../../lib/expr/exparse.y"
2458
2459
    {
2459
2460
                        goto logical;
2460
2461
                }
2461
2462
    break;
2462
2463
 
2463
2464
  case 63:
2464
 
#line 658 "../../lib/expr/exparse.y"
 
2465
#line 659 "../../lib/expr/exparse.y"
2465
2466
    {
2466
2467
                        if ((yyvsp[(1) - (3)].expr)->op == CONSTANT)
2467
2468
                        {
2473
2474
    break;
2474
2475
 
2475
2476
  case 64:
2476
 
#line 666 "../../lib/expr/exparse.y"
 
2477
#line 667 "../../lib/expr/exparse.y"
2477
2478
    {expr.nolabel=1;}
2478
2479
    break;
2479
2480
 
2480
2481
  case 65:
2481
 
#line 666 "../../lib/expr/exparse.y"
 
2482
#line 667 "../../lib/expr/exparse.y"
2482
2483
    {expr.nolabel=0;}
2483
2484
    break;
2484
2485
 
2485
2486
  case 66:
2486
 
#line 667 "../../lib/expr/exparse.y"
 
2487
#line 668 "../../lib/expr/exparse.y"
2487
2488
    {
2488
2489
                        if (!(yyvsp[(4) - (7)].expr)->type)
2489
2490
                        {
2525
2526
    break;
2526
2527
 
2527
2528
  case 67:
2528
 
#line 706 "../../lib/expr/exparse.y"
 
2529
#line 707 "../../lib/expr/exparse.y"
2529
2530
    {
2530
2531
                iunary:
2531
2532
                        if ((yyvsp[(2) - (2)].expr)->type == STRING)
2548
2549
    break;
2549
2550
 
2550
2551
  case 68:
2551
 
#line 726 "../../lib/expr/exparse.y"
 
2552
#line 727 "../../lib/expr/exparse.y"
2552
2553
    {
2553
2554
                        goto iunary;
2554
2555
                }
2555
2556
    break;
2556
2557
 
2557
2558
  case 69:
2558
 
#line 730 "../../lib/expr/exparse.y"
 
2559
#line 731 "../../lib/expr/exparse.y"
2559
2560
    {
2560
2561
                        goto unary;
2561
2562
                }
2562
2563
    break;
2563
2564
 
2564
2565
  case 70:
2565
 
#line 734 "../../lib/expr/exparse.y"
 
2566
#line 735 "../../lib/expr/exparse.y"
2566
2567
    {
2567
2568
                        (yyval.expr) = (yyvsp[(2) - (2)].expr);
2568
2569
                }
2569
2570
    break;
2570
2571
 
2571
2572
  case 71:
2572
 
#line 738 "../../lib/expr/exparse.y"
 
2573
#line 739 "../../lib/expr/exparse.y"
2573
2574
    {
2574
2575
                        (yyval.expr) = exnewnode(expr.program, ADDRESS, 0, T((yyvsp[(2) - (2)].expr)->type), (yyvsp[(2) - (2)].expr), NiL);
2575
2576
                }
2576
2577
    break;
2577
2578
 
2578
2579
  case 72:
2579
 
#line 742 "../../lib/expr/exparse.y"
 
2580
#line 743 "../../lib/expr/exparse.y"
2580
2581
    {
2581
2582
                        (yyval.expr) = exnewnode(expr.program, ARRAY, 1, T((yyvsp[(1) - (4)].id)->type), call(0, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].expr)), (yyvsp[(3) - (4)].expr));
2582
2583
                }
2583
2584
    break;
2584
2585
 
2585
2586
  case 73:
2586
 
#line 746 "../../lib/expr/exparse.y"
 
2587
#line 747 "../../lib/expr/exparse.y"
2587
2588
    {
2588
2589
                        (yyval.expr) = exnewnode(expr.program, FUNCTION, 1, T((yyvsp[(1) - (4)].id)->type), call(0, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].expr)), (yyvsp[(3) - (4)].expr));
2589
2590
                }
2590
2591
    break;
2591
2592
 
2592
2593
  case 74:
2593
 
#line 750 "../../lib/expr/exparse.y"
 
2594
#line 751 "../../lib/expr/exparse.y"
2594
2595
    {
2595
2596
                        (yyval.expr) = exnewsub (expr.program, (yyvsp[(3) - (4)].expr), GSUB);
2596
2597
                }
2597
2598
    break;
2598
2599
 
2599
2600
  case 75:
2600
 
#line 754 "../../lib/expr/exparse.y"
 
2601
#line 755 "../../lib/expr/exparse.y"
2601
2602
    {
2602
2603
                        (yyval.expr) = exnewsub (expr.program, (yyvsp[(3) - (4)].expr), SUB);
2603
2604
                }
2604
2605
    break;
2605
2606
 
2606
2607
  case 76:
2607
 
#line 758 "../../lib/expr/exparse.y"
 
2608
#line 759 "../../lib/expr/exparse.y"
2608
2609
    {
2609
2610
                        (yyval.expr) = exnewsubstr (expr.program, (yyvsp[(3) - (4)].expr));
2610
2611
                }
2611
2612
    break;
2612
2613
 
2613
2614
  case 77:
2614
 
#line 762 "../../lib/expr/exparse.y"
 
2615
#line 763 "../../lib/expr/exparse.y"
2615
2616
    {
2616
2617
                        if (!INTEGRAL((yyvsp[(3) - (4)].expr)->type))
2617
2618
                                (yyvsp[(3) - (4)].expr) = excast(expr.program, (yyvsp[(3) - (4)].expr), INTEGER, NiL, 0);
2620
2621
    break;
2621
2622
 
2622
2623
  case 78:
2623
 
#line 768 "../../lib/expr/exparse.y"
 
2624
#line 769 "../../lib/expr/exparse.y"
2624
2625
    {
2625
2626
                        (yyval.expr) = exnewnode(expr.program, RAND, 0, FLOATING, NiL, NiL);
2626
2627
                }
2627
2628
    break;
2628
2629
 
2629
2630
  case 79:
2630
 
#line 772 "../../lib/expr/exparse.y"
 
2631
#line 773 "../../lib/expr/exparse.y"
2631
2632
    {
2632
2633
                        (yyval.expr) = exnewnode(expr.program, SRAND, 0, INTEGER, NiL, NiL);
2633
2634
                }
2634
2635
    break;
2635
2636
 
2636
2637
  case 80:
2637
 
#line 776 "../../lib/expr/exparse.y"
 
2638
#line 777 "../../lib/expr/exparse.y"
2638
2639
    {
2639
2640
                        if (!INTEGRAL((yyvsp[(3) - (4)].expr)->type))
2640
2641
                                (yyvsp[(3) - (4)].expr) = excast(expr.program, (yyvsp[(3) - (4)].expr), INTEGER, NiL, 0);
2643
2644
    break;
2644
2645
 
2645
2646
  case 81:
2646
 
#line 782 "../../lib/expr/exparse.y"
 
2647
#line 783 "../../lib/expr/exparse.y"
2647
2648
    {
2648
2649
                        (yyval.expr) = exnewnode(expr.program, CALL, 1, (yyvsp[(1) - (4)].id)->type, NiL, (yyvsp[(3) - (4)].expr));
2649
2650
                        (yyval.expr)->data.call.procedure = (yyvsp[(1) - (4)].id);
2651
2652
    break;
2652
2653
 
2653
2654
  case 82:
2654
 
#line 787 "../../lib/expr/exparse.y"
 
2655
#line 788 "../../lib/expr/exparse.y"
2655
2656
    {
2656
2657
                        (yyval.expr) = exprint(expr.program, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].expr));
2657
2658
                }
2658
2659
    break;
2659
2660
 
2660
2661
  case 83:
2661
 
#line 791 "../../lib/expr/exparse.y"
 
2662
#line 792 "../../lib/expr/exparse.y"
2662
2663
    {
2663
2664
                        (yyval.expr) = exnewnode(expr.program, (yyvsp[(1) - (4)].id)->index, 0, (yyvsp[(1) - (4)].id)->type, NiL, NiL);
2664
2665
                        if ((yyvsp[(3) - (4)].expr) && (yyvsp[(3) - (4)].expr)->data.operand.left->type == INTEGER)
2685
2686
    break;
2686
2687
 
2687
2688
  case 84:
2688
 
#line 815 "../../lib/expr/exparse.y"
 
2689
#line 816 "../../lib/expr/exparse.y"
2689
2690
    {
2690
2691
                        register Exnode_t*      x;
2691
2692
 
2723
2724
    break;
2724
2725
 
2725
2726
  case 85:
2726
 
#line 850 "../../lib/expr/exparse.y"
 
2727
#line 851 "../../lib/expr/exparse.y"
2727
2728
    {
2728
2729
                        if ((yyvsp[(2) - (2)].expr))
2729
2730
                        {
2750
2751
    break;
2751
2752
 
2752
2753
  case 86:
2753
 
#line 874 "../../lib/expr/exparse.y"
 
2754
#line 875 "../../lib/expr/exparse.y"
2754
2755
    {
2755
2756
                pre:
2756
2757
                        if ((yyvsp[(2) - (2)].expr)->type == STRING)
2761
2762
    break;
2762
2763
 
2763
2764
  case 87:
2764
 
#line 882 "../../lib/expr/exparse.y"
 
2765
#line 883 "../../lib/expr/exparse.y"
2765
2766
    {
2766
2767
                pos:
2767
2768
                        if ((yyvsp[(1) - (2)].expr)->type == STRING)
2772
2773
    break;
2773
2774
 
2774
2775
  case 88:
2775
 
#line 890 "../../lib/expr/exparse.y"
 
2776
#line 891 "../../lib/expr/exparse.y"
2776
2777
    {
2777
2778
                        goto pre;
2778
2779
                }
2779
2780
    break;
2780
2781
 
2781
2782
  case 89:
2782
 
#line 894 "../../lib/expr/exparse.y"
 
2783
#line 895 "../../lib/expr/exparse.y"
2783
2784
    {
2784
2785
                        goto pos;
2785
2786
                }
2786
2787
    break;
2787
2788
 
2788
2789
  case 91:
2789
 
#line 901 "../../lib/expr/exparse.y"
 
2790
#line 902 "../../lib/expr/exparse.y"
2790
2791
    {
2791
2792
                        (yyval.expr) = exnewnode(expr.program, CONSTANT, 0, (yyvsp[(1) - (1)].id)->type, NiL, NiL);
2792
2793
                        if (!expr.program->disc->reff)
2796
2797
    break;
2797
2798
 
2798
2799
  case 92:
2799
 
#line 908 "../../lib/expr/exparse.y"
 
2800
#line 909 "../../lib/expr/exparse.y"
2800
2801
    {
2801
2802
                        (yyval.expr) = exnewnode(expr.program, CONSTANT, 0, FLOATING, NiL, NiL);
2802
2803
                        (yyval.expr)->data.constant.value.floating = (yyvsp[(1) - (1)].floating);
2804
2805
    break;
2805
2806
 
2806
2807
  case 93:
2807
 
#line 913 "../../lib/expr/exparse.y"
 
2808
#line 914 "../../lib/expr/exparse.y"
2808
2809
    {
2809
2810
                        (yyval.expr) = exnewnode(expr.program, CONSTANT, 0, INTEGER, NiL, NiL);
2810
2811
                        (yyval.expr)->data.constant.value.integer = (yyvsp[(1) - (1)].integer);
2812
2813
    break;
2813
2814
 
2814
2815
  case 94:
2815
 
#line 918 "../../lib/expr/exparse.y"
 
2816
#line 919 "../../lib/expr/exparse.y"
2816
2817
    {
2817
2818
                        (yyval.expr) = exnewnode(expr.program, CONSTANT, 0, STRING, NiL, NiL);
2818
2819
                        (yyval.expr)->data.constant.value.string = (yyvsp[(1) - (1)].string);
2820
2821
    break;
2821
2822
 
2822
2823
  case 95:
2823
 
#line 923 "../../lib/expr/exparse.y"
 
2824
#line 924 "../../lib/expr/exparse.y"
2824
2825
    {
2825
2826
                        (yyval.expr) = exnewnode(expr.program, CONSTANT, 0, UNSIGNED, NiL, NiL);
2826
2827
                        (yyval.expr)->data.constant.value.integer = (yyvsp[(1) - (1)].integer);
2828
2829
    break;
2829
2830
 
2830
2831
  case 101:
2831
 
#line 939 "../../lib/expr/exparse.y"
 
2832
#line 940 "../../lib/expr/exparse.y"
2832
2833
    {
2833
2834
                        (yyval.expr) = makeVar(expr.program, (yyvsp[(1) - (2)].id), 0, 0, (yyvsp[(2) - (2)].reference));
2834
2835
                }
2835
2836
    break;
2836
2837
 
2837
2838
  case 102:
2838
 
#line 943 "../../lib/expr/exparse.y"
 
2839
#line 944 "../../lib/expr/exparse.y"
2839
2840
    {
2840
2841
            Exnode_t*   n;
2841
2842
 
2858
2859
    break;
2859
2860
 
2860
2861
  case 103:
2861
 
#line 963 "../../lib/expr/exparse.y"
 
2862
#line 964 "../../lib/expr/exparse.y"
2862
2863
    {
2863
2864
                        (yyval.expr) = exnewnode(expr.program, ID, 0, STRING, NiL, NiL);
2864
2865
                        (yyval.expr)->data.variable.symbol = (yyvsp[(1) - (1)].id);
2871
2872
    break;
2872
2873
 
2873
2874
  case 104:
2874
 
#line 975 "../../lib/expr/exparse.y"
 
2875
#line 976 "../../lib/expr/exparse.y"
2875
2876
    {
2876
2877
                        (yyval.integer) = 0;
2877
2878
                }
2878
2879
    break;
2879
2880
 
2880
2881
  case 105:
2881
 
#line 979 "../../lib/expr/exparse.y"
 
2882
#line 980 "../../lib/expr/exparse.y"
2882
2883
    {
2883
2884
                        (yyval.integer) = -1;
2884
2885
                }
2885
2886
    break;
2886
2887
 
2887
2888
  case 106:
2888
 
#line 983 "../../lib/expr/exparse.y"
 
2889
#line 984 "../../lib/expr/exparse.y"
2889
2890
    {
2890
2891
                        /* If DECLARE is VOID, its type is 0, so this acts like
2891
2892
                         * the empty case.
2899
2900
    break;
2900
2901
 
2901
2902
  case 107:
2902
 
#line 996 "../../lib/expr/exparse.y"
 
2903
#line 997 "../../lib/expr/exparse.y"
2903
2904
    {
2904
2905
                        (yyval.expr) = 0;
2905
2906
                }
2906
2907
    break;
2907
2908
 
2908
2909
  case 108:
2909
 
#line 1000 "../../lib/expr/exparse.y"
 
2910
#line 1001 "../../lib/expr/exparse.y"
2910
2911
    {
2911
2912
                        (yyval.expr) = (yyvsp[(2) - (3)].expr);
2912
2913
                }
2913
2914
    break;
2914
2915
 
2915
2916
  case 109:
2916
 
#line 1006 "../../lib/expr/exparse.y"
 
2917
#line 1007 "../../lib/expr/exparse.y"
2917
2918
    {
2918
2919
                        (yyval.expr) = 0;
2919
2920
                }
2920
2921
    break;
2921
2922
 
2922
2923
  case 110:
2923
 
#line 1010 "../../lib/expr/exparse.y"
 
2924
#line 1011 "../../lib/expr/exparse.y"
2924
2925
    {
2925
2926
                        (yyval.expr) = (yyvsp[(1) - (1)].expr)->data.operand.left;
2926
2927
                        (yyvsp[(1) - (1)].expr)->data.operand.left = (yyvsp[(1) - (1)].expr)->data.operand.right = 0;
2929
2930
    break;
2930
2931
 
2931
2932
  case 111:
2932
 
#line 1018 "../../lib/expr/exparse.y"
 
2933
#line 1019 "../../lib/expr/exparse.y"
2933
2934
    {
2934
2935
                        (yyval.expr) = exnewnode(expr.program, ',', 1, 0, exnewnode(expr.program, ',', 1, (yyvsp[(1) - (1)].expr)->type, (yyvsp[(1) - (1)].expr), NiL), NiL);
2935
2936
                        (yyval.expr)->data.operand.right = (yyval.expr)->data.operand.left;
2937
2938
    break;
2938
2939
 
2939
2940
  case 112:
2940
 
#line 1023 "../../lib/expr/exparse.y"
 
2941
#line 1024 "../../lib/expr/exparse.y"
2941
2942
    {
2942
2943
                        (yyvsp[(1) - (3)].expr)->data.operand.right = (yyvsp[(1) - (3)].expr)->data.operand.right->data.operand.right = exnewnode(expr.program, ',', 1, (yyvsp[(1) - (3)].expr)->type, (yyvsp[(3) - (3)].expr), NiL);
2943
2944
                }
2944
2945
    break;
2945
2946
 
2946
2947
  case 113:
2947
 
#line 1029 "../../lib/expr/exparse.y"
 
2948
#line 1030 "../../lib/expr/exparse.y"
2948
2949
    {
2949
2950
                        (yyval.expr) = 0;
2950
2951
                }
2951
2952
    break;
2952
2953
 
2953
2954
  case 114:
2954
 
#line 1033 "../../lib/expr/exparse.y"
 
2955
#line 1034 "../../lib/expr/exparse.y"
2955
2956
    {
2956
2957
                        (yyval.expr) = 0;
2957
2958
                        if ((yyvsp[(1) - (1)].id)->type)
2960
2961
    break;
2961
2962
 
2962
2963
  case 116:
2963
 
#line 1042 "../../lib/expr/exparse.y"
 
2964
#line 1043 "../../lib/expr/exparse.y"
2964
2965
    {
2965
2966
                        (yyval.expr) = exnewnode(expr.program, ',', 1, (yyvsp[(1) - (1)].expr)->type, (yyvsp[(1) - (1)].expr), NiL);
2966
2967
                }
2967
2968
    break;
2968
2969
 
2969
2970
  case 117:
2970
 
#line 1046 "../../lib/expr/exparse.y"
 
2971
#line 1047 "../../lib/expr/exparse.y"
2971
2972
    {
2972
2973
                        register Exnode_t*      x;
2973
2974
                        register Exnode_t*      y;
2979
2980
    break;
2980
2981
 
2981
2982
  case 118:
2982
 
#line 1056 "../../lib/expr/exparse.y"
 
2983
#line 1057 "../../lib/expr/exparse.y"
2983
2984
    {expr.declare=(yyvsp[(1) - (1)].id)->type;}
2984
2985
    break;
2985
2986
 
2986
2987
  case 119:
2987
 
#line 1057 "../../lib/expr/exparse.y"
 
2988
#line 1058 "../../lib/expr/exparse.y"
2988
2989
    {
2989
2990
                        (yyval.expr) = exnewnode(expr.program, ID, 0, (yyvsp[(1) - (3)].id)->type, NiL, NiL);
2990
2991
                        (yyval.expr)->data.variable.symbol = (yyvsp[(3) - (3)].id);
2996
2997
    break;
2997
2998
 
2998
2999
  case 120:
2999
 
#line 1068 "../../lib/expr/exparse.y"
 
3000
#line 1069 "../../lib/expr/exparse.y"
3000
3001
    {
3001
3002
                        (yyval.reference) = expr.refs = expr.lastref = 0;
3002
3003
                }
3003
3004
    break;
3004
3005
 
3005
3006
  case 121:
3006
 
#line 1072 "../../lib/expr/exparse.y"
 
3007
#line 1073 "../../lib/expr/exparse.y"
3007
3008
    {
3008
3009
                        Exref_t*        r;
3009
3010
 
3018
3019
    break;
3019
3020
 
3020
3021
  case 122:
3021
 
#line 1084 "../../lib/expr/exparse.y"
 
3022
#line 1085 "../../lib/expr/exparse.y"
3022
3023
    {
3023
3024
                        Exref_t*        r;
3024
3025
                        Exref_t*        l;
3038
3039
    break;
3039
3040
 
3040
3041
  case 123:
3041
 
#line 1103 "../../lib/expr/exparse.y"
 
3042
#line 1104 "../../lib/expr/exparse.y"
3042
3043
    {
3043
3044
                        (yyval.id) = (yyvsp[(2) - (2)].id);
3044
3045
                }
3045
3046
    break;
3046
3047
 
3047
3048
  case 124:
3048
 
#line 1107 "../../lib/expr/exparse.y"
 
3049
#line 1108 "../../lib/expr/exparse.y"
3049
3050
    {
3050
3051
                        (yyval.id) = (yyvsp[(2) - (2)].id);
3051
3052
                }
3052
3053
    break;
3053
3054
 
3054
3055
  case 125:
3055
 
#line 1113 "../../lib/expr/exparse.y"
 
3056
#line 1114 "../../lib/expr/exparse.y"
3056
3057
    {
3057
3058
                        (yyval.expr) = 0;
3058
3059
                }
3059
3060
    break;
3060
3061
 
3061
3062
  case 126:
3062
 
#line 1117 "../../lib/expr/exparse.y"
 
3063
#line 1118 "../../lib/expr/exparse.y"
3063
3064
    {
3064
3065
                        (yyval.expr) = exnewnode(expr.program, '=', 1, (yyvsp[(2) - (2)].expr)->type, NiL, (yyvsp[(2) - (2)].expr));
3065
3066
                        (yyval.expr)->subop = (yyvsp[(1) - (2)].op);
3067
3068
    break;
3068
3069
 
3069
3070
  case 128:
3070
 
#line 1124 "../../lib/expr/exparse.y"
 
3071
#line 1125 "../../lib/expr/exparse.y"
3071
3072
    {
3072
3073
                                register Dtdisc_t*      disc;
3073
3074
 
3085
3086
    break;
3086
3087
 
3087
3088
  case 129:
3088
 
#line 1137 "../../lib/expr/exparse.y"
 
3089
#line 1138 "../../lib/expr/exparse.y"
3089
3090
    {
3090
3091
                                expr.program->formals = 0;
3091
3092
                                expr.id->lex = PROCEDURE;
3094
3095
    break;
3095
3096
 
3096
3097
  case 130:
3097
 
#line 1142 "../../lib/expr/exparse.y"
 
3098
#line 1143 "../../lib/expr/exparse.y"
3098
3099
    {
3099
3100
                        (yyval.expr) = expr.procedure;
3100
3101
                        expr.procedure = 0;
3118
3119
 
3119
3120
 
3120
3121
/* Line 1267 of yacc.c.  */
3121
 
#line 3122 "y.tab.c"
 
3122
#line 3123 "y.tab.c"
3122
3123
      default: break;
3123
3124
    }
3124
3125
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3332
3333
}
3333
3334
 
3334
3335
 
3335
 
#line 1163 "../../lib/expr/exparse.y"
 
3336
#line 1164 "../../lib/expr/exparse.y"
3336
3337
 
3337
3338
 
3338
3339
#include "exgram.h"