[bcn-pm] Creacion de un parseador de codigo.
Xavier Noria
fxnahashref.com
Diu Jun 11 05:50:18 PDT 2006
On Jun 11, 2006, at 1:25, Jose Pedro Andres Garcia wrote:
> Hola a todos:
> Estoy preparando un sistema de gestion via web, que entre otras
> cosas quiero que implemente su propia API de programacion, para
> facilitar la ampliacion ( la gente que va a manejar todo el diseño
> y la
> logica no tiene ni idea de programacion )
>
> La idea seria algo similar a:
>
> <programa if variable=valor>
> cosas que hago si el if es verdadero
> <programa else>
> cosas que hago con un else
> </programa>
>
> Bueno, como un lenguaje de marcas normal, pero que implemente las
> opciones mas comunes ( if, foreach, do-until, etc etc ).
L'unica vegada que ho vaig fer amb XML va ser amb un llenguatge molt
petit que tenia poc mes que if/else. En aquell cas llegia l'XML i
l'interpretava a ma, construia Perl a partir d'ell i cridava eval().
En aquell cas era segur fer aixo.
I la resta de vegades que he hagut de fer alguna cosa similar no he
inventat res, he delegat en un llenguatge d'scripting. Aixo depen del
cas i pot ser que no valgui en el teu, pero t'explico els pros:
1. Parsing i interpretacio a tocar de dits amb eval()
o similar
2. Sovint et quedes curt, voldries estendre el mini-llenguatge,
i el resultat final es una cosa matxambrada i menys senzilla
del que hom volia al principi
Hi ha tambe l'assumpcio que si no son programadors, conceptualment no
hi ha diferencia entre
<programa if variable=valor>
cosas que hago si el if es verdadero
<programa else>
cosas que hago con un else
</programa>
i, per exemple en Ruby,
if variable == valor
# coses
else
# coses prima
end
Aquest segon queda fins i tot mes entenedor pel meu gust. Ho veus? Es
el mateix entendre la primera cosa que la segona.
Pensa que no cal que expliquis tot el llenguatge, pots documentar el
subconjunt que t'interessi com si fos un llenguatge propi, nomes que
tu treus profit del fet que interpretar el codi es trivial, i tens la
feina feta i robustament en un tres i no res.
-- fxn
Més informació de la llista de correu Barcelona-pm