PParenWick
Yapay zekâ ile kod çalışma alanı

Sınırlı S-ifadesi ayrıştırma

En fazla 4096 karakterlik tek bir parantezli S ifadesini listelere ve ASCII atom dizelerine ayrıştırın.

● ● ●ParenWick●
İş akışları · Sınırlı S-ifadesi ayrıştırma ×
import re

def read_sexpression(text):
    if type(text) is not str or len(text) > 4096:
        raise ValueError("sexpr.input")
    stack, result, count = [], None, 0
    for match in re.finditer(r"\(|\)|[^\s()]+", text):
        token = match[0]
        if token == "(":
            if len(stack) == 16 or (not stack and result is not None):
                raise ValueError("sexpr.depth")
            item = []
            if stack:
                stack[-1].append(item)
            stack.append(item)
            count += 1
        elif token == ")":
            if not stack:
                raise ValueError("sexpr.close")
            item = stack.pop()
            if not stack:
                result = item
        else:
            if not stack or re.fullmatch(r"[A-Za-z_][A-Za-z0-9_-]*|[+-]?[0-9]+", token) is None:
                raise ValueError("sexpr.atom")
            stack[-1].append(token)
            count += 1
        if count > 1024:
            raise ValueError("sexpr.nodes")
    if stack or result is None:
        raise ValueError("sexpr.unclosed")
    return result
✳Sınırlı S-ifadesi ayrıştırma
✓ DeğişikliklerUygulamadan önce inceleyin ↗
Çalışma alanı çizimi
  1. Modeller

    Temel URL ve gerekiyorsa API anahtarıyla OpenAI uyumlu veya Anthropic endpoint yapılandırın. Bağlantıyı test edin. Yerel model sunucusu çalışıyor olmalıdır; uzak araçlar ayrıca veri aktarabilir.

  2. Proje

    Boş listeleri, 16 derinliği ve 1024 düğümü sınayın; hiçbir şeyi yürütmeden ek biçimleri, kapanmamış listeleri ve desteklenmeyen alıntı sözdizimini reddedin.

  3. Uygulamadan önce inceleyin

    Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.

İş akışları

Sınırlı S-ifadesi ayrıştırma

İş akışları ↗
İş akışları
import re

def read_sexpression(text):
    if type(text) is not str or len(text) > 4096:
        raise ValueError("sexpr.input")
    stack, result, count = [], None, 0
    for match in re.finditer(r"\(|\)|[^\s()]+", text):
        token = match[0]
        if token == "(":
            if len(stack) == 16 or (not stack and result is not None):
                raise ValueError("sexpr.depth")
            item = []
            if stack:
                stack[-1].append(item)
            stack.append(item)
            count += 1
        elif token == ")":
            if not stack:
                raise ValueError("sexpr.close")
            item = stack.pop()
            if not stack:
                result = item
        else:
            if not stack or re.fullmatch(r"[A-Za-z_][A-Za-z0-9_-]*|[+-]?[0-9]+", token) is None:
                raise ValueError("sexpr.atom")
            stack[-1].append(token)
            count += 1
        if count > 1024:
            raise ValueError("sexpr.nodes")
    if stack or result is None:
        raise ValueError("sexpr.unclosed")
    return result
Yapay zekâ ile kod çalışma alanı

Ayrıştırıcısı değişirken küçük bir dili küçük tutun

ParenWick, kabul ettiği girdisi bilinçli olarak sınırlandırılan ayrıştırıcılar geliştirmek için bir Windows yapay zekâ kodlama çalışma alanıdır. Projeyi açın ve uygulamanın tanıması gereken dili, nerede durması gerektiği dahil açıklayın. Bağlı asistandan yama önermeden önce mevcut ayrıştırıcıyı ve tüketicisini incelemesini isteyin; uygulama kolaylığı dili sessizce genişletmesin.

Sınırlı bir S-ifadesi okuyucusu somut örnek sunar. Tek bir parantezli biçimi, izinli atom sözdizimini ve iç içe listelerin gösterimini tartışın. İsteğe derinlik ve düğüm sınırlarını, ilk biçimden sonra ek biçimler geldiğinde ne olacağını ekleyin. Ayrıştırıcı girdinin bir gösterimini döndürür; bu gösterimi yorumlamak uygulamanızın ayrı bir kısmıdır.

Öneriyi kabul edilen ve reddedilen örneklerle birlikte inceleyin; proje kontrollerini tam sınırlarda ve ötesinde çalıştırın. Çağıranların hatalı girdiyi geçerli boş listeden ayırabilmesi için hata işlemeyi başarılı çıktı kadar dikkatle inceleyin. ParenWick, gerektiğinde kimlik bilgileriyle desteklenen OpenAI uyumlu veya Anthropic bağlantılarını kabul eder. Sunulduğunda kısıtlamasız model seçin, sunucunun bağlam ve araç desteğini kontrol edin. Ortaya çıkan yama tek bir örnek ifadede yalnızca makul görünmek yerine dilbilginize göre açıklanabilmelidir.

Ayrıştırıcı değişiklikleri ve sınırları

Asistana geçerli örnekler dışında ne vermeliyim?

Reddedilen örnekleri, izinli atom sözdizimini ve açık boyut, derinlik, düğüm sınırlarını sağlayın. Hataların çağırana nasıl ulaştığını belirtin. Böylece önerilen yamanın amaçlanan dil sınırını koruyup korumadığı incelenebilir.

İfade okumak içeriğini çalıştırır mı?

Örnek görev girdiyi listelere ve atom dizelerine ayrıştırır. Bu gösterimi değerlendirmez. Çalıştırma veya yorumlamayı ayrı tanımlanan davranış olarak tutun; ayrıştırılmış girdiyi bir eyleme bağlamadan önce sonraki kodu inceleyin.

İkinci üst düzey biçim nasıl işlenmeli?

Mevcut sözleşme tek parantezli biçimi kabul edip fazlasını reddeder. İki biçimli örnek ekleyin ve tüm girdinin değerlendirildiğini kontrol edin; ayrıştırıcı değişikliği sondaki materyali yok sayıp geçerli bir öneki sessizce kabul etmesin.

Neden tam iç içe geçme sınırında test edilmeli?

Kabul edilen en büyük yapıyı ilk reddedilenden ayırır ve bir eksik veya fazla sınır hatalarını ortaya çıkarabilir. Düğüm ve girdi uzunluğu sınırlarında da aynısını yapın; reddin çağıran uygulamanın beklediği yanıtı ürettiğini doğrulayın.

Windows için indir ↗

ParenWick · Güncellendi 2026-10-25