📄 adsedgelabel.tab.c
字号:
{ int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); }#endif switch (yyn) {case 5:#line 90 "adsedgelabel.y"{ proptype[iprop]= EV_FROM_ENV; /* later it will be changed for EV_INT if we detect that it is sent as the action of some transition */ propname[iprop]= (char *)malloc (strlen(yyvsp[0].str_ptr)+1); strcpy(propname[iprop],yyvsp[0].str_ptr); iprop++;; break;}case 6:#line 100 "adsedgelabel.y"{ int amount; isclock=1; clockconstrainttype[iclock]=AFTER; amount=strtol(yyvsp[-2].str_ptr,NULL,10); clockconstraint[iclock] = amount; clocktype[iclock]=timetype; iclock++;; break;}case 7:#line 111 "adsedgelabel.y"{timetype=SECOND;; break;}case 8:#line 112 "adsedgelabel.y"{timetype=HOUR;; break;}case 9:#line 113 "adsedgelabel.y"{timetype=MINUTE;; break;}case 10:#line 114 "adsedgelabel.y"{timetype=SECOND;; break;}case 11:#line 115 "adsedgelabel.y"{timetype=DAY;; break;}case 14:#line 122 "adsedgelabel.y"{ inname[indexin]= (char *)malloc (strlen(yyvsp[0].str_ptr)+1); strcpy(inname[indexin],yyvsp[0].str_ptr); indexin++; ; break;}case 16:#line 127 "adsedgelabel.y"{ notinname[notindexin]= (char *)malloc (strlen(yyvsp[0].str_ptr)+1); strcpy(notinname[notindexin],yyvsp[0].str_ptr); notindexin++; ; break;}case 18:#line 132 "adsedgelabel.y"{ inname[indexin]= (char *)malloc (strlen(yyvsp[0].str_ptr)+1); strcpy(inname[indexin],yyvsp[0].str_ptr); indexin++; ; break;}case 20:#line 137 "adsedgelabel.y"{ notinname[notindexin]= (char *)malloc (strlen(yyvsp[0].str_ptr)+1); strcpy(notinname[notindexin],yyvsp[0].str_ptr); notindexin++; ; break;}case 23:#line 145 "adsedgelabel.y"{iselse=1;; break;}case 24:#line 146 "adsedgelabel.y"{; break;}case 29:#line 156 "adsedgelabel.y"{isvar=0;; break;}case 30:#line 157 "adsedgelabel.y"{ varname[ivar]= (char *)malloc (strlen(yyvsp[0].str_ptr)+1); strcpy(varname[ivar],yyvsp[0].str_ptr);; strcpy(temp,yyvsp[0].str_ptr); isvar=1; ; break;}case 31:#line 163 "adsedgelabel.y"{ char name[100]; if (!isintorstrexp) { strcpy(name,temp); proptype[iprop]= PROP; if (isvar) { vartype[ivar]=PROP; ivar++; }; } else { strcpy(name,yyvsp[-2].str_ptr); } propname[iprop]= (char *)malloc (strlen(name)+1); strcpy(propname[iprop],name); iprop++;; break;}case 32:#line 182 "adsedgelabel.y"{isintorstrexp=0;; break;}case 33:#line 183 "adsedgelabel.y"{ proptype[iprop]= INT; if (isvar) {vartype[ivar]=INT; ivar++; }; isintorstrexp =1;; break;}case 34:#line 189 "adsedgelabel.y"{ proptype[iprop]= STRING; if (isvar) {vartype[ivar]= STRING; ivar++;}; isintorstrexp=1;; break;}case 43:#line 212 "adsedgelabel.y"{hasaction=0; broadcast= 0;; break;}case 44:#line 216 "adsedgelabel.y"{ hasaction= 1; if (strncmp(yyvsp[0].str_ptr,"broadcast ",10)==0){ int lon= strlen(yyvsp[0].str_ptr)-10+1; /* -10 because of "broadcast ", +1 for the \0 */ int i; sendeventname= (char *) malloc (lon*sizeof(char)); for (i=0; i< lon-1; i++) sendeventname[i]= yyvsp[0].str_ptr[i+10]; sendeventname[i]= '\0'; broadcast= 1; } else{ broadcast= 0; sendeventname= (char *)malloc ((strlen(yyvsp[0].str_ptr)+1)*sizeof(char)); strcpy(sendeventname,yyvsp[0].str_ptr); } ; break;}} /* the action file gets copied in in place of this dollarsign */#line 543 "/usr/lib/bison.simple" yyvsp -= yylen; yyssp -= yylen;#ifdef YYLSP_NEEDED yylsp -= yylen;#endif#if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); }#endif *++yyvsp = yyval;#ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; }#endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate;yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs;#ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else#endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1;yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT;#if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);#endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle;yyerrdefault: /* current state does not do anything special for the error token. */#if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault;#endifyyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp;#ifdef YYLSP_NEEDED yylsp--;#endif#if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); }#endifyyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT;#if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, ");#endif *++yyvsp = yylval;#ifdef YYLSP_NEEDED *++yylsp = yylloc;#endif yystate = yyn; goto yynewstate; yyacceptlab: /* YYACCEPT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs);#ifdef YYLSP_NEEDED free (yyls);#endif } return 0; yyabortlab: /* YYABORT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs);#ifdef YYLSP_NEEDED free (yyls);#endif } return 1;}#line 233 "adsedgelabel.y"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -