Cómo depurar el error de AppleScript: "esperado" *) "pero se encontró el final del script".

Me estoy volviendo loco tratando de corregir el siguiente error en mi código AppleScript:

enter image description here

Lo que significa este error es que abrí un comentario en algún lugar del código con un (* pero olvidé cerrarlo con un *) .

El código contiene más de 4000 líneas y cientos de comentarios. Revisé el código durante horas tratando de encontrar el cierre que falta pero no puedo encontrarlo.

¿Hay algún método o aplicación que pueda informarme de la línea exacta del código que es responsable del error?

2 Solutions collect form web for “Cómo depurar el error de AppleScript: "esperado" *) "pero se encontró el final del script".”

Hay un package de resaltado de syntax para AppleScript para el editor de text Atom . Funciona mejor que el que se proporciona con el Editor de scripts, ya que identificará correctamente los comentarios de líneas múltiples, incluso si el script en sí no comstack:

enter image description here

A partir de ahí, debería ser fácil identificar la falta *) .

Actualizar:

La razón por la que no pude encontrar una instancia de a (* sin un *) correspondiente *) es porque cada instancia de (* de hecho tiene un *) correspondiente *) . Esta no fue la causa del error, a pesar del post de error engañoso que afirmaba que era.

El siguiente comentario fue responsable del error:

  (* "This is the text that I want to display *) 

No se puede poner un número impar de comillas dobles en un comentario de AppleScript, al parecer. Es decir, si abre una cita, debe cerrar la cita.

No tengo idea de por qué es esto. Es un comentario , por el amor de Pete. ¿Por qué AppleScript importa si me olvido de cerrar una comilla doble en un comentario ?

Además, este requisito no se menciona en la Guía del lenguaje AppleScript – Comentarios .

Si tiene curiosidad, simplemente lo probé y puede poner comillas simples 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 mi pregunta original:

¿Hay algún método o aplicación que pueda informarme de la línea exacta del código que es responsable del error?

Logré pensar en un método heurísticamente. Es una locura básica, y para muchas personas es probablemente obvio, pero nunca se me ocurrió mientras estaba leyendo línea tras línea durante horas, buscando el desaparecido *) .

Utilizando el siguiente método, encontré la línea exacta de código responsable del error en less de 5 minutos :

  1. Crea un nuevo file AppleScript en blanco.

  2. Copia la mitad de tu código al nuevo file.

    1. Si este código produce un error, entonces elimine la mitad de este código. Comstack el código.

      1. Si este código todavía produce un error, entonces elimine la mitad de este código. Comstack el código.

      2. Si este código ya no produce un error, presione el button Deshacer y elimine la otra mitad del código. Comstack el código.

    2. Si este código no produce un error, presione el button Deshacer. Esta vez, copie la otra mitad del código original (es decir, copie la mitad que no copió la primera vez).

Entiendes la idea. Básicamente, estás networkinguciendo a la mitad el código (por testing y error) hasta que puedas 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.

  • Error de Time Machine: "se produjo un error al copyr files"
  • Error irreparable en la estructura del disco en Onyx
  • Diagnósticos inalámbricos: ¿qué hace "_handleLinkEvent: Obtuve un error al intentar queyer WiFi para el poder. Restablecer las variables de estado "¿significa?
  • Interesante error de Mac OS X
  • iPhone no muestra contenido de notificación en Banner
  • ¿Por qué recibo este código de error cuando trato de cambiar el nombre de una unidad flash?
  • Macbook Pro no abrirá aplicaciones ni downloadá contenido debido a un código de error: -50.
  • Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).