MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / matching_vector

Function matching_vector

extern/btyacc/output.c:489–524  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

487/* extremely unlikely to occur, and conflicts are (hopefully) rare. */
488
489int matching_vector(int vector)
490{
491 register int i;
492 register int j;
493 register int k;
494 register int t;
495 register int w;
496 register int match;
497 register int prev;
498
499 i = order[vector];
500 if (i >= 2*nstates)
501 return (-1);
502
503 t = tally[i];
504 w = width[i];
505
506 for (prev = vector - 1; prev >= 0; prev--)
507 {
508 j = order[prev];
509 if (width[j] != w || tally[j] != t)
510 return (-1);
511
512 match = 1;
513 for (k = 0; match && k < t; k++)
514 {
515 if (tos[j][k] != tos[i][k] || froms[j][k] != froms[i][k])
516 match = 0;
517 }
518
519 if (match)
520 return (j);
521 }
522
523 return (-1);
524}
525
526
527

Callers 1

pack_tableFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected