PParenWick
Flussi di lavoro

Flussi di programmazione · Analisi limitata delle espressioni S

03
Prodotto

Flussi di lavoro

Analizza una sola espressione S tra parentesi di massimo 4096 caratteri in liste e atomi ASCII. Prova liste vuote, profondità 16 e 1024 nodi, rifiutando forme extra, liste aperte e virgolette non supportate senza valutazione.

01

Scarica l’applicazione

Seleziona una cartella e chiedi all’assistente di leggere i file interessati prima di modificarli. Definisci obiettivo e limiti dell’attività.

02

Apri la cartella del progetto

Scegli un endpoint compatibile. Gli strumenti disponibili e la qualità delle risposte dipendono dal modello e dal server configurati.

03

Collega e prova il modello

Controlla le modifiche e l’output dei comandi. Esegui le verifiche del progetto prima di accettare il risultato: il codice generato non è automaticamente collaudato.

04

Controlla le modifiche ed esegui i test

Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.

Analisi limitata delle espressioni S

Flussi di lavoro
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

Controlla prima di applicare. Controlla le modifiche e l’output dei comandi. Esegui le verifiche del progetto prima di accettare il risultato: il codice generato non è automaticamente collaudato.

Ambiente di sviluppo con IA

La prossima idea comincia qui.

Scarica per Windows ↗