public void StaticSemanticsSelf(BlooPInterpreter interpreter, java.util.Stack context)
		throws SemanticException
	{
		this.scope = (ProcedureDefinition)(context.elementAt(0));
		
		if(this.cellNum != null)
		{
			this.cellNum.StaticSemantics(interpreter, context);
		}
		this.value.StaticSemantics(interpreter, context);
		
		if(this.cellNum == null)
		{
			if(this.scope.IsBoolean() && this.value.IsNumber())
			{
				throw new SemanticException("numeric return value for a Boolean procedure");
			}
			if(this.scope.IsNumber() && this.value.IsBoolean())
			{
				throw new SemanticException("Boolean return value for a numeric procedure");
			}
		}
		else
		{			
			if(!this.value.IsNumber())
			{
				throw new SemanticException("assigning a non-numeric value to CELL(" + 
					this.cellNum.toString() + ")");
			}
		}
	}