Bu araçların birçoğu do (daha doğrusu, bunun doğrudan bire-bir görselleştirme) soyut sözdizimi ağacı işi doğrudan. Yani gördüğüm Blockly, ve bunun gibi diğer blok tabanlı dilleri ve editörü içerir ( Çizilmeye , Kalem Kod / Damlacık , aksi! , GP , Karo Grace , vb).
Bu sistemler, başka bir yerde açıklanmış olan nedenlerden dolayı (uzay ve etkileşim zorluğu) geleneksel köşe ve kenar grafik gösterimi göstermez, ancak doğrudan bir ağacı temsil ederler. Bir düğüm veya blok, doğrudan fiziksel olarak ebeveyne dahilse, diğerinin çocuğudur.
Bu sistemlerden birini yaptım ( Çinili Grace , kağıt , kağıt ). Sizi temin ederim ki, doğrudan AST ile çalışıyor. Ekranda gördüğünüz, iç içe geçmiş DOM öğeleri (yani bir ağaç!) Olarak, sözdizimi ağacının tam bir temsilidir.
Bu, bazı kodların AST'sidir. Kök "... yapmak" için bir yöntem çağrısı düğümüdür. Bu düğümün iki çocuğu, "1" düğümü ve "10" düğümü olan "_ .. _" ile başlayan bazı çocukları vardır. Ekranda ortaya çıkan şey, tam olarak derleyicinin arka ucunun sürecin ortasında yaydığı şeydir - temelde sistemin çalışması.
İsterseniz, kenarları ekrandan size dönük (ve önlerindeki blok tarafından tıkanmış) işaret eden kenarlarıyla standart bir ağaç düzeni olarak düşünebilirsiniz, ancak yuvalama, bir ağacı tepe noktası olarak göstermenin geçerli bir yöntemidir. diyagram.
Aynı zamanda "kaynaktan düğüme-grafiğe gidiş dönüş yapacak ve daha sonra gerektiğinde tekrar kaynağa dönecektir". Aslında, bunun altındaki "Kod Görünümü" nü tıkladığınızda bunun olduğunu görebilirsiniz. Metni değiştirirseniz, yeniden ayrıştırılır ve ortaya çıkan ağaç yeniden düzenlenebilmeniz için oluşturulur ve blokları değiştirirseniz, aynı şey kaynakta da olur.
Kurşun Kalem Kodu aslında bu noktada daha iyi bir arayüzle aynı şeyi yapıyor . Kullandığı bloklar CoffeeScript AST'nin grafiksel bir görüntüsüdür. Öyleyse, bazıları blok yerleştirme özelliğini görsel sunumda açıkça netleştirmeseler de, çoğu çoğunun arkasında gerçek bir metin dili bulunmadığı halde, diğer blok veya fayans tabanlı sistemler de öyle mi? sözdizimi ağacı "biraz yanıltıcı olabilir, ancak prensibi orada.
Kaçırdığınız Öyleyse, bu sistemler gerçekten olmasıdır olan soyut sözdizimi ağacı doğrudan çalışma. Gördüğünüz ve manipüle ettiğiniz şey, bir ağacın alan açısından verimli bir görüntülenmesi, çoğu durumda kelimenin tam anlamıyla bir derleyici veya çözümleyici tarafından üretilen AST.