本文整理汇总了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);
}
示例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 *);
}
示例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();
}
示例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);
}
示例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
}
示例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++;
}
}
}
示例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);
}
示例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);
}
示例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++;
}
}
}
示例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();
}
示例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);
}
示例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);
}
示例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;
}
示例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);
}
示例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);
}