Changeset f0e7c4 in git


Ignore:
Timestamp:
Nov 6, 2014, 4:16:10 PM (9 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
fe24d605f70f42e77d679a658b67497779c85ae7
Parents:
ab2a184b8cf5167647764d9855d5da8e35eaa258
Message:
add: branchTo
Location:
Singular
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • Singular/grammar.cc

    rab2a18 rf0e7c4  
    22
    33/* Skeleton implementation for Bison's Yacc-like parsers in C
    4 
     4   
    55      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
    66   2009, 2010 Free Software Foundation, Inc.
    7 
     7   
    88   This program is free software: you can redistribute it and/or modify
    99   it under the terms of the GNU General Public License as published by
    1010   the Free Software Foundation, either version 3 of the License, or
    1111   (at your option) any later version.
    12 
     12   
    1313   This program is distributed in the hope that it will be useful,
    1414   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1616   GNU General Public License for more details.
    17 
     17   
    1818   You should have received a copy of the GNU General Public License
    1919   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     
    2828   Bison output files to be licensed under the GNU General Public
    2929   License without this special exception.
    30 
     30   
    3131   This special exception was added by the Free Software Foundation in
    3232   version 2.2 of Bison.  */
     
    799799     597,   601,   605,   609,   613,   617,   621,   625,   629,   633,
    800800     637,   641,   645,   649,   653,   657,   661,   665,   669,   673,
    801      677,   681,   685,   689,   693,   697,   704,   715,   721,   726,
    802      727,   728,   732,   736,   740,   744,   748,   752,   756,   760,
    803      764,   781,   788,   787,   805,   813,   821,   830,   834,   838,
    804      842,   846,   850,   854,   858,   862,   866,   870,   874,   878,
    805      890,   897,   898,   917,   918,   930,   935,   940,   944,   948,
    806      988,  1014,  1035,  1043,  1047,  1048,  1062,  1070,  1079,  1124,
    807     1125,  1134,  1135,  1141,  1148,  1150,  1152,  1162,  1161,  1169,
    808     1174,  1181,  1189,  1201,  1217,  1236,  1240,  1244,  1249,  1253,
    809     1257,  1261,  1265,  1270,  1276,  1282,  1288,  1294,  1300,  1306,
    810     1318,  1325,  1329,  1366,  1373,  1381,  1387,  1387,  1390,  1462,
    811     1466,  1495,  1508,  1525,  1534,  1539,  1547,  1559,  1578,  1588,
    812     1607,  1630,  1636,  1648,  1654
     801     677,   683,   687,   691,   695,   699,   706,   717,   723,   728,
     802     729,   730,   734,   738,   742,   746,   750,   754,   758,   762,
     803     766,   783,   790,   789,   807,   815,   823,   832,   836,   840,
     804     844,   848,   852,   856,   860,   864,   868,   872,   876,   880,
     805     892,   899,   900,   919,   920,   932,   937,   942,   946,   950,
     806     990,  1016,  1037,  1045,  1049,  1050,  1064,  1072,  1081,  1126,
     807    1127,  1136,  1137,  1143,  1150,  1152,  1154,  1164,  1163,  1171,
     808    1176,  1183,  1191,  1203,  1219,  1238,  1242,  1246,  1251,  1255,
     809    1259,  1263,  1267,  1272,  1278,  1284,  1290,  1296,  1302,  1308,
     810    1320,  1327,  1331,  1368,  1375,  1383,  1389,  1389,  1392,  1464,
     811    1468,  1497,  1510,  1527,  1536,  1541,  1549,  1561,  1580,  1590,
     812    1609,  1632,  1638,  1650,  1656
    813813};
    814814#endif
     
    29112911#line 678 "grammar.y"
    29122912    {
    2913             if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     2913            int b=iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i)); // handle branchTo
     2914            if (b==TRUE) YYERROR;
     2915            if (b==2) YYACCEPT;
    29142916          ;}
    29152917    break;
     
    29182920
    29192921/* Line 1464 of yacc.c  */
    2920 #line 682 "grammar.y"
     2922#line 684 "grammar.y"
    29212923    {
    29222924            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    29272929
    29282930/* Line 1464 of yacc.c  */
    2929 #line 686 "grammar.y"
     2931#line 688 "grammar.y"
    29302932    {
    29312933            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    29362938
    29372939/* Line 1464 of yacc.c  */
    2938 #line 690 "grammar.y"
     2940#line 692 "grammar.y"
    29392941    {
    29402942            if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    29452947
    29462948/* Line 1464 of yacc.c  */
    2947 #line 694 "grammar.y"
     2949#line 696 "grammar.y"
    29482950    {
    29492951            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
     
    29542956
    29552957/* Line 1464 of yacc.c  */
    2956 #line 698 "grammar.y"
     2958#line 700 "grammar.y"
    29572959    {
    29582960            if (iiARROW(&(yyval.lv),(yyvsp[(1) - (3)].name),(yyvsp[(3) - (3)].name))) YYERROR;
     
    29632965
    29642966/* Line 1464 of yacc.c  */
    2965 #line 705 "grammar.y"
     2967#line 707 "grammar.y"
    29662968    {
    29672969            leftv v = &(yyvsp[(1) - (3)].lv);
     
    29792981
    29802982/* Line 1464 of yacc.c  */
    2981 #line 716 "grammar.y"
     2983#line 718 "grammar.y"
    29822984    {
    29832985            (yyval.lv) = (yyvsp[(1) - (1)].lv);
     
    29882990
    29892991/* Line 1464 of yacc.c  */
    2990 #line 722 "grammar.y"
     2992#line 724 "grammar.y"
    29912993    {
    29922994            /*if ($1.typ == eunknown) YYERROR;*/
     
    29983000
    29993001/* Line 1464 of yacc.c  */
    3000 #line 726 "grammar.y"
     3002#line 728 "grammar.y"
    30013003    { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}
    30023004    break;
     
    30053007
    30063008/* Line 1464 of yacc.c  */
    3007 #line 727 "grammar.y"
     3009#line 729 "grammar.y"
    30083010    { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
    30093011    break;
     
    30123014
    30133015/* Line 1464 of yacc.c  */
    3014 #line 729 "grammar.y"
     3016#line 731 "grammar.y"
    30153017    {
    30163018            if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
     
    30213023
    30223024/* Line 1464 of yacc.c  */
    3023 #line 733 "grammar.y"
     3025#line 735 "grammar.y"
    30243026    {
    30253027            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
     
    30303032
    30313033/* Line 1464 of yacc.c  */
    3032 #line 737 "grammar.y"
     3034#line 739 "grammar.y"
    30333035    {
    30343036            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30393041
    30403042/* Line 1464 of yacc.c  */
    3041 #line 741 "grammar.y"
     3043#line 743 "grammar.y"
    30423044    {
    30433045            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30483050
    30493051/* Line 1464 of yacc.c  */
    3050 #line 745 "grammar.y"
     3052#line 747 "grammar.y"
    30513053    {
    30523054            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30573059
    30583060/* Line 1464 of yacc.c  */
    3059 #line 749 "grammar.y"
     3061#line 751 "grammar.y"
    30603062    {
    30613063            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30663068
    30673069/* Line 1464 of yacc.c  */
    3068 #line 753 "grammar.y"
     3070#line 755 "grammar.y"
    30693071    {
    30703072            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30753077
    30763078/* Line 1464 of yacc.c  */
    3077 #line 757 "grammar.y"
     3079#line 759 "grammar.y"
    30783080    {
    30793081            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), 0, &(yyvsp[(5) - (6)].lv))) YYERROR;
     
    30843086
    30853087/* Line 1464 of yacc.c  */
    3086 #line 761 "grammar.y"
     3088#line 763 "grammar.y"
    30873089    {
    30883090            (yyval.lv)=(yyvsp[(2) - (3)].lv);
     
    30933095
    30943096/* Line 1464 of yacc.c  */
    3095 #line 765 "grammar.y"
     3097#line 767 "grammar.y"
    30963098    {
    30973099            #ifdef SIQ
     
    31153117
    31163118/* Line 1464 of yacc.c  */
    3117 #line 782 "grammar.y"
     3119#line 784 "grammar.y"
    31183120    {
    31193121            iiTestAssume(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv));
     
    31263128
    31273129/* Line 1464 of yacc.c  */
    3128 #line 788 "grammar.y"
     3130#line 790 "grammar.y"
    31293131    {
    31303132            #ifdef SIQ
     
    31373139
    31383140/* Line 1464 of yacc.c  */
    3139 #line 794 "grammar.y"
     3141#line 796 "grammar.y"
    31403142    {
    31413143            #ifdef SIQ
     
    31523154
    31533155/* Line 1464 of yacc.c  */
    3154 #line 806 "grammar.y"
     3156#line 808 "grammar.y"
    31553157    {
    31563158            #ifdef SIQ
     
    31633165
    31643166/* Line 1464 of yacc.c  */
    3165 #line 814 "grammar.y"
     3167#line 816 "grammar.y"
    31663168    {
    31673169            #ifdef SIQ
     
    31743176
    31753177/* Line 1464 of yacc.c  */
    3176 #line 822 "grammar.y"
     3178#line 824 "grammar.y"
    31773179    {
    31783180            #ifdef SIQ
     
    31853187
    31863188/* Line 1464 of yacc.c  */
    3187 #line 831 "grammar.y"
     3189#line 833 "grammar.y"
    31883190    {
    31893191            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR;
     
    31943196
    31953197/* Line 1464 of yacc.c  */
    3196 #line 835 "grammar.y"
     3198#line 837 "grammar.y"
    31973199    {
    31983200            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR;
     
    32033205
    32043206/* Line 1464 of yacc.c  */
    3205 #line 839 "grammar.y"
     3207#line 841 "grammar.y"
    32063208    {
    32073209            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32123214
    32133215/* Line 1464 of yacc.c  */
    3214 #line 843 "grammar.y"
     3216#line 845 "grammar.y"
    32153217    {
    32163218            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32213223
    32223224/* Line 1464 of yacc.c  */
    3223 #line 847 "grammar.y"
     3225#line 849 "grammar.y"
    32243226    {
    32253227            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32303232
    32313233/* Line 1464 of yacc.c  */
    3232 #line 851 "grammar.y"
     3234#line 853 "grammar.y"
    32333235    {
    32343236            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32393241
    32403242/* Line 1464 of yacc.c  */
    3241 #line 855 "grammar.y"
     3243#line 857 "grammar.y"
    32423244    {
    32433245            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32483250
    32493251/* Line 1464 of yacc.c  */
    3250 #line 859 "grammar.y"
     3252#line 861 "grammar.y"
    32513253    {
    32523254            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32573259
    32583260/* Line 1464 of yacc.c  */
    3259 #line 863 "grammar.y"
     3261#line 865 "grammar.y"
    32603262    {
    32613263            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32663268
    32673269/* Line 1464 of yacc.c  */
    3268 #line 867 "grammar.y"
     3270#line 869 "grammar.y"
    32693271    {
    32703272            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32753277
    32763278/* Line 1464 of yacc.c  */
    3277 #line 871 "grammar.y"
     3279#line 873 "grammar.y"
    32783280    {
    32793281            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32843286
    32853287/* Line 1464 of yacc.c  */
    3286 #line 875 "grammar.y"
     3288#line 877 "grammar.y"
    32873289    {
    32883290            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32933295
    32943296/* Line 1464 of yacc.c  */
    3295 #line 879 "grammar.y"
     3297#line 881 "grammar.y"
    32963298    {
    32973299            if (siq>0)
     
    33103312
    33113313/* Line 1464 of yacc.c  */
    3312 #line 891 "grammar.y"
     3314#line 893 "grammar.y"
    33133315    {
    33143316            if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR;
     
    33193321
    33203322/* Line 1464 of yacc.c  */
    3321 #line 897 "grammar.y"
     3323#line 899 "grammar.y"
    33223324    { (yyval.lv) = (yyvsp[(1) - (2)].lv); ;}
    33233325    break;
     
    33263328
    33273329/* Line 1464 of yacc.c  */
    3328 #line 899 "grammar.y"
     3330#line 901 "grammar.y"
    33293331    {
    33303332            if ((yyvsp[(1) - (2)].lv).rtyp==0)
     
    33463348
    33473349/* Line 1464 of yacc.c  */
    3348 #line 919 "grammar.y"
     3350#line 921 "grammar.y"
    33493351    {
    33503352            if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD)
     
    33603362
    33613363/* Line 1464 of yacc.c  */
    3362 #line 931 "grammar.y"
     3364#line 933 "grammar.y"
    33633365    {
    33643366            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    33703372
    33713373/* Line 1464 of yacc.c  */
    3372 #line 936 "grammar.y"
     3374#line 938 "grammar.y"
    33733375    {
    33743376            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    33803382
    33813383/* Line 1464 of yacc.c  */
    3382 #line 941 "grammar.y"
     3384#line 943 "grammar.y"
    33833385    {
    33843386            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33893391
    33903392/* Line 1464 of yacc.c  */
    3391 #line 945 "grammar.y"
     3393#line 947 "grammar.y"
    33923394    {
    33933395            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33983400
    33993401/* Line 1464 of yacc.c  */
    3400 #line 949 "grammar.y"
     3402#line 951 "grammar.y"
    34013403    {
    34023404            int r; TESTSETINT((yyvsp[(4) - (8)].lv),r);
     
    34433445
    34443446/* Line 1464 of yacc.c  */
    3445 #line 989 "grammar.y"
     3447#line 991 "grammar.y"
    34463448    {
    34473449            if ((yyvsp[(1) - (2)].i) == MATRIX_CMD)
     
    34743476
    34753477/* Line 1464 of yacc.c  */
    3476 #line 1015 "grammar.y"
     3478#line 1017 "grammar.y"
    34773479    {
    34783480            int t=(yyvsp[(1) - (3)].lv).Typ();
     
    35003502
    35013503/* Line 1464 of yacc.c  */
    3502 #line 1036 "grammar.y"
     3504#line 1038 "grammar.y"
    35033505    {
    35043506            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    35103512
    35113513/* Line 1464 of yacc.c  */
    3512 #line 1049 "grammar.y"
     3514#line 1051 "grammar.y"
    35133515    {
    35143516            leftv v = &(yyvsp[(2) - (5)].lv);
     
    35263528
    35273529/* Line 1464 of yacc.c  */
    3528 #line 1063 "grammar.y"
     3530#line 1065 "grammar.y"
    35293531    {
    35303532          // let rInit take care of any errors
     
    35363538
    35373539/* Line 1464 of yacc.c  */
    3538 #line 1071 "grammar.y"
     3540#line 1073 "grammar.y"
    35393541    {
    35403542            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    35503552
    35513553/* Line 1464 of yacc.c  */
    3552 #line 1080 "grammar.y"
     3554#line 1082 "grammar.y"
    35533555    {
    35543556            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    35973599
    35983600/* Line 1464 of yacc.c  */
    3599 #line 1126 "grammar.y"
     3601#line 1128 "grammar.y"
    36003602    {
    36013603            (yyval.lv) = (yyvsp[(1) - (3)].lv);
     
    36083610
    36093611/* Line 1464 of yacc.c  */
    3610 #line 1136 "grammar.y"
     3612#line 1138 "grammar.y"
    36113613    {
    36123614            (yyval.lv) = (yyvsp[(2) - (3)].lv);
     
    36173619
    36183620/* Line 1464 of yacc.c  */
    3619 #line 1142 "grammar.y"
     3621#line 1144 "grammar.y"
    36203622    {
    36213623            expected_parms = TRUE;
     
    36243626
    36253627  case 124:
    3626 
    3627 /* Line 1464 of yacc.c  */
    3628 #line 1149 "grammar.y"
    3629     { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
    3630     break;
    3631 
    3632   case 125:
    36333628
    36343629/* Line 1464 of yacc.c  */
     
    36373632    break;
    36383633
    3639   case 126:
     3634  case 125:
    36403635
    36413636/* Line 1464 of yacc.c  */
     
    36443639    break;
    36453640
     3641  case 126:
     3642
     3643/* Line 1464 of yacc.c  */
     3644#line 1155 "grammar.y"
     3645    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     3646    break;
     3647
    36463648  case 127:
    36473649
    36483650/* Line 1464 of yacc.c  */
    3649 #line 1162 "grammar.y"
     3651#line 1164 "grammar.y"
    36503652    { if ((yyvsp[(1) - (2)].i) != '<') YYERROR;
    36513653            if((feFilePending=feFopen((yyvsp[(2) - (2)].name),"r",NULL,TRUE))==NULL) YYERROR; ;}
     
    36553657
    36563658/* Line 1464 of yacc.c  */
    3657 #line 1165 "grammar.y"
     3659#line 1167 "grammar.y"
    36583660    { newFile((yyvsp[(2) - (4)].name),feFilePending); ;}
    36593661    break;
     
    36623664
    36633665/* Line 1464 of yacc.c  */
    3664 #line 1170 "grammar.y"
     3666#line 1172 "grammar.y"
    36653667    {
    36663668            feHelp((yyvsp[(2) - (3)].name));
     
    36723674
    36733675/* Line 1464 of yacc.c  */
    3674 #line 1175 "grammar.y"
     3676#line 1177 "grammar.y"
    36753677    {
    36763678            feHelp(NULL);
     
    36813683
    36823684/* Line 1464 of yacc.c  */
    3683 #line 1182 "grammar.y"
     3685#line 1184 "grammar.y"
    36843686    {
    36853687            singular_example((yyvsp[(2) - (3)].name));
     
    36913693
    36923694/* Line 1464 of yacc.c  */
    3693 #line 1190 "grammar.y"
     3695#line 1192 "grammar.y"
    36943696    {
    36953697          if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl)
     
    37053707
    37063708/* Line 1464 of yacc.c  */
    3707 #line 1202 "grammar.y"
     3709#line 1204 "grammar.y"
    37083710    {
    37093711          leftv v=&(yyvsp[(2) - (2)].lv);
     
    37263728
    37273729/* Line 1464 of yacc.c  */
    3728 #line 1218 "grammar.y"
     3730#line 1220 "grammar.y"
    37293731    {
    37303732          leftv v=&(yyvsp[(3) - (3)].lv);
     
    37473749
    37483750/* Line 1464 of yacc.c  */
    3749 #line 1237 "grammar.y"
     3751#line 1239 "grammar.y"
    37503752    {
    37513753            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    37563758
    37573759/* Line 1464 of yacc.c  */
    3758 #line 1241 "grammar.y"
     3760#line 1243 "grammar.y"
    37593761    {
    37603762            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    37653767
    37663768/* Line 1464 of yacc.c  */
    3767 #line 1245 "grammar.y"
     3769#line 1247 "grammar.y"
    37683770    {
    37693771            if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD;
     
    37753777
    37763778/* Line 1464 of yacc.c  */
    3777 #line 1250 "grammar.y"
     3779#line 1252 "grammar.y"
    37783780    {
    37793781            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    37843786
    37853787/* Line 1464 of yacc.c  */
    3786 #line 1254 "grammar.y"
     3788#line 1256 "grammar.y"
    37873789    {
    37883790            list_cmd(RING_CMD,NULL,"// ",TRUE);
     
    37933795
    37943796/* Line 1464 of yacc.c  */
    3795 #line 1258 "grammar.y"
     3797#line 1260 "grammar.y"
    37963798    {
    37973799            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    38023804
    38033805/* Line 1464 of yacc.c  */
    3804 #line 1262 "grammar.y"
     3806#line 1264 "grammar.y"
    38053807    {
    38063808            list_cmd(PROC_CMD,NULL,"// ",TRUE);
     
    38113813
    38123814/* Line 1464 of yacc.c  */
    3813 #line 1266 "grammar.y"
     3815#line 1268 "grammar.y"
    38143816    {
    38153817            list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE);
     
    38213823
    38223824/* Line 1464 of yacc.c  */
    3823 #line 1271 "grammar.y"
     3825#line 1273 "grammar.y"
    38243826    {
    38253827            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38323834
    38333835/* Line 1464 of yacc.c  */
    3834 #line 1277 "grammar.y"
     3836#line 1279 "grammar.y"
    38353837    {
    38363838            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38433845
    38443846/* Line 1464 of yacc.c  */
    3845 #line 1283 "grammar.y"
     3847#line 1285 "grammar.y"
    38463848    {
    38473849            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38543856
    38553857/* Line 1464 of yacc.c  */
    3856 #line 1289 "grammar.y"
     3858#line 1291 "grammar.y"
    38573859    {
    38583860            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38653867
    38663868/* Line 1464 of yacc.c  */
    3867 #line 1295 "grammar.y"
     3869#line 1297 "grammar.y"
    38683870    {
    38693871            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38763878
    38773879/* Line 1464 of yacc.c  */
    3878 #line 1301 "grammar.y"
     3880#line 1303 "grammar.y"
    38793881    {
    38803882            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38873889
    38883890/* Line 1464 of yacc.c  */
    3889 #line 1307 "grammar.y"
     3891#line 1309 "grammar.y"
    38903892    {
    38913893            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    38983900
    38993901/* Line 1464 of yacc.c  */
    3900 #line 1319 "grammar.y"
     3902#line 1321 "grammar.y"
    39013903    {
    39023904            list_cmd(-1,NULL,"// ",TRUE);
     
    39073909
    39083910/* Line 1464 of yacc.c  */
    3909 #line 1325 "grammar.y"
     3911#line 1327 "grammar.y"
    39103912    { yyInRingConstruction = TRUE; ;}
    39113913    break;
     
    39143916
    39153917/* Line 1464 of yacc.c  */
    3916 #line 1334 "grammar.y"
     3918#line 1336 "grammar.y"
    39173919    {
    39183920            const char *ring_name = (yyvsp[(2) - (8)].lv).name;
     
    39523954
    39533955/* Line 1464 of yacc.c  */
    3954 #line 1367 "grammar.y"
     3956#line 1369 "grammar.y"
    39553957    {
    39563958            const char *ring_name = (yyvsp[(2) - (2)].lv).name;
     
    39643966
    39653967/* Line 1464 of yacc.c  */
    3966 #line 1374 "grammar.y"
     3968#line 1376 "grammar.y"
    39673969    {
    39683970            yyInRingConstruction = FALSE;
     
    39743976
    39753977/* Line 1464 of yacc.c  */
    3976 #line 1382 "grammar.y"
     3978#line 1384 "grammar.y"
    39773979    {
    39783980            if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR;
     
    39833985
    39843986/* Line 1464 of yacc.c  */
    3985 #line 1391 "grammar.y"
     3987#line 1393 "grammar.y"
    39863988    {
    39873989            if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0))
     
    40574059
    40584060/* Line 1464 of yacc.c  */
    4059 #line 1463 "grammar.y"
     4061#line 1465 "grammar.y"
    40604062    {
    40614063            type_cmd(&((yyvsp[(2) - (2)].lv)));
     
    40664068
    40674069/* Line 1464 of yacc.c  */
    4068 #line 1467 "grammar.y"
     4070#line 1469 "grammar.y"
    40694071    {
    40704072            //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
     
    40944096
    40954097/* Line 1464 of yacc.c  */
    4096 #line 1496 "grammar.y"
     4098#line 1498 "grammar.y"
    40974099    {
    40984100            int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     
    41124114
    41134115/* Line 1464 of yacc.c  */
    4114 #line 1509 "grammar.y"
     4116#line 1511 "grammar.y"
    41154117    {
    41164118            if (currentVoice->ifsw==1)
     
    41344136
    41354137/* Line 1464 of yacc.c  */
    4136 #line 1526 "grammar.y"
     4138#line 1528 "grammar.y"
    41374139    {
    41384140            int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     
    41484150
    41494151/* Line 1464 of yacc.c  */
    4150 #line 1535 "grammar.y"
     4152#line 1537 "grammar.y"
    41514153    {
    41524154            if (exitBuffer(BT_break)) YYERROR;
     
    41584160
    41594161/* Line 1464 of yacc.c  */
    4160 #line 1540 "grammar.y"
     4162#line 1542 "grammar.y"
    41614163    {
    41624164            if (contBuffer(BT_break)) YYERROR;
     
    41684170
    41694171/* Line 1464 of yacc.c  */
    4170 #line 1548 "grammar.y"
     4172#line 1550 "grammar.y"
    41714173    {
    41724174            /* -> if(!$2) break; $3; continue;*/
     
    41824184
    41834185/* Line 1464 of yacc.c  */
    4184 #line 1560 "grammar.y"
     4186#line 1562 "grammar.y"
    41854187    {
    41864188            /* $2 */
     
    42034205
    42044206/* Line 1464 of yacc.c  */
    4205 #line 1579 "grammar.y"
     4207#line 1581 "grammar.y"
    42064208    {
    42074209            idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     
    42184220
    42194221/* Line 1464 of yacc.c  */
    4220 #line 1589 "grammar.y"
     4222#line 1591 "grammar.y"
    42214223    {
    42224224            idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     
    42424244
    42434245/* Line 1464 of yacc.c  */
    4244 #line 1608 "grammar.y"
     4246#line 1610 "grammar.y"
    42454247    {
    42464248            omFree((ADDRESS)(yyvsp[(3) - (4)].name));
     
    42674269
    42684270/* Line 1464 of yacc.c  */
    4269 #line 1631 "grammar.y"
     4271#line 1633 "grammar.y"
    42704272    {
    42714273            // decl. of type proc p(int i)
     
    42784280
    42794281/* Line 1464 of yacc.c  */
    4280 #line 1637 "grammar.y"
     4282#line 1639 "grammar.y"
    42814283    {
    42824284            // decl. of type proc p(i)
     
    42924294
    42934295/* Line 1464 of yacc.c  */
    4294 #line 1649 "grammar.y"
     4296#line 1651 "grammar.y"
    42954297    {
    42964298            iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv));
     
    43034305
    43044306/* Line 1464 of yacc.c  */
    4305 #line 1655 "grammar.y"
     4307#line 1657 "grammar.y"
    43064308    {
    43074309            if ((yyvsp[(1) - (3)].i)==RETURN)
     
    43174319
    43184320/* Line 1464 of yacc.c  */
    4319 #line 4318 "grammar.cc"
     4321#line 4320 "grammar.cc"
    43204322      default: break;
    43214323    }
  • Singular/grammar.y

    rab2a18 rf0e7c4  
    677677        | CMD_M '(' exprlist ')'
    678678          {
    679             if(iiExprArithM(&$$,&$3,$1)) YYERROR;
     679            int b=iiExprArithM(&$$,&$3,$1); // handle branchTo
     680            if (b==TRUE) YYERROR;
     681            if (b==2) YYACCEPT;
    680682          }
    681683        | mat_cmd '(' expr ',' expr ',' expr ')'
  • Singular/iparith.cc

    rab2a18 rf0e7c4  
    83818381{
    83828382  memset(res,0,sizeof(sleftv));
     8383  BOOLEAN bo;
    83838384
    83848385  if (!errorreported)
     
    84568457        if (traceit&TRACE_CALL)
    84578458          Print("call %s(... (%d args))\n", iiTwoOps(op),args);
    8458         if (dArithM[i].p(res,a))
     8459        if ((failed=dArithM[i].p(res,a))==TRUE)
    84598460        {
    84608461          break;// leave loop, goto error handling
  • Singular/ipshell.cc

    rab2a18 rf0e7c4  
    11741174  return iiAssign(p,&tmp);
    11751175}
     1176BOOLEAN iiBranchTo(leftv r, leftv args)
     1177{
     1178  // <string1...stringN>,<proc>
     1179  // known: args!=NULL, l>=1
     1180  int l=args->listLength();
     1181  int ll=0;
     1182  if (iiCurrArgs!=NULL) ll=iiCurrArgs->listLength();
     1183  if (ll!=(l-1)) return FALSE;
     1184  leftv h=args;
     1185  short *t=(short*)omAlloc(l*sizeof(short));
     1186  t[0]=l-1;
     1187  int b;
     1188  int i;
     1189  for(i=1;i<l;i++,h=h->next)
     1190  {
     1191    if (h->Typ()!=STRING_CMD)
     1192    {
     1193      omFree(t);
     1194      Werror("arg %d is not a string",i);
     1195      return TRUE;
     1196    }
     1197    int tt;
     1198    b=IsCmd((char *)h->Data(),tt);
     1199    if(b) t[i]=tt;
     1200    else
     1201    {
     1202      omFree(t);
     1203      Werror("arg %d is not a type name",i);
     1204      return TRUE;
     1205    }
     1206  }
     1207  if (h->Typ()!=PROC_CMD)
     1208  {
     1209    omFree(t);
     1210    Werror("last arg is not a proc",i);
     1211    return TRUE;
     1212  }
     1213  b=iiCheckTypes(iiCurrArgs,t,0);
     1214  omFree(t);
     1215  if (b && (h->rtyp==IDHDL) && (h->e==NULL))
     1216  {
     1217    BOOLEAN err;
     1218    //Print("branchTo: %s\n",h->Name());
     1219    iiCurrProc=(idhdl)h->data;
     1220    err=iiAllStart(IDPROC(iiCurrProc),IDPROC(iiCurrProc)->data.s.body,BT_proc,IDPROC(iiCurrProc)->data.s.body_lineno-(iiCurrArgs==NULL));
     1221    exitBuffer(BT_proc);
     1222    if (iiCurrArgs!=NULL)
     1223    {
     1224      if (!err) Warn("too many arguments for %s",IDID(iiCurrProc));
     1225      iiCurrArgs->CleanUp();
     1226      omFreeBin((ADDRESS)iiCurrArgs, sleftv_bin);
     1227      iiCurrArgs=NULL;
     1228    }
     1229    return 2-err;
     1230  }
     1231  return FALSE;
     1232}
    11761233BOOLEAN iiParameter(leftv p)
    11771234{
     
    60146071    if (t!=ANY_TYPE)
    60156072    {
    6016       if (((t==IDHDL)&&(args->rtyp!=IDHDL)) 
     6073      if (((t==IDHDL)&&(args->rtyp!=IDHDL))
    60176074      || (t!=args->Typ()))
    60186075      {
  • Singular/ipshell.h

    rab2a18 rf0e7c4  
    291291                      int report=0  /// ;in] report error?
    292292                      );
    293 #endif
    294 
     293
     294BOOLEAN iiBranchTo(leftv r, leftv args);
     295
     296#endif
     297
  • Singular/table.h

    rab2a18 rf0e7c4  
    790790,{D(jjBREAK0),    BREAKPOINT_CMD,  NONE,               0       , ALLOW_PLURAL |ALLOW_RING}
    791791,{D(jjBREAK1),    BREAKPOINT_CMD,  NONE,               -2      , ALLOW_PLURAL |ALLOW_RING}
     792,{D(iiBranchTo),  BRANCHTO_CMD,    NONE,               -2      , ALLOW_PLURAL |ALLOW_RING}
    792793#ifdef SINGULAR_4_1
    793794,{D(jjCALL3ARG),  CMATRIX_CMD,     CMATRIX_CMD,        3       , ALLOW_PLURAL |ALLOW_RING}
     
    862863  { "bigint",      0, BIGINT_CMD ,        ROOT_DECL},
    863864  { "bigintmat",   0, BIGINTMAT_CMD ,     BIGINTMAT_CMD},
     865  { "branchTo",    0, BRANCHTO_CMD ,      CMD_M},
    864866  #ifdef HAVE_PLURAL
    865867  { "bracket",     0, BRACKET_CMD ,       CMD_2},
     
    900902  { "else",        0, ELSE_CMD ,          ELSE_CMD},
    901903  #ifdef HAVE_PLURAL
    902   { "envelope",    0, ENVELOPE_CMD ,       CMD_1},
     904  { "envelope",    0, ENVELOPE_CMD ,      CMD_1},
    903905  #endif
    904906  { "eval",        0, EVAL ,              EVAL},
  • Singular/tok.h

    rab2a18 rf0e7c4  
    4040  BAREISS_CMD,
    4141  BIGINT_CMD,
     42  BRANCHTO_CMD,
    4243  BRACKET_CMD,
    4344  BREAKPOINT_CMD,
Note: See TracChangeset for help on using the changeset viewer.