mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	gram.y to gram.yc so that we don't try to turn it into a .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3874 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			50 lines
		
	
	
		
			831 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			831 B
		
	
	
	
		
			C
		
	
	
	
	
	
char rcsid_nonterminal[] = "$Id$";
 | 
						|
 | 
						|
#include "b.h"
 | 
						|
#include <stdio.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
NonTerminal	start;
 | 
						|
NonTerminalNum	max_nonterminal = 1;
 | 
						|
NonTerminalNum	last_user_nonterminal;
 | 
						|
List		nonterminals;
 | 
						|
 | 
						|
NonTerminal
 | 
						|
newNonTerminal(name) char *name;
 | 
						|
{
 | 
						|
	NonTerminal nt;
 | 
						|
 | 
						|
	nt = (NonTerminal) zalloc(sizeof(struct nonterminal));
 | 
						|
	assert(nt);
 | 
						|
	if (max_nonterminal == 1) {
 | 
						|
		start = nt;
 | 
						|
	}
 | 
						|
	nt->name = name;
 | 
						|
	nt->num = max_nonterminal++;
 | 
						|
	nonterminals = newList(nt, nonterminals);
 | 
						|
 | 
						|
	return nt;
 | 
						|
}
 | 
						|
 | 
						|
int
 | 
						|
nonTerminalName(buf, i) char *buf; int i;
 | 
						|
{
 | 
						|
	List l;
 | 
						|
 | 
						|
	for (l = nonterminals; l; l = l->next) {
 | 
						|
		NonTerminal nt = (NonTerminal) l->x;
 | 
						|
		if (nt->num == i) {
 | 
						|
			strcpy(buf, nt->name);
 | 
						|
			return 1;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	strcpy(buf, "(Unknown NonTerminal)");
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
dumpNonTerminal(n) NonTerminal n;
 | 
						|
{
 | 
						|
	printf("%s(%d)", n->name, n->num);
 | 
						|
}
 |