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

public class ArgList {
	Vector vec;
	int index;
	ArgList() {
		vec = new Vector();
		index = -1;
	}
	public void add(File file) {
		Lex lex = new Lex(file);
		while(lex.getTokenType() != Lex.EOF) {
			if(lex.getToken().equals("gtk_container_add_child_arg_type") ||
				lex.getToken().equals("gtk_object_add_arg_type")) {
					getSetting(lex);
			} else {
				lex.gtkn();
			}
		}
	}
	private void getSetting(Lex lex) {
		if(lex.gtkn() != Lex.LEFTPAREN)
			return;
		if(lex.gtkn() != Lex.STRING)
			return;
		String newDef = lex.getToken();
		if(lex.gtkn() != Lex.COMMA)
			return;
		lex.gtkn();
		newDef += "  " + lex.getToken();
		if(lex.gtkn() != Lex.COMMA)
			return;
		lex.gtkn();
		newDef += "  " + lex.getToken();
		for(int i=0; i<vec.size(); i++) {
			String def = (String)vec.elementAt(i);
			int cond = newDef.compareTo(def);
			if(cond < 0) {
				vec.insertElementAt(newDef,i);
				return;
			}
			if(cond == 0) {
				return;
			}
		}
		vec.addElement(newDef);
	}
	public void dump(PrintWriter out) {
		for(int i=0; i<vec.size(); i++) {
			String def = (String)vec.elementAt(i);
			out.println(def);
		}
	}
}
