您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ yystrlen函数代码示例

51自学网 2021-06-03 11:55:16
  C++
这篇教程C++ yystrlen函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中yystrlen函数的典型用法代码示例。如果您正苦于以下问题:C++ yystrlen函数的具体用法?C++ yystrlen怎么用?C++ yystrlen使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了yystrlen函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: backslash

/* Copy to YYRES the contents of YYSTR after stripping away unnecessary   quotes and backslashes, so that it's suitable for yyerror.  The   heuristic is that double-quoting is unnecessary unless the string   contains an apostrophe, a comma, or backslash (other than   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is   null, do not copy; instead, return the length of what the result   would have been.  */static YYSIZE_Tyytnamerr (char *yyres, const char *yystr){    if (*yystr == '"')    {        YYSIZE_T yyn = 0;        char const *yyp = yystr;        for (;;)            switch (*++yyp)            {            case '/'':            case ',':                goto do_not_strip_quotes;            case '//':                if (*++yyp != '//')                    goto do_not_strip_quotes;            /* Fall through.  */            default:                if (yyres)                    yyres[yyn] = *yyp;                yyn++;                break;            case '"':                if (yyres)                    yyres[yyn] = '/0';                return yyn;            }do_not_strip_quotes:        ;    }    if (! yyres)        return yystrlen (yystr);    return yystpcpy (yyres, yystr) - yyres;}
开发者ID:Messmania,项目名称:GPGPU-Sim,代码行数:46,


示例2: yysyntax_error

/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message   about the unexpected token YYTOKEN for the state stack whose top is   YYSSP.   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is   not large enough to hold the message.  In that case, also set   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the   required number of bytes is too large to store.  */static intyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,                yytype_int16 *yyssp, int yytoken){  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);  YYSIZE_T yysize = yysize0;  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };  /* Internationalized format string. */  const char *yyformat = YY_NULLPTR;  /* Arguments of yyformat. */  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];  /* Number of reported tokens (one for the "unexpected", one per     "expected"). */  int yycount = 0;  /* There are many possibilities here to consider:     - If this state is a consistent state with a default action, then       the only way this function was invoked is if the default action       is an error action.  In that case, don't check for expected       tokens because there are none.     - The only way there can be no lookahead present (in yychar) is if       this state is a consistent state with a default action.  Thus,       detecting the absence of a lookahead is sufficient to determine       that there is no unexpected or expected token to report.  In that       case, just report a simple "syntax error".     - Don't assume there isn't a lookahead just because this state is a       consistent state with a default action.  There might have been a       previous inconsistent state, consistent state with a non-default       action, or user semantic action that manipulated yychar.     - Of course, the expected token list depends on states to have       correct lookahead information, and it depends on the parser not       to perform extra reductions after fetching a lookahead from the       scanner and before detecting a syntax error.  Thus, state merging       (from LALR or IELR) and default reductions corrupt the expected       token list.  However, the list is correct for canonical LR with       one exception: it will still contain any token that will not be       accepted due to an error action in a later state.  */  if (yytoken != YYEMPTY)    {      int yyn = yypact[*yyssp];      yyarg[yycount++] = yytname[yytoken];      if (!yypact_value_is_default (yyn))        {          /* Start YYX at -YYN if negative to avoid negative indexes in             YYCHECK.  In other words, skip the first -YYN actions for             this state because they are default actions.  */          int yyxbegin = yyn < 0 ? -yyn : 0;          /* Stay within bounds of both yycheck and yytname.  */          int yychecklim = YYLAST - yyn + 1;          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;          int yyx;          for (yyx = yyxbegin; yyx < yyxend; ++yyx)            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR                && !yytable_value_is_error (yytable[yyx + yyn]))              {                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)                  {                    yycount = 1;                    yysize = yysize0;                    break;                  }                yyarg[yycount++] = yytname[yyx];                {                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);                  if (! (yysize <= yysize1                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))                    return 2;                  yysize = yysize1;                }              }        }    }  switch (yycount)    {# define YYCASE_(N, S)                      /      case N:                               /        yyformat = S;                       /      break      YYCASE_(0, YY_("syntax error"));      YYCASE_(1, YY_("syntax error, unexpected %s"));      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));# undef YYCASE_    }  {    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);//.........这里部分代码省略.........
开发者ID:Arbi-Oussama,项目名称:University-Projects,代码行数:101,



注:本文中的yystrlen函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ z函数代码示例
C++ yyrestart函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。