Consenti all'utente di inserire DSL, regole o codice?

2

Ho una libreria python che mi consente di definire regole concatenando input e output di funzioni (producer (grep (count ([print (), log ()]))) Queste funzioni definiscono una pipeline da sinistra a destra.

Come potrei consentire agli utenti di definire pipeline da un'interfaccia utente?

Ho bisogno di prendere una definizione come ad esempio "produttore- > grep- > count- > print, log" e interpretarla in modo da chiamare il codice precedente.

Ho bisogno di un parser? un AST? Quale sarebbe un buon modo per costruire la sequenza di chiamata da una rappresentazione del codice?

    
posta marianov 26.01.2015 - 22:14
fonte

1 risposta

3

Dipende davvero dal pubblico previsto:

  • I programmatori sono essi stessi o no? Se lo sono, fornire un'API sarà la soluzione più semplice. Puoi anche fornire un DSL, ma fai attenzione che specificare e implementare una lingua potrebbe non essere un compito banale e non puoi realmente andare a modificare la sintassi ad ogni release. Piegare la sintassi di un linguaggio di programmazione in una DSL potrebbe o potrebbe non funzionare e, cosa più importante, potrebbe aggiungere una complessità non necessaria.

  • Sono abituati a scrivere script in batch o no? Se non lo sono, puoi dimenticare un DSL, a meno che non lo stiano chiedendo.

In realtà non lo sai? Che ne pensi di una programmazione a blocchi visivi supportata da un'API nel tuo linguaggio di scelta degli script? Potresti provare Google Blocky :

    
risposta data 26.01.2015 - 22:41
fonte

Leggi altre domande sui tag