git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1676 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);
 | |
|     }
 | |
|   }
 | |
| }
 |