[OT (penso)] lex & yacc

davide cavaliere damny@lazita.homelinux.net
Mer 20 Apr 2005 15:47:26 CEST


Salve a Tutti,

chiedo il vostro consiglio riguardo i due programmi di cui in oggetto.
Spero che qualcuno di voi abbia avuto esperienze con questi due
tipini :)

Vi spiego il lavoro che devo fare: Sto lavorando alla realizzazione di
un linguaggio per la formattazzione interattiva di un documento che può
contenere testo e immagini; avrò per esempio un prompt dove scriverò:
>nuovo documento nomefile.pdf
>inserisci pagina
>inserisci articolo.txt in pagina 1 10 10 150 210 due colonne
ecc... ecc...

dove i numeri 10 10 150 210 indicano (per esempio) che il testo
contenuto nel file articolo.txt sarà inserito in una casella di testo
posizionata rispetto all'angolo superiore sinistro a 10 millimetri dal
margine destro, a 10 dal margine superiore e avrà dimensioni 15 cm per
21 cm e distribuito su due colonne.

Premessa: ho deciso di suddividere le parole riservate tra azioni
oggetti e attributi, quindi per esempio "nuovo" sarà un'azione,
"documento" sarà un oggetto e il nome del nuovo documento "nomefile.pdf"
sarà un attributo, quindi il mio analizzatore lessicale dovrà, in
primis, distinguere tra azioni, oggetti e attributi, e, in secundis,
decidere se, dato un comando, è possibile eseguire quella azione su
quell'oggetto secondo quegli attributi.

Ecco il dilemma: ho visionato diversi lavori su lex e ho notato che
alcuni definiscono tutti i token che è possibile trovare, per esempio
nel mio caso saranno NUOVO_TOK, INSERISCI_TOK, PAGINA_TOK ecc... ecc...,
mentre in altri casi viene utilizzato un metodo diverso, indicando per
esempio la definizione [PAROLA] [A-Z]* e successivamente distinguere tra
le parole: le azioni, gli oggetti e gli attributi. In questo secondo
modo penso che si semplificherà la parte dell'analizzatore grammaticale
(yacc) ma non sono abbastanza lungimirante da potere dire con certezza
che questa affermazione è vera. Quindi chiedo a voi, se qualcuno ha
avuto a che fare con questi due tipi che scelta avete fatto; non vorrei
ritrovarmi tra un mese a dovre riscrivere tutto da capo perchè la mia
scelta non è stata felice.

Come sempre vi ringrazio tantissimo e mi scuso per l'off-topic.

Davide Cavaliere
-- 
http://lazita.homelinux.net
Apache/2.0.50 (Gentoo/Linux) mod_ssl/2.0.50 OpenSSL/0.9.7e PHP/4.3.7
Public Key @ http://pgp.mit.ed
Key id: 7CE0E503
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part
Url:         http://lists.linux.it/pipermail/palermo/attachments/20050420/365dd080/attachment.pgp


Maggiori informazioni sulla lista palermo