Hej Martin,
Ja det er lavet:
Se
http://home.worldcom.ch/~jmlugrin/fesi/
for en gratis fortolker, der kan embeddes i java-applikationer og som har
ECMA Script (javascript) som sprog.
Skulle du alligevel have lyst til at kaste dig i lag med din egen
fortolker, er der et værktøj, der hedder JavaCC:
http://www.webgain.com/products/java_cc/
En god intro til javacc
http://www.soi.city.ac.uk/~daveb/teaching/P213/jjtree.html
Der findes også et værktøj, der hedder ANTLR men det kender jeg ikke i
detaljer.
Lidt om java-fortolkere i almindelighed:
http://www.javaworld.com/jw-05-1997/jw-05-indepth.html
http://www.javaworld.com/jw-06-1997/jw-06-indepth.html
http://www.javaworld.com/jw-07-1997/jw-07-indepth.html
http://www.javaworld.com/javaworld/jw-01-1997/jw-01-indepth.html
http://www.meurrens.org/ip-Links/java/parser/
--
Best regards
Soeren Dalby
www.dalbydata.dk
"Martin Mouritzen" <martin@fez.dk> wrote in message
news:9t0ann$1kds$1@news.cybercity.dk...
> Da jeg har nogle templates i en Java applikation, som indtil videre
> kun understøtter simpel replace af nogle variabler, og behovet nu er
> vokset lidt så der også kan komme en vis logik ind i dem, tænker jeg
> nu på at lave mit eget lille script sprog.
>
> Det skulle gerne være noget man kunne kalde direkte fra Java som
> f.eks.
>
> String parsedCode = Parser.parse(someCode);
>
> Det leder mig til et par spørgsmål,
>
> 1) Er der nogle der allerede har lavet dette?
>
> 2) Hvad er den smarteste måde at parse sådan et "sprog" på?
> Jeg har ikke besluttet mig for en syntax endnu, men det skulle gerne
> være noget der samtidig med at det var lidt "pænt" også var
> forholdsvist nemt at parse.
>
> Jeg er nået så langt så jeg sagtens kan parse udtryk som f.eks.
> "1 + 1" eller "enMetode(etParameter)"
> men hvis jeg pludselig kommer ind i noget ala.
> "if (enMetode()) {
> kode();
> }
> else {
> kode();
> }"
> osv. (altså mere avanceret) tror jeg nok at jeg er lidt på bar bund.
>
> Hvis nogle har artikler eller lignende modtages de med kyshånd.
>
> FUT: dk.edb.programmering
> --
> Martin Mouritzen.
> The truth is out there! Does anyone know the URL?