Aggiornamento:
Il motivo per cui non sono riuscito a trovare un'istanza di (*
senza un *)
corrispondente è perché ogni istanza di (*
ha infatti un *)
corrispondente. Questa non era la causa dell'errore, nonostante il messaggio di errore fuorviante che affermava che lo era.
Il seguente commento era responsabile dell'errore:
(*
"This is the text that I want to display
*)
Non è possibile inserire un numero dispari di virgolette doppie in un commento AppleScript, a quanto pare. Vale a dire, se apri una citazione, devi chiudere la citazione.
Non ho idea del perché questo sia. È un commento , per l'amor di Pete. Perché AppleScript si preoccupa se mi dimentico di chiudere una virgoletta doppia in un commento ?
Inoltre, questo requisito non è menzionato nel Guida alla lingua AppleScript - Commenti .
Se sei curioso, l'ho appena testato e ti è permesso mettere una virgoletta singola in un commento senza chiuderlo. Ad esempio,
(* 'This is the text that I want to display *)
non produce errori.
In ogni caso, per rispondere alla mia domanda iniziale:
Is there some method or application that can inform me of the exact line of the code that is responsible for the error?
Sono riuscito a pensare ad un metodo euristicamente. È pazzesco di base, e per molte persone è probabilmente ovvio, ma non mi è mai venuto in mente perché stavo leggendo una riga dopo l'altra per ore, cercando il *)
mancante.
Utilizzando il seguente metodo, ho trovato la riga esatta del codice responsabile dell'errore in meno di 5 minuti :
-
Crea un nuovo file AppleScript vuoto.
-
Copia metà del tuo codice nel nuovo file.
-
Se questo codice produce un errore, allora cancella metà del codice. Compila il codice.
-
Se questo codice produce ancora un errore, allora cancella metà del codice. Compila il codice.
-
Se questo codice non produce più errori, quindi premi il pulsante Annulla e cancella l'altra metà del codice. Compila il codice.
-
Se questo codice non produce un errore, quindi premi il pulsante Annulla. Questa volta, copia l'altra metà del codice originale (cioè copia la metà che non hai copiato la prima volta).
Hai un'idea. Fondamentalmente stai dimezzando il codice (per tentativi ed errori) finché non puoi isolare l'errore su una singola riga di codice. Ci deve essere un termine tecnico per questo metodo, ma non conosco il termine.