package net.loveruby.cflat.ast; import net.loveruby.cflat.entity.*; import java.util.*; public class Declarations { Set defvars = new LinkedHashSet(); Set vardecls = new LinkedHashSet(); Set defuns = new LinkedHashSet(); Set funcdecls = new LinkedHashSet(); Set constants = new LinkedHashSet(); Set defstructs = new LinkedHashSet(); Set defunions = new LinkedHashSet(); Set typedefs = new LinkedHashSet(); public void add(Declarations decls) { defvars.addAll(decls.defvars); vardecls.addAll(decls.vardecls); funcdecls.addAll(decls.funcdecls); constants.addAll(decls.constants); defstructs.addAll(decls.defstructs); defunions.addAll(decls.defunions); typedefs.addAll(decls.typedefs); } public void addDefvar(DefinedVariable var) { defvars.add(var); } public void addDefvars(List vars) { defvars.addAll(vars); } public List defvars() { return new ArrayList(defvars); } public void addVardecl(UndefinedVariable var) { vardecls.add(var); } public List vardecls() { return new ArrayList(vardecls); } public void addConstant(Constant c) { constants.add(c); } public List constants() { return new ArrayList(constants); } public void addDefun(DefinedFunction func) { defuns.add(func); } public List defuns() { return new ArrayList(defuns); } public void addFuncdecl(UndefinedFunction func) { funcdecls.add(func); } public List funcdecls() { return new ArrayList(funcdecls); } public void addDefstruct(StructNode n) { defstructs.add(n); } public List defstructs() { return new ArrayList(defstructs); } public void addDefunion(UnionNode n) { defunions.add(n); } public List defunions() { return new ArrayList(defunions); } public void addTypedef(TypedefNode n) { typedefs.add(n); } public List typedefs() { return new ArrayList(typedefs); } }