AppleScript hatası nasıl hata ayıklanır: “Beklenen“ *) ”ancak komut dosyasının sonunu buldu.”


4

AppleScript kodumda aşağıdaki hatayı düzeltmeye çalışırken deliriyorum:

görüntü tanımını buraya girin

Bu hatanın anlamı, kodun herhangi bir yerinde bir yerde bir yorum açtığım ve a (*ile kapatmayı unuttuğum anlamına geliyor *).

Kod 4000'den fazla satır ve yüzlerce yorum içeriyor. Bu eksik kapanışı bulmaya çalışırken saatlerce koduma baktım ancak bulamıyorum.

Hatadan sorumlu olan kodun tam satırını bildirebilecek bir yöntem veya uygulama var mı?


1
ayrıca (* *) bloğunda bir yorum olarak bir satır varsa ve satır sonu ile ayrılmamışsa bu hatayı verir.
Tetsujin

Tetsujin’in söylediklerini netleştirmek için , kapanış *) blok yorumuyla aynı satırda bir satır sonu yorumuna sahip olamazsınız ve hatanızın nedeni bu ise AppleScript kodunu kopyalayıp yapıştırarak bulabilirsiniz . Düzenli bir ifade vermeyi destekleyen ve ardından bu dizeyi RegEx olarak arayan bir metin editörü . Bunun gibi işlemler için TextWrangler'ı kullanıyorum . grep.*--.*\*\)
user3439894

Yorumları nasıl kullanabileceğinize ilişkin bir örnek için AppleScript Dil Kılavuzu - Yorumlar'a bakın .
user3439894

@ user3439894 TextWrangler'ı indirdim ve AppleScript kodumu TextWrangler'a kopyaladım. Bu yüzden, cmd + F tuşlarına basıp, ardından "Bul" alanına verdiğiniz dizeyi yapıştırıp "Grep" onay kutusunu ve sonra da "Bul" düğmesini tıklamam gerekiyor. "RegEx olarak" ile ne demek istediğinizi anlamadım . Kaçırdığım bir şey var mı? Bir kapanış *) blok yorumuyla aynı satırda bir satır sonu yorumu ekledim, ancak "Bul" işlevi hala herhangi bir örnek bulamıyor çünkü soruyorum.
rubik'in küresi,

Varsa Düzenli İfade anlamına gelen tanımlanmış RegEx'i bulmakta hiçbir sorunum yok . OS X / mac OS ve TextWrangler'ın hangi sürümünü kullanıyorsunuz?
user3439894

Yanıtlar:


1

Atom metin editörü için AppleScript için bir sözdizimi vurgulama paketi var . Komut dosyası kendisi derlemese bile, çok satırlı yorumları doğru şekilde tanımlayacağından, Komut Dosyası Düzenleyicisi ile sağlanandan daha iyi çalışır:

görüntü tanımını buraya girin

Oradan, eksik olanı tanımlamak kolay olmalı *).


Merhaba, Atom'u indirdim ve dil-el yazısı paketini yükledim, ancak paketi gerçekten nasıl çalıştıracağımı anlamıyorum?
rubik'in küre

Benim için varolan bir AppleScript belgesini açtığımda otomatik olarak uygulandı.
Glorfindel

Mevcut bir AppleScript belgesini açtım ve şimdi benim için çalışıyor. Fakat bu yöntem kayıp olanı bulma işlemini nasıl *)kolaylaştırır? Bana hangi satırın hata içerdiğini söylemesi doğru değil mi?
rubik'in küre

Hayır, yine de belgeyi kendiniz geçmelisiniz, ancak sözdizimi vurgulaması, hatayı tespit etmenize gerçekten yardımcı olacaktır.
Glorfindel

1

Güncelleme:

Bir örneğini bulamadık nedeni (*karşılık gelen olmadan *)her örneğini çünkü (* aslında yapar gelmiş karşılık gelen *). Hata olduğunu iddia eden yanıltıcı hata mesajına rağmen bu hatanın nedeni değildi.

Aşağıdaki yorum hatadan sorumluydu:

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

Görünüşe göre bir AppleScript yorumunda tek sayıda çift tırnak işareti koyamazsınız. Başka bir deyişle, bir teklif açarsanız, teklifi kapatmanız gerekir.

Bunun neden olduğu hakkında hiçbir fikrim yok. Bu Pete'in iyiliği için bir yorum . Neden AppleScript bakım Ben bir çift tırnak işareti kapatmayı unutmak eğer comment ?

Ayrıca, bu gereksinim AppleScript Dil Kılavuzu - Yorumlar'da belirtilmemiştir .

Merak ediyorsanız, daha önce test ettim ve bir yorumu kapatmadan tek bir tırnak işareti koymanıza izin verilir. Örneğin,

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

hata üretmez.


Neyse, asıl soruma cevap vermek için:

Hatadan sorumlu olan kodun tam satırını bildirebilecek bir yöntem veya uygulama var mı?

Sezgisel olarak bir yöntem düşünmeyi başardım. Bu çılgınca bir temel ve birçok insan için muhtemelen açıktır, ancak saatlerce satırları okuduğumda, kayıp olanı ararken asla aklıma gelmedi *).

Aşağıdaki yöntemi kullanarak 5 dakikadan kısa bir sürede hatadan sorumlu kodun tam kodunu buldum :

  1. Yeni, boş bir AppleScript dosyası oluşturun.

  2. Kodunuzun yarısını yeni dosyaya kopyalayın.

    1. Bu kod bir hata veriyorsa, bu kodun yarısını silin. Kodu derle.

      1. Bu kod hala bir hata veriyorsa, bu kodun yarısını silin. Kodu derle.

      2. Bu kod artık bir hata üretmezse, Undo (Geri Al) butonuna basın ve kodun diğer yarısını silin. Kodu derle.

    2. Bu kod bir hata üretmezse, Geri Al düğmesine basın. Bu sefer, orijinal kodun diğer yarısını kopyalayın (yani, ilk kez kopyalamadığınız yarıyı kopyalayın).

Kaptın bu işi. Tek bir kod satırına kadar hatayı yalıtıncaya kadar kodu temelde (deneme yanılma yoluyla) yarıya indirirsiniz. Bu yöntem için teknik bir terim olmalı, ancak terimi bilmiyorum.


1
Sonunda tam olarak yaptığım şeyi yaptın, kodunu yükledin. Genelde böl ve yönet yaklaşımı olarak bilinen , “ Yarım Bölünmüş Sorun Giderme Yönteminden bahsetmeyi düşündüm , ancak hata mesajının nedenini daha sonra ne yapacağımı açıklayarak buldum. :)
user3439894

Ah, güzel. Terim paylaştığınız için teşekkür ederiz. Bir yorumda bir çift tırnak işaretini kapatmayı unutması durumunda AppleScript dilinin neden çalıştırılmadığına dair herhangi bir teori / spekülasyon sunabilir misiniz? Çünkü bir yorumda kapanan bir çift tırnak işareti istemek bana saçma geliyor.
rubik küresi

1
Bu konuda Apple kadar olmalısın. Komut Dosyası Düzenleyicisi, diğer Diller tarafından kullanılan IDE'ye kıyasla biraz topaldır.
user3439894
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.