public Entry Find(String name) {
Utils.StoreEntry store_entry;
// search the enum entries
if ((store_entry = this.enums.FindLast(entry => entry.name == name)) != null) {
return new Entry(EntryKind.ENUM, store_entry.type, store_entry.offset);
}
// search the typedef entries
if ((store_entry = this.typedefs.FindLast(entry => entry.name == name)) != null) {
return new Entry(EntryKind.TYPEDEF, store_entry.type, store_entry.offset);
}
// search the stack entries
if ((store_entry = this.locals.FindLast(entry => entry.name == name)) != null) {
return new Entry(EntryKind.STACK, store_entry.type, store_entry.offset);
}
// search the function arguments
if ((store_entry = this.func.Args.FindLast(entry => entry.name == name)) != null) {
return new Entry(EntryKind.FRAME, store_entry.type, store_entry.offset);
}
// search the global entries
if ((store_entry = this.globals.FindLast(entry => entry.name == name)) != null) {
return new Entry(EntryKind.GLOBAL, store_entry.type, store_entry.offset);
}
return null;
}