public LocalObject AddLocalObject(string name, ObjectLevelID level, int offset) { LocalObject localObject = FindLocalObject(name); if (localObject != null && localObject.Level == level) { throw new SharpNektonException(new SharpNektonError(SharpNektonErrorID.E_LOCALSYMREDEF)); } if (level == ObjectLevelID.FORMAL_PAREMETER) { formalParameters.Add(name, new LocalObject(name, level, offset)); localObject = (LocalObject)formalParameters[name]; } else if (level == ObjectLevelID.LOCAL_VARIABLE) { localVariables.Add(name, new LocalObject(name, level, offset)); localObject = (LocalObject)localVariables[name]; } else { throw new SharpNektonException(new SharpNektonError(SharpNektonErrorID.E_BADLOCALSYMLEVEL)); } return(localObject); }
public LocalObject(string name, ObjectLevelID level, int offset) { Name = name; Level = level; Offset = offset; }