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

📄 stc.c

📁 gcc-2.95.3 Linux下最常用的C编译器
💻 C
📖 第 1 页 / 共 5 页
字号:
	  ffelab_set_type (ffestc_label_, FFELAB_typeANY);	  ffestd_labeldef_any (ffestc_label_);	  ffebad_start (FFEBAD_LABEL_DO_BLOCK_END);	  ffebad_here (0, ffelab_doref_line (ffestc_label_),		       ffelab_doref_column (ffestc_label_));	  ffebad_here (1, ffestw_line (ffestw_stack_top ()), ffestw_col (ffestw_stack_top ()));	  ffebad_here (2, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_finish ();	  break;	}      ffestd_labeldef_branch (ffestc_label_);      /* Leave something around for _branch_end_() to handle. */      return;    case FFELAB_typeFORMAT:      ffelab_set_type (ffestc_label_, FFELAB_typeANY);      ffestd_labeldef_any (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_firstref_line (ffestc_label_),		   ffelab_firstref_column (ffestc_label_));      ffebad_finish ();      break;    default:      assert ("bad label" == NULL);      /* Fall through.  */    case FFELAB_typeANY:      break;    }  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;}/* Define possible end of labeled-DO-loop.  Call only after calling   ffestc_labeldef_branch_begin_, or when other branch_* functions   recognize that a label might also be serving as a branch end (in   which case they must issue a diagnostic).  */static voidffestc_labeldef_branch_end_ (){  if (ffesta_label_token == NULL)    return;  assert (ffestc_label_ != NULL);  assert ((ffelab_type (ffestc_label_) == FFELAB_typeLOOPEND)	  || (ffelab_type (ffestc_label_) == FFELAB_typeANY));  while ((ffestw_state (ffestw_stack_top ()) == FFESTV_stateDO)	 && (ffestw_label (ffestw_stack_top ()) == ffestc_label_))    ffestc_shriek_do_ (TRUE);  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;}/* ffestc_labeldef_endif_ -- Define label as an END IF one   ffestc_labeldef_endif_();  */static voidffestc_labeldef_endif_ (){  if ((ffesta_label_token == NULL)      || (ffestc_shriek_after1_ != NULL)      || !ffestc_labeldef_begin_ ())    return;  switch (ffelab_type (ffestc_label_))    {    case FFELAB_typeUNKNOWN:    case FFELAB_typeASSIGNABLE:      ffelab_set_type (ffestc_label_, FFELAB_typeENDIF);      ffelab_set_blocknum (ffestc_label_,		   ffestw_blocknum (ffestw_previous (ffestw_stack_top ())));      ffestd_labeldef_endif (ffestc_label_);      break;    case FFELAB_typeNOTLOOP:      if (ffelab_blocknum (ffestc_label_)	  < ffestw_blocknum (ffestw_previous (ffestw_stack_top ())))	{	  ffebad_start (FFEBAD_LABEL_BLOCK);	  ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_here (1, ffelab_firstref_line (ffestc_label_),		       ffelab_firstref_column (ffestc_label_));	  ffebad_finish ();	}      ffelab_set_blocknum (ffestc_label_,		   ffestw_blocknum (ffestw_previous (ffestw_stack_top ())));      ffestd_labeldef_endif (ffestc_label_);      break;    case FFELAB_typeLOOPEND:      if ((ffestw_state (ffestw_stack_top ()) != FFESTV_stateDO)	  || (ffestw_label (ffestw_stack_top ()) != ffestc_label_))	{			/* Unterminated block. */	  ffelab_set_type (ffestc_label_, FFELAB_typeANY);	  ffestd_labeldef_any (ffestc_label_);	  ffebad_start (FFEBAD_LABEL_DO_BLOCK_END);	  ffebad_here (0, ffelab_doref_line (ffestc_label_),		       ffelab_doref_column (ffestc_label_));	  ffebad_here (1, ffestw_line (ffestw_stack_top ()), ffestw_col (ffestw_stack_top ()));	  ffebad_here (2, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_finish ();	  break;	}      ffestd_labeldef_endif (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_doref_line (ffestc_label_),		   ffelab_doref_column (ffestc_label_));      ffebad_finish ();      ffestc_labeldef_branch_end_ ();      return;    case FFELAB_typeFORMAT:      ffelab_set_type (ffestc_label_, FFELAB_typeANY);      ffestd_labeldef_any (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_firstref_line (ffestc_label_),		   ffelab_firstref_column (ffestc_label_));      ffebad_finish ();      break;    default:      assert ("bad label" == NULL);      /* Fall through.  */    case FFELAB_typeANY:      break;    }  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;}/* ffestc_labeldef_format_ -- Define label as a FORMAT one   ffestc_labeldef_format_();  */static voidffestc_labeldef_format_ (){  if ((ffesta_label_token == NULL)      || (ffestc_shriek_after1_ != NULL))    {      ffebad_start (FFEBAD_FORMAT_NO_LABEL_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_tokens[0]),		   ffelex_token_where_column (ffesta_tokens[0]));      ffebad_finish ();      return;    }  if (!ffestc_labeldef_begin_ ())    return;  switch (ffelab_type (ffestc_label_))    {    case FFELAB_typeUNKNOWN:    case FFELAB_typeASSIGNABLE:      ffelab_set_type (ffestc_label_, FFELAB_typeFORMAT);      ffestd_labeldef_format (ffestc_label_);      break;    case FFELAB_typeFORMAT:      ffestd_labeldef_format (ffestc_label_);      break;    case FFELAB_typeLOOPEND:      if ((ffestw_state (ffestw_stack_top ()) != FFESTV_stateDO)	  || (ffestw_label (ffestw_stack_top ()) != ffestc_label_))	{			/* Unterminated block. */	  ffelab_set_type (ffestc_label_, FFELAB_typeANY);	  ffestd_labeldef_any (ffestc_label_);	  ffebad_start (FFEBAD_LABEL_DO_BLOCK_END);	  ffebad_here (0, ffelab_doref_line (ffestc_label_),		       ffelab_doref_column (ffestc_label_));	  ffebad_here (1, ffestw_line (ffestw_stack_top ()), ffestw_col (ffestw_stack_top ()));	  ffebad_here (2, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_finish ();	  break;	}      ffestd_labeldef_format (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_doref_line (ffestc_label_),		   ffelab_doref_column (ffestc_label_));      ffebad_finish ();      ffestc_labeldef_branch_end_ ();      return;    case FFELAB_typeNOTLOOP:      ffelab_set_type (ffestc_label_, FFELAB_typeANY);      ffestd_labeldef_any (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_firstref_line (ffestc_label_),		   ffelab_firstref_column (ffestc_label_));      ffebad_finish ();      break;    default:      assert ("bad label" == NULL);      /* Fall through.  */    case FFELAB_typeANY:      break;    }  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;}/* ffestc_labeldef_invalid_ -- Label definition invalid, complain if present   ffestc_labeldef_invalid_();	*/static voidffestc_labeldef_invalid_ (){  if ((ffesta_label_token == NULL)      || (ffestc_shriek_after1_ != NULL)      || !ffestc_labeldef_begin_ ())    return;  ffebad_start (FFEBAD_INVALID_LABEL_DEF);  ffebad_here (0, ffelex_token_where_line (ffesta_label_token),	       ffelex_token_where_column (ffesta_label_token));  ffebad_finish ();  ffelab_set_type (ffestc_label_, FFELAB_typeANY);  ffestd_labeldef_any (ffestc_label_);  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;}/* Define label as a non-loop-ending one on a statement that can't   be in the "then" part of a logical IF, such as a block-IF statement.  */static voidffestc_labeldef_notloop_ (){  if (ffesta_label_token == NULL)    return;  assert (ffestc_shriek_after1_ == NULL);  if (!ffestc_labeldef_begin_ ())    return;  switch (ffelab_type (ffestc_label_))    {    case FFELAB_typeUNKNOWN:    case FFELAB_typeASSIGNABLE:      ffelab_set_type (ffestc_label_, FFELAB_typeNOTLOOP);      ffelab_set_blocknum (ffestc_label_,			   ffestw_blocknum (ffestw_stack_top ()));      ffestd_labeldef_notloop (ffestc_label_);      break;    case FFELAB_typeNOTLOOP:      if (ffelab_blocknum (ffestc_label_)	  < ffestw_blocknum (ffestw_stack_top ()))	{	  ffebad_start (FFEBAD_LABEL_BLOCK);	  ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_here (1, ffelab_firstref_line (ffestc_label_),		       ffelab_firstref_column (ffestc_label_));	  ffebad_finish ();	}      ffelab_set_blocknum (ffestc_label_,			   ffestw_blocknum (ffestw_stack_top ()));      ffestd_labeldef_notloop (ffestc_label_);      break;    case FFELAB_typeLOOPEND:      if ((ffestw_state (ffestw_stack_top ()) != FFESTV_stateDO)	  || (ffestw_label (ffestw_stack_top ()) != ffestc_label_))	{			/* Unterminated block. */	  ffelab_set_type (ffestc_label_, FFELAB_typeANY);	  ffestd_labeldef_any (ffestc_label_);	  ffebad_start (FFEBAD_LABEL_DO_BLOCK_END);	  ffebad_here (0, ffelab_doref_line (ffestc_label_),		       ffelab_doref_column (ffestc_label_));	  ffebad_here (1, ffestw_line (ffestw_stack_top ()), ffestw_col (ffestw_stack_top ()));	  ffebad_here (2, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_finish ();	  break;	}      ffestd_labeldef_notloop (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_doref_line (ffestc_label_),		   ffelab_doref_column (ffestc_label_));      ffebad_finish ();      ffestc_labeldef_branch_end_ ();      return;    case FFELAB_typeFORMAT:      ffelab_set_type (ffestc_label_, FFELAB_typeANY);      ffestd_labeldef_any (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_firstref_line (ffestc_label_),		   ffelab_firstref_column (ffestc_label_));      ffebad_finish ();      break;    default:      assert ("bad label" == NULL);      /* Fall through.  */    case FFELAB_typeANY:      break;    }  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;}/* Define label as a non-loop-ending one.  Use this when it is   possible that the pending label is inhibited because we're in   the midst of a logical-IF, and thus _branch_end_ is going to   be called after the current statement to resolve a potential   loop-ending label.  */static voidffestc_labeldef_notloop_begin_ (){  if ((ffesta_label_token == NULL)      || (ffestc_shriek_after1_ != NULL)      || !ffestc_labeldef_begin_ ())    return;  switch (ffelab_type (ffestc_label_))    {    case FFELAB_typeUNKNOWN:    case FFELAB_typeASSIGNABLE:      ffelab_set_type (ffestc_label_, FFELAB_typeNOTLOOP);      ffelab_set_blocknum (ffestc_label_,			   ffestw_blocknum (ffestw_stack_top ()));      ffestd_labeldef_notloop (ffestc_label_);      break;    case FFELAB_typeNOTLOOP:      if (ffelab_blocknum (ffestc_label_)	  < ffestw_blocknum (ffestw_stack_top ()))	{	  ffebad_start (FFEBAD_LABEL_BLOCK);	  ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_here (1, ffelab_firstref_line (ffestc_label_),		       ffelab_firstref_column (ffestc_label_));	  ffebad_finish ();	}      ffelab_set_blocknum (ffestc_label_,			   ffestw_blocknum (ffestw_stack_top ()));      ffestd_labeldef_notloop (ffestc_label_);      break;    case FFELAB_typeLOOPEND:      if ((ffestw_state (ffestw_stack_top ()) != FFESTV_stateDO)	  || (ffestw_label (ffestw_stack_top ()) != ffestc_label_))	{			/* Unterminated block. */	  ffelab_set_type (ffestc_label_, FFELAB_typeANY);	  ffestd_labeldef_any (ffestc_label_);	  ffebad_start (FFEBAD_LABEL_DO_BLOCK_END);	  ffebad_here (0, ffelab_doref_line (ffestc_label_),		       ffelab_doref_column (ffestc_label_));	  ffebad_here (1, ffestw_line (ffestw_stack_top ()), ffestw_col (ffestw_stack_top ()));	  ffebad_here (2, ffelex_token_where_line (ffesta_label_token),		       ffelex_token_where_column (ffesta_label_token));	  ffebad_finish ();	  break;	}      ffestd_labeldef_branch (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_doref_line (ffestc_label_),		   ffelab_doref_column (ffestc_label_));      ffebad_finish ();      return;    case FFELAB_typeFORMAT:      ffelab_set_type (ffestc_label_, FFELAB_typeANY);      ffestd_labeldef_any (ffestc_label_);      ffebad_start (FFEBAD_LABEL_USE_DEF);      ffebad_here (0, ffelex_token_where_line (ffesta_label_token),		   ffelex_token_where_column (ffesta_label_token));      ffebad_here (1, ffelab_firstref_line (ffestc_label_),		   ffelab_firstref_column (ffestc_label_));      ffebad_finish ();      break;    default:      assert ("bad label" == NULL);      /* Fall through.  */    case FFELAB_typeANY:      break;    }  ffestc_try_shriek_do_ ();  ffelex_token_kill (ffesta_label_token);  ffesta_label_token = NULL;

⌨️ 快捷键说明

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