devi considerare che il parser fa un controllo sequenziale, quando apri una graffa il parser va avanti fino a che non trova la graffa di chiusura del blocco che hai aperto.
In questo caso quindi va avanti fino alla fine, e non trovando la graffa di chiusura ti da errore sull'ultima riga.
Il parser non conosce la logica di come vuoi scrivere il codice, ma semplicemente da per scontato che tutto quello che hai scritto sta nell'if che ha trovato aperto.
ciao