giovedì 13 dicembre 2007

Macro in HFS

Questo è il primo post etichettato per schifosi informatici, la cui lettura è sconsigliata a chi non ha contratto tale piaga nella propria vita, pena una noia mortale dopo appena poche righe.
Inoltre questo post presuppone che sappiate cos'è HFS, un programma a cui lavoro da 5 anni ormai.

Circa 40 giorni fa (e già si vede la pignoleria tipica della categoria), mi accingevo a dare uno strumento per chi scrive i template di HFS per poter accedere facilmente ai parametri passati nella URL (mi riferisco a ciò che sta dopo il punto interrogativo in www.ciccio.com/pagina?sort=n&recursive ).
All'inizio avevo utilizzato il preesistente sistema basato su tabella, aggiungendo una nuova riga per dire traduci %url-sort% in n. Siccome questo metodo si era rivelato inadeguato alle esigenze degli utenti, ho scritto un parser che permettesse di tradurre una cosa tipo {{url|sort}} nel suo corrispettivo.
All'inizio ho creato un parser molto semplice, poi ho deciso di renderlo più flessibile, che gestisse l'annidamento di questo tipo di sintassi (cioè, parentesi dentro parentesi).
Ci ho messo un paio di giorni alla fine, e ho dovuto aggiustarlo anche successivamente, però funziona.

Col tempo ho aggiunto comandi per fare anche altre cose, e infine ieri gli ho dato la possibilità di avere funzioni e variabili. Non era assolutamente mia intenzione creare una specie di linguaggio di programmazione, ma mi sa che l'ho fatto. La sintassi è una merda, è vero, però non è che ho dovuto lavorarci chissà quanto dopo che il parser era finito. Ad esempio per dargli funzioni e variabili sono bastate una decina di righe di codice. Tanto vale che possa farlo, mica questo obbliga ad usarlo. La cosa poi ridicola è che invece c'è diversa gente che già lo sta usando.

In questo thread c'è un piccolo esempio che mostra quanto sia farraginoso fare anche una cosa semplice, eppure la fa. E in questa pagina della documentazione invece spiego come funziona il linguaggio, anche se in maniera minimale. Per la voglia che ho di documentare ci sto spendendo pure troppo tempo. Ulteriori info sul forum.

E insomma alla fine di questa storia la mia igiene intima è sempre la stessa (provare per credere), però ho fatto una cosa che credo sia un linguaggio di programmazione, quasi senza volerlo.

La signora qui sopra è la famosa Ada, aristocratica dell'800, prima programmatrice donna a quanto sapevo io, e invece secondo Wikipedia è proprio la prima programmatrice in assoluto, ambosessi.