⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.c

📁 samba最新软件
💻 C
📖 第 1 页 / 共 5 页
字号:
	  YYSTACK_FREE (yyss1);      }# endif#endif /* no yyoverflow */      yyssp = yyss + yysize - 1;      yyvsp = yyvs + yysize - 1;      YYDPRINTF ((stderr, "Stack size increased to %lu\n",		  (unsigned long int) yystacksize));      if (yyss + yystacksize - 1 <= yyssp)	YYABORT;    }  YYDPRINTF ((stderr, "Entering state %d\n", yystate));  goto yybackup;/*-----------.| yybackup.  |`-----------*/yybackup:  /* Do appropriate processing given the current state.  Read a     look-ahead token if we need one and don't already have one.  */  /* First try to decide what to do without reference to look-ahead token.  */  yyn = yypact[yystate];  if (yyn == YYPACT_NINF)    goto yydefault;  /* Not known => get a look-ahead token if don't already have one.  */  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */  if (yychar == YYEMPTY)    {      YYDPRINTF ((stderr, "Reading a token: "));      yychar = YYLEX;    }  if (yychar <= YYEOF)    {      yychar = yytoken = YYEOF;      YYDPRINTF ((stderr, "Now at end of input.\n"));    }  else    {      yytoken = YYTRANSLATE (yychar);      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);    }  /* If the proper action on seeing token YYTOKEN is to reduce or to     detect an error, take that action.  */  yyn += yytoken;  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)    goto yydefault;  yyn = yytable[yyn];  if (yyn <= 0)    {      if (yyn == 0 || yyn == YYTABLE_NINF)	goto yyerrlab;      yyn = -yyn;      goto yyreduce;    }  if (yyn == YYFINAL)    YYACCEPT;  /* Count tokens shifted since error; after three, turn off error     status.  */  if (yyerrstatus)    yyerrstatus--;  /* Shift the look-ahead token.  */  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);  /* Discard the shifted token unless it is eof.  */  if (yychar != YYEOF)    yychar = YYEMPTY;  yystate = yyn;  *++yyvsp = yylval;  goto yynewstate;/*-----------------------------------------------------------.| yydefault -- do the default action for the current state.  |`-----------------------------------------------------------*/yydefault:  yyn = yydefact[yystate];  if (yyn == 0)    goto yyerrlab;  goto yyreduce;/*-----------------------------.| yyreduce -- Do a reduction.  |`-----------------------------*/yyreduce:  /* yyn is the number of a rule to reduce with.  */  yylen = yyr2[yyn];  /* If YYLEN is nonzero, implement the default value of the action:     `$$ = $1'.     Otherwise, the following line sets YYVAL to garbage.     This behavior is undocumented and Bison     users should not rely upon it.  Assigning to YYVAL     unconditionally makes the parser a bit smaller, and it avoids a     GCC warning that YYVAL may be used uninitialized.  */  yyval = yyvsp[1-yylen];  YY_REDUCE_PRINT (yyn);  switch (yyn)    {        case 2:#line 235 "parse.y"    {			checkundefined();		}    break;  case 4:#line 242 "parse.y"    { error_message("implicit tagging is not supported"); }    break;  case 5:#line 244 "parse.y"    { error_message("automatic tagging is not supported"); }    break;  case 7:#line 249 "parse.y"    { error_message("no extensibility options supported"); }    break;  case 17:#line 270 "parse.y"    { 		    struct string_list *sl;		    for(sl = (yyvsp[(1) - (4)].sl); sl != NULL; sl = sl->next) {			Symbol *s = addsym(sl->string);			s->stype = Stype;		    }		    add_import((yyvsp[(3) - (4)].name));		}    break;  case 22:#line 289 "parse.y"    {		    (yyval.sl) = emalloc(sizeof(*(yyval.sl)));		    (yyval.sl)->string = (yyvsp[(1) - (3)].name);		    (yyval.sl)->next = (yyvsp[(3) - (3)].sl);		}    break;  case 23:#line 295 "parse.y"    {		    (yyval.sl) = emalloc(sizeof(*(yyval.sl)));		    (yyval.sl)->string = (yyvsp[(1) - (1)].name);		    (yyval.sl)->next = NULL;		}    break;  case 24:#line 303 "parse.y"    {		    Symbol *s = addsym ((yyvsp[(1) - (3)].name));		    s->stype = Stype;		    s->type = (yyvsp[(3) - (3)].type);		    fix_labels(s);		    generate_type (s);		}    break;  case 42:#line 334 "parse.y"    {			(yyval.type) = new_tag(ASN1_C_UNIV, UT_Boolean, 				     TE_EXPLICIT, new_type(TBoolean));		}    break;  case 43:#line 341 "parse.y"    {		    if((yyvsp[(2) - (5)].value)->type != integervalue)			error_message("Non-integer used in first part of range");		    if((yyvsp[(2) - (5)].value)->type != integervalue)			error_message("Non-integer in second part of range");		    (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));		    (yyval.range)->min = (yyvsp[(2) - (5)].value)->u.integervalue;		    (yyval.range)->max = (yyvsp[(4) - (5)].value)->u.integervalue;		}    break;  case 44:#line 351 "parse.y"    {				    if((yyvsp[(2) - (5)].value)->type != integervalue)			error_message("Non-integer in first part of range");		    (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));		    (yyval.range)->min = (yyvsp[(2) - (5)].value)->u.integervalue;		    (yyval.range)->max = (yyvsp[(2) - (5)].value)->u.integervalue - 1;		}    break;  case 45:#line 359 "parse.y"    {				    if((yyvsp[(4) - (5)].value)->type != integervalue)			error_message("Non-integer in second part of range");		    (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));		    (yyval.range)->min = (yyvsp[(4) - (5)].value)->u.integervalue + 2;		    (yyval.range)->max = (yyvsp[(4) - (5)].value)->u.integervalue;		}    break;  case 46:#line 367 "parse.y"    {		    if((yyvsp[(2) - (3)].value)->type != integervalue)			error_message("Non-integer used in limit");		    (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));		    (yyval.range)->min = (yyvsp[(2) - (3)].value)->u.integervalue;		    (yyval.range)->max = (yyvsp[(2) - (3)].value)->u.integervalue;		}    break;  case 47:#line 378 "parse.y"    {			(yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, 				     TE_EXPLICIT, new_type(TInteger));		}    break;  case 48:#line 383 "parse.y"    {			(yyval.type) = new_type(TInteger);			(yyval.type)->range = (yyvsp[(2) - (2)].range);			(yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, (yyval.type));		}    break;  case 49:#line 389 "parse.y"    {		  (yyval.type) = new_type(TInteger);		  (yyval.type)->members = (yyvsp[(3) - (4)].members);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, (yyval.type));		}    break;  case 50:#line 397 "parse.y"    {			(yyval.members) = emalloc(sizeof(*(yyval.members)));			ASN1_TAILQ_INIT((yyval.members));			ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members);		}    break;  case 51:#line 403 "parse.y"    {			ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);			(yyval.members) = (yyvsp[(1) - (3)].members);		}    break;  case 52:#line 408 "parse.y"    { (yyval.members) = (yyvsp[(1) - (3)].members); }    break;  case 53:#line 412 "parse.y"    {			(yyval.member) = emalloc(sizeof(*(yyval.member)));			(yyval.member)->name = (yyvsp[(1) - (4)].name);			(yyval.member)->gen_name = estrdup((yyvsp[(1) - (4)].name));			output_name ((yyval.member)->gen_name);			(yyval.member)->val = (yyvsp[(3) - (4)].constant);			(yyval.member)->optional = 0;			(yyval.member)->ellipsis = 0;			(yyval.member)->type = NULL;		}    break;  case 54:#line 425 "parse.y"    {		  (yyval.type) = new_type(TInteger);		  (yyval.type)->members = (yyvsp[(3) - (4)].members);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Enumerated, TE_EXPLICIT, (yyval.type));		}    break;  case 56:#line 436 "parse.y"    {		  (yyval.type) = new_type(TBitString);		  (yyval.type)->members = emalloc(sizeof(*(yyval.type)->members));		  ASN1_TAILQ_INIT((yyval.type)->members);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, (yyval.type));		}    break;  case 57:#line 443 "parse.y"    {		  (yyval.type) = new_type(TBitString);		  (yyval.type)->members = (yyvsp[(4) - (5)].members);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, (yyval.type));		}    break;  case 58:#line 451 "parse.y"    {			(yyval.type) = new_tag(ASN1_C_UNIV, UT_OID, 				     TE_EXPLICIT, new_type(TOID));		}    break;  case 59:#line 457 "parse.y"    {		    Type *t = new_type(TOctetString);		    t->range = (yyvsp[(3) - (3)].range);		    (yyval.type) = new_tag(ASN1_C_UNIV, UT_OctetString, 				 TE_EXPLICIT, t);		}    break;  case 60:#line 466 "parse.y"    {			(yyval.type) = new_tag(ASN1_C_UNIV, UT_Null, 				     TE_EXPLICIT, new_type(TNull));		}    break;  case 61:#line 473 "parse.y"    { (yyval.range) = NULL; }    break;  case 62:#line 475 "parse.y"    { (yyval.range) = (yyvsp[(2) - (2)].range); }    break;  case 63:#line 480 "parse.y"    {		  (yyval.type) = new_type(TSequence);		  (yyval.type)->members = (yyvsp[(3) - (4)].members);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, (yyval.type));		}    break;  case 64:#line 486 "parse.y"    {		  (yyval.type) = new_type(TSequence);		  (yyval.type)->members = NULL;		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, (yyval.type));		}    break;  case 65:#line 494 "parse.y"    {		  (yyval.type) = new_type(TSequenceOf);		  (yyval.type)->range = (yyvsp[(2) - (4)].range);		  (yyval.type)->subtype = (yyvsp[(4) - (4)].type);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, (yyval.type));		}    break;  case 66:#line 503 "parse.y"    {		  (yyval.type) = new_type(TSet);		  (yyval.type)->members = (yyvsp[(3) - (4)].members);		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, (yyval.type));		}    break;  case 67:#line 509 "parse.y"    {		  (yyval.type) = new_type(TSet);		  (yyval.type)->members = NULL;		  (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, (yyval.type));		}    break;  case 68:#line

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -