当前位置: 首页>>代码示例>>C++>>正文


C++ NEW2函数代码示例

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


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

示例1: output_actions

void output_actions()
{
    nvectors = 3*nstates + nvars;

    froms = NEW2(nvectors, Yshort *);
    tos = NEW2(nvectors, Yshort *);
    tally = NEW2(nvectors, Yshort);
    width = NEW2(nvectors, Yshort);
    if (SRtotal+RRtotal)
	conflicts = NEW2(4*(SRtotal+RRtotal), Yshort);
    else
	conflicts = 0;
    nconflicts = 0;

    token_actions();
    FREE(lookaheads);
    FREE(LA);
    FREE(LAruleno);

    goto_actions();
    FREE(goto_map + ntokens);
    FREE(from_state);
    FREE(to_state);

    sort_actions();
    pack_table();
    output_base();
    output_table();
    output_check();
    output_ctable();
    output_astable();
    FREE(accessing_symbol);
}
开发者ID:sunfirefox,项目名称:btyacc,代码行数:33,代码来源:output.c

示例2: allocate_storage

static void allocate_storage (void)
{
    allocate_itemsets ();
    shiftset  = NEW2 (nsyms, Value_t);
    redset    = NEW2 (nrules + 1, Value_t);
    state_set = NEW2 (nitems, core *);
}
开发者ID:JX7P,项目名称:JXWebGen,代码行数:7,代码来源:lr0.c

示例3: output_actions

static void
output_actions(void)
{
    nvectors = 2 * nstates + nvars;

    froms = NEW2(nvectors, Value_t *);
    tos = NEW2(nvectors, Value_t *);
    tally = NEW2(nvectors, Value_t);
    width = NEW2(nvectors, Value_t);

    token_actions();
    FREE(lookaheads);
    FREE(LA);
    FREE(LAruleno);
    FREE(accessing_symbol);

    goto_actions();
    FREE(goto_map + ntokens);
    FREE(from_state);
    FREE(to_state);

    sort_actions();
    pack_table();
    output_base();
    output_table();
    output_check();
}
开发者ID:Der-Jan,项目名称:freebsd-crypto,代码行数:27,代码来源:output.c

示例4: verbose

void verbose(void)
{
    register int i;

    if (!vflag) return;

    null_rules = (Yshort *) NEW2(nrules, null_rules[0]);
    if (null_rules == 0) no_space();

    BtYacc_puts("\f\n", verbose_file);

    for (i = 0; i < nstates; ++i)
        print_state(i);
    FREE(null_rules);

    if (nunused)
        log_unused();
    if (SRtotal || RRtotal)
        log_conflicts();

    print_tokens();

    BtYacc_printf(verbose_file, "\n\n%d terminals, %d nonterminals\n%d grammar rules, %d states\n",
                  ntokens, nvars, nrules - 2, nstates);
}
开发者ID:GerHobbelt,项目名称:BtYacc,代码行数:25,代码来源:verbose.c

示例5: set_derives

static void
set_derives(void)
{
    Value_t i, k;
    int lhs;

    derives = NEW2(nsyms, Value_t *);
    rules = NEW2(nvars + nrules, Value_t);

    k = 0;
    for (lhs = start_symbol; lhs < nsyms; lhs++)
    {
	derives[lhs] = rules + k;
	for (i = 0; i < nrules; i++)
	{
	    if (rlhs[i] == lhs)
	    {
		rules[k] = i;
		k++;
	    }
	}
	rules[k] = -1;
	k++;
    }

#ifdef	DEBUG
    print_derives();
#endif
}
开发者ID:0xffffffRabbit,项目名称:NextBSD-1,代码行数:29,代码来源:lr0.c

示例6: sort_actions

void sort_actions()
{
  register int i;
  register int j;
  register int k;
  register int t;
  register int w;

  order = NEW2(nvectors, Yshort);
  nentries = 0;

  for (i = 0; i < nvectors; i++)
    {
      if (tally[i] > 0)
	{
	  t = tally[i];
	  w = width[i];
	  j = nentries - 1;

	  while (j >= 0 && (width[order[j]] < w))
	    j--;

	  while (j >= 0 && (width[order[j]] == w) && (tally[order[j]] < t))
	    j--;

	  for (k = nentries - 1; k > j; k--)
	    order[k + 1] = order[k];

	  order[j + 1] = i;
	  nentries++;
	}
    }
}
开发者ID:sunfirefox,项目名称:btyacc,代码行数:33,代码来源:output.c

示例7: goto_actions

static void
goto_actions(void)
{
    int i, j, k;

    state_count = NEW2(nstates, Value_t);

    k = default_goto(start_symbol + 1);
    start_int_table("dgoto", k);
    save_column(start_symbol + 1, k);

    j = 10;
    for (i = start_symbol + 2; i < nsyms; i++)
    {
	if (j >= 10)
	{
	    output_newline();
	    j = 1;
	}
	else
	    ++j;

	k = default_goto(i);
	output_int(k);
	save_column(i, k);
    }

    end_table();
    FREE(state_count);
}
开发者ID:Der-Jan,项目名称:freebsd-crypto,代码行数:30,代码来源:output.c

示例8: goto_actions

void goto_actions()
{
    register int i, j, k;

    state_count = NEW2(nstates, Yshort);

    k = default_goto(start_symbol + 1);
    if (!rflag)
	fprintf(output_file, "static ");
    fprintf(output_file, "int yydgoto[] = {%40d,", k);
    save_column(start_symbol + 1, k);

    j = 10;
    for (i = start_symbol + 2; i < nsyms; i++)
    {
	if (j >= 10)
	{
	    if (!rflag) ++outline;
	    putc('\n', output_file);
	    j = 1;
	}
	else
	    ++j;

	k = default_goto(i);
	fprintf(output_file, "%5d,", k);
	save_column(i, k);
    }

    if (!rflag) outline += 2;
    fprintf(output_file, "\n};\n");
    FREE(state_count);
}
开发者ID:sunfirefox,项目名称:btyacc,代码行数:33,代码来源:output.c

示例9: sort_actions

static void
sort_actions(void)
{
    Value_t i;
    int j;
    int k;
    int t;
    int w;

    order = NEW2(nvectors, Value_t);
    nentries = 0;

    for (i = 0; i < nvectors; i++)
    {
	if (tally[i] > 0)
	{
	    t = tally[i];
	    w = width[i];
	    j = nentries - 1;

	    while (j >= 0 && (width[order[j]] < w))
		j--;

	    while (j >= 0 && (width[order[j]] == w) && (tally[order[j]] < t))
		j--;

	    for (k = nentries - 1; k > j; k--)
		order[k + 1] = order[k];

	    order[j + 1] = i;
	    nentries++;
	}
    }
}
开发者ID:Der-Jan,项目名称:freebsd-crypto,代码行数:34,代码来源:output.c

示例10: set_EFF

static void set_EFF(void)
{
    register unsigned *row;
    register Yshort symbol;
    register Yshort *sp;
    register int rowsize;
    register int i;
    register int rule;

    rowsize = WORDSIZE(nvars);
    EFF = NEW2(nvars * rowsize, EFF[0]);

    row = EFF;

    for (i = start_symbol; i < nsyms; ++i)
    {
        sp = derives[i];
        for (rule = *sp; rule > 0; rule = *++sp)
        {
            symbol = ritem[rrhs[rule]];
            if (ISVAR(symbol))
            {
                symbol -= start_symbol;
                SETBIT(row, symbol);
            }
        }
        row += rowsize;
    }

    reflexive_transitive_closure(EFF, nvars);

    if (tflag > 1)
        print_EFF();
}
开发者ID:GerHobbelt,项目名称:BtYacc,代码行数:34,代码来源:closure.c

示例11: pack_table

void pack_table()
{
    register int i;
    register int place;
    register int state;

    base = NEW2(nvectors, Yshort);
    pos = NEW2(nentries, Yshort);

    maxtable = 1000;
    table = NEW2(maxtable, Yshort);
    check = NEW2(maxtable, Yshort);

    lowzero = 0;
    high = 0;

    for (i = 0; i < maxtable; i++)
	check[i] = -1;

    for (i = 0; i < nentries; i++)
    {
	state = matching_vector(i);

	if (state < 0)
	    place = pack_vector(i);
	else
	    place = base[state];

	pos[i] = place;
	base[order[i]] = place;
    }

    for (i = 0; i < nvectors; i++)
    {
	if (froms[i])
	    FREE(froms[i]);
	if (tos[i])
	    FREE(tos[i]);
    }

    FREE(froms);
    FREE(tos);
    FREE(tally);
    FREE(width);
    FREE(pos);
}
开发者ID:sunfirefox,项目名称:btyacc,代码行数:46,代码来源:output.c

示例12: pack_table

static void
pack_table(void)
{
    int i;
    Value_t place;
    int state;

    base = NEW2(nvectors, Value_t);
    pos = NEW2(nentries, Value_t);

    maxtable = 1000;
    table = NEW2(maxtable, Value_t);
    check = NEW2(maxtable, Value_t);

    lowzero = 0;
    high = 0;

    for (i = 0; i < maxtable; i++)
	check[i] = -1;

    for (i = 0; i < nentries; i++)
    {
	state = matching_vector(i);

	if (state < 0)
	    place = (Value_t) pack_vector(i);
	else
	    place = base[state];

	pos[i] = place;
	base[order[i]] = place;
    }

    for (i = 0; i < nvectors; i++)
    {
	if (froms[i])
	    FREE(froms[i]);
	if (tos[i])
	    FREE(tos[i]);
    }

    FREE(froms);
    FREE(tos);
    FREE(pos);
}
开发者ID:Der-Jan,项目名称:freebsd-crypto,代码行数:45,代码来源:output.c

示例13: set_accessing_symbol

static void
set_accessing_symbol(void)
{
    core *sp;

    accessing_symbol = NEW2(nstates, Value_t);
    for (sp = first_state; sp; sp = sp->next)
	accessing_symbol[sp->number] = sp->accessing_symbol;
}
开发者ID:0mp,项目名称:freebsd,代码行数:9,代码来源:lalr.c

示例14: defreds

static void
defreds(void)
{
    int i;

    defred = NEW2(nstates, Value_t);
    for (i = 0; i < nstates; i++)
	defred[i] = (Value_t) sole_reduction(i);
}
开发者ID:tizenorg,项目名称:external.byacc,代码行数:9,代码来源:mkpar.c

示例15: set_first_derives

void set_first_derives(void)
{
  register unsigned *rrow;
  register unsigned *vrow;
  register int j;
  register unsigned mask;
  register unsigned cword;
  register Yshort *rp;

  int rule;
  int i;
  int rulesetsize;
  int varsetsize;

  rulesetsize = WORDSIZE(nrules);
  varsetsize = WORDSIZE(nvars);
  first_derives = NEW2(nvars * rulesetsize, first_derives[0]);
  first_derives -= ntokens * rulesetsize;

  set_EFF();

  rrow = first_derives + ntokens * rulesetsize;

  for (i = start_symbol; i < nsyms; ++i)
    {
      vrow = EFF + ((i - ntokens) * varsetsize);
      cword = *vrow++;
      mask = 1;

      for (j = start_symbol; j < nsyms; ++j)
        {
          if (cword & mask)
            {
              rp = derives[j];
              while ((rule = *rp++) >= 0)
                {
                  SETBIT(rrow, rule);
                }
            }

          mask <<= 1;
          if (mask == 0)
            {
              cword = *vrow++;
              mask = 1;
            }
        }

      vrow += varsetsize;
      rrow += rulesetsize;
    }

    if (tflag > 1)
        print_first_derives();

  FREE(EFF);
}
开发者ID:GerHobbelt,项目名称:BtYacc,代码行数:57,代码来源:closure.c


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