git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <ctype.h>
 | 
						|
 | 
						|
#include "set.h"
 | 
						|
#include "syn.h"
 | 
						|
#include "hash.h"
 | 
						|
#include "generic.h"
 | 
						|
 | 
						|
void 
 | 
						|
#ifdef __USE_PROTOS
 | 
						|
dumpcycles(void)
 | 
						|
#else
 | 
						|
dumpcycles()
 | 
						|
#endif
 | 
						|
{
 | 
						|
  Cycle         *c;
 | 
						|
  CacheEntry    *f;
 | 
						|
  ListNode      *p;
 | 
						|
  int           i=0;
 | 
						|
  int           k;
 | 
						|
  int           degree;
 | 
						|
 | 
						|
  for (k=1; k <= CLL_k; k++) {
 | 
						|
    if (Cycles[k] == NULL) continue;
 | 
						|
 | 
						|
    for (p = Cycles[k]->next; p!=NULL; p=p->next) {
 | 
						|
  	  c = (Cycle *) p->elem;
 | 
						|
      degree=set_deg(c->cyclicDep);
 | 
						|
	  fprintf(stderr,"Cycle %d: (degree %d) %s -->\n", i++, degree, RulePtr[c->croot]->rname);
 | 
						|
      fprintf(stderr,"    *self*\n");
 | 
						|
      MR_dumpRuleSet(c->cyclicDep);
 | 
						|
      fprintf(stderr,"\n");
 | 
						|
	  f = (CacheEntry *)
 | 
						|
			hash_get(Fcache,Fkey(RulePtr[c->croot]->rname,'o',k));
 | 
						|
      if (f == NULL) {
 | 
						|
        fprintf(stderr,"    *** FOLLOW(%s) must be in cache but isn't ***\n",
 | 
						|
                                         RulePtr[c->croot]->rname);
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
void 
 | 
						|
#ifdef __USE_PROTOS
 | 
						|
dumpfostack(int k) 
 | 
						|
#else
 | 
						|
dumpfostack(k) 
 | 
						|
int k;
 | 
						|
#endif
 | 
						|
{
 | 
						|
  int   i=0;
 | 
						|
  int   *pi;
 | 
						|
 | 
						|
  fprintf(stderr,"\n");
 | 
						|
  if (FoStack[k] == NULL) {
 | 
						|
    fprintf(stderr,"FoStack[%d] is null\n",k);
 | 
						|
  };
 | 
						|
  if (FoTOS[k] == NULL) {
 | 
						|
    fprintf(stderr,"FoTOS[%d] is null\n",k);
 | 
						|
  }
 | 
						|
  if (FoTOS[k] != NULL && FoStack[k] != NULL) {
 | 
						|
    for (pi=FoStack[k]; pi <= FoTOS[k]; pi++) {
 | 
						|
      i++;
 | 
						|
      fprintf(stderr,"#%d  rule %d  %s\n",i,*pi,RulePtr[*pi]->rname);
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |