import java.io.*;
import java.util.*;

public class EnumList {
	Vector vec = new Vector();
	public void add(File file) throws SyntaxException {
		String className;
		String parentName;
		Lex lex = new Lex(file);
		lex.gtkn();
		loop: while(lex.getTokenType() != Lex.EOF) {
			if(!lex.getToken().equals("typedef")) {
				lex.gtkn();
				continue loop;
			}
			lex.gtkn();
			if(!lex.getToken().equals("enum")) {
				lex.gtkn();
				continue loop;
			}
			lex.gtkn();
			if(!lex.getToken().equals("{")) {
				lex.gtkn();
				continue loop;
			}
			String nameList = "";
			inloop1: while(lex.gtkn() == Lex.SYMBOL) {
				if(nameList.length() > 1)
					nameList += ", " + lex.getToken();
				else
					nameList = lex.getToken();
				inloop2: while(lex.gtkn() != Lex.EOF) {
					if(lex.getTokenType() == Lex.RIGHTBRACE)
						break inloop1;
					if(lex.getTokenType() == Lex.COMMA)
						break inloop2;
				}
			}
			if(lex.getTokenType() == Lex.RIGHTBRACE) {
				lex.gtkn();
				String newLine = lex.getToken() + "%" + nameList;
				insert(newLine);
			}
		}
	}
	private void insert(String newLine) {
		for(int i=0; i<vec.size(); i++) {
			String oldLine = (String)vec.elementAt(i);
			int cond = oldLine.compareTo(newLine);
			if(cond > 0) {
				vec.insertElementAt(newLine,i);
				return;
			}
		}
		vec.addElement(newLine);
	}
	public void dump(PrintWriter out) {
		for(int i=0; i<vec.size(); i++) {
			String line = (String)vec.elementAt(i);
			out.println(line);
		}
	}
}
