vorrei leggere una stringa da un file di input (che può o non può essere stato modificato dall'utente). Vorrei trattare questa stringa come una direttiva di formato da chiamare con un numero fisso di argomenti. Tuttavia, comprendo che alcune direttive formato (in particolare, il ~/
viene in mente) potrebbero essere utilizzati per iniettare chiamate di funzione, rendendo questo approccio intrinsecamente pericolosi.sicuro Analisi delle direttive formato in Common Lisp
Quando si utilizza read
analizzare i dati in Common Lisp, la lingua fornisce la variabile dinamica *read-eval*
che può essere impostato per nil
per disabilitare #.
iniezione di codice. Sto cercando qualcosa di simile che impedirebbe l'iniezione di codice e le chiamate di funzioni arbitrarie all'interno delle direttive di formato.
Grazie. Non avevo nemmeno pensato a infiniti problemi di looping. Con problemi come questi, probabilmente finirò a scrivere il mio micro-linguaggio per gli specificatori di formato piuttosto che provare a modificare 'format'. –
@SilvioMayolo Anche questo è un buon approccio. Ma prenditi un po 'di tempo per vedere se esistono altri formati: sto pensando a 'cl-interpol' ma potrebbero essercene altri. In bocca al lupo! – coredump
Punto molto bello sui costrutti di iterazione! –