Actualización:
La razón por la que no pude encontrar una instancia de (*
sin un *)
correspondiente es porque cada instancia de (*
en realidad tiene un *)
correspondiente. Esta no fue la causa del error, a pesar del mensaje de error engañoso que decía que lo era.
El siguiente comentario fue responsable del error:
(*
"This is the text that I want to display
*)
Aparentemente, no puede poner un número impar de comillas dobles en un comentario de AppleScript. Es decir, si abre una oferta, debe cerrarla.
No tengo idea de por qué esto es. Es un comentario , por el amor de Pete. ¿Por qué me importa AppleScript si olvido cerrar una comilla doble en un comentario ?
Además, este requisito no se menciona en Guía del lenguaje AppleScript - Comentarios .
Si tienes curiosidad, acabo de probarlo y puedes poner una comilla en un comentario sin cerrarlo. Por ejemplo,
(* 'This is the text that I want to display *)
no produce ningún error.
De todos modos, para responder a mi pregunta original:
¿Hay algún método o aplicación que pueda informarme de la línea exacta del código responsable del error?
Me las arreglé para pensar en un método heurísticamente. Es una locura básica, y para muchas personas es probable que sea obvio, pero nunca se me ocurrió porque estaba leyendo línea tras línea durante horas, buscando el *)
que falta.
Usando el siguiente método, encontré la línea exacta de código responsable del error en menos de 5 minutos :
-
Crea un nuevo archivo AppleScript en blanco.
-
Copie la mitad de su código en el nuevo archivo.
-
Si este código produce un error, borre la mitad de este código. Compila el código.
-
Si este código aún produce un error, borre la mitad de este código. Compila el código.
-
Si este código ya no produce un error, presione el botón Deshacer y elimine la otra mitad del código. Compila el código.
-
Si este código no produce un error, presione el botón Deshacer. Esta vez, copie la otra mitad del código original (es decir, copie la mitad que no copió la primera vez).
Tienes la idea. Básicamente, está reduciendo a la mitad el código (por prueba y error) hasta que pueda aislar el error en una sola línea de código. Debe haber un término técnico para este método, pero no conozco el término.