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

Function set_nullable

extern/btyacc/lr0.c:531–577  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

529
530
531void set_nullable()
532{
533 register int i, j;
534 register int empty;
535 int done;
536
537 nullable = MALLOC(nsyms);
538 if (nullable == 0) no_space();
539
540 for (i = 0; i < nsyms; ++i)
541 nullable[i] = 0;
542
543 done = 0;
544 while (!done)
545 {
546 done = 1;
547 for (i = 1; i < nitems; i++)
548 {
549 empty = 1;
550 while ((j = ritem[i]) >= 0)
551 {
552 if (!nullable[j])
553 empty = 0;
554 ++i;
555 }
556 if (empty)
557 {
558 j = rlhs[-j];
559 if (!nullable[j])
560 {
561 nullable[j] = 1;
562 done = 0;
563 }
564 }
565 }
566 }
567
568#ifdef DEBUG
569 for (i = 0; i < nsyms; i++)
570 {
571 if (nullable[i])
572 printf("%s is nullable\n", symbol_name[i]);
573 else
574 printf("%s is not nullable\n", symbol_name[i]);
575 }
576#endif
577}
578
579
580void free_nullable()

Callers 1

lr0Function · 0.85

Calls 1

no_spaceFunction · 0.85

Tested by

no test coverage detected