Avatar billede vante Nybegynder
13. juni 2006 - 19:23 Der er 5 kommentarer og
2 løsninger

Java parsing hjælp - Svær!!

Hej Eksperten jeg er løbet ind i et kæmpe problem.

Jeg skal lave et program i java, som tager en anden java kilde kode ind. Ud fra kildeteksten skal den så kunne tage alle metoderne og for hver metode skal den gemme metodens returtype, navn og parameterliste.

Gerne med kode eksempler

Pft
Vante
Avatar billede esbenp Nybegynder
13. juni 2006 - 22:45 #1
En måde er at bruge parser generatoren SableCC. På hjemmesiden ligger en grammatik til java. Jeg er dog ikke klar over hvor komplet den er.

Dokumentationen til SableCC er heller ikke specielt god. For at komme i gang med SableCC brugte jeg eksempel grammatikken der hedder smallpascal. Når du har fundet ud af hvordan det virker er det hurtigt at skrive den ønskede parser.

Arbejdsgangen til at bruge SableCC er følgende:

1.  Kompiler din grammatik fil ved at skrive ant i mappen for sproget.
2.  Importer den resulterende .jar fil i din IDE.
3.  Lav en klasse der nedarver fra DepthFirstAdapter.

Det letteste er selvfølgelig at finde en java compiler hvor man kan sætte den slags som parametre. Det ved jeg dog ikke om der findes.

En sidste mulighed er at finde en open source java compiler(jikes?) og modificer sourcen så den gør det ønskede
Avatar billede arne_v Ekspert
14. juni 2006 - 04:05 #2
medmindre man har en vis uddannelsesmæssig baggrund eller tilsvarende
praktisk erfaring er en Java parser nok en lidt tung ophave

jeg kan se nogle alternativer:

1)  lave et hack med noget grimt regex

2)  prøve og se om du kan bruge javadoc engine til noget

3)  compile og bruge reflection
Avatar billede mikkelbm Nybegynder
14. juni 2006 - 09:04 #3
Og i forlængelse af Arnes 3'er havde vi faktisk et lignende spørgsmål for nogle dage siden:

http://www.eksperten.dk/spm/714506

Hvor jeg er kommet med et løsningsforslag.
Avatar billede arne_v Ekspert
09. juli 2006 - 03:21 #4
vante ??
Avatar billede vante Nybegynder
28. juli 2006 - 23:03 #5
Hej undskyld jeg har været så lang tid om at svare tilbage. Jeg brugte det svar mikkelbm havde givet Tanis13 og det virket, så mange tak for hjælpen allesammen. Så da mikkelbm svaret på det og arne v var inde på det samme vælger jeg at dele pointene mellem jer, så hvis i lige smider et svar så er der point på vej. Endnu engang tak for hjælpen.
Avatar billede mikkelbm Nybegynder
29. juli 2006 - 00:31 #6
svar..
Avatar billede arne_v Ekspert
29. juli 2006 - 01:37 #7
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester