Unfixable Assets/Scripts/PlayerAttack.cs(30,15): error CS1525: Unexpected symbol `private'

Assets/Scripts/PlayerAttack.cs(30,15): error CS1525: Unexpected symbol `private’
Here is my code, which is where my problem is, and it seems impossible to fix, because everything I have tried, from extra curly braces to different tabs.

    using UnityEngine;
    using System.Collections;
    
    public class PlayerAttack : MonoBehaviour {
    	public GameObject target;
    	public float attackTimer;
    	public float coolDown;
    	
    	// Use this for initialization
    	void Start () {
    		attackTimer = 0;
    		coolDown = 2.0f;	
    	}
    	
    	// Update is called once per frame
    	void Update () {
    		if(attackTimer > 0)
    			attackTimer -= Time.deltaTime;
    		
    		if(attackTimer < 0)
    			attackTimer = 0;
    		
    		if(Input.GetKeyUp(KeyCode.F)) {
    			if(attackTimer = 0) {
    			Attack();
    			attackTimer = coolDown;
    		}
    	}
    	
    	private void Attack(){
    		
    		float distance = Vector3.Distance(target.transform.position, transform.position);
    		
    		Vector3 dir = (target.transform.position - transform.position).normalized;
    		
    		float direction = Vector3.Dot(dir, transform.forward);
    		
    	Debug.Log(direction);
    		
    	if(distance < 2.5f) {
    		if(direction > 0) {
    			EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
    			eh.AddjustCurrentHealth(-10);
    				}
    			}
    		}
    	}

The sample code you’ve posted has unbalanced braces in the Update() function. Looks like you missed a closing brace on one of those if blocks.

If you’re using MonoDevelop, placing the text cursor immediately next to a brace or paren will highlight its opening/closing partner – this is very handy for spotting problems like this one.