[SableCC] Wat kan ik er mee ?

Pagina: 1
Acties:

  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 20-08 15:03
Ik ben bezig met een project om een java-achtige taal om te zetten in XML.
Het is de bedoeling dat hierbij ook enkele van de reguliere fases van het compileren van code worden doorlopen (syntax analyse, type analyse e.d.). Uiteindelijk moet, als er geen fouten in de code worden aangetroffen, XML-code worden gegenereerd.

Een en ander moet worden geprogammeerd met behulp van Java.

Zoals wel duidelijk is heb ik hierbij een lex/yacc-achtig programma nodig om een AST te kunnen bouwen en vervolgens XML te genereren, dat ik bovendien kan gebruiken vanuit java-code. Na wat zoeken op internet kwam ik SableCC tegen. Echter de documentatie is vrij summier. Daarom hoop ik dat forumbezoekers mij kunnen vertellen of wat ik wil, kan met SableCC.

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

SableCC is een parser generator voor java die op basis van je grammatica allerlei source code genereerd. Bij de nieuwste versie wordt ipv de CST de AST gegenereerd. Verder kan het een subset aan van een LALR(1) grammatica, dus je hebt minder last van ambiguiteiten dan LL grammatica`s. Zeker met de nieuwste beta-versie heb je nog minder last van ambiguiteiten.

Technisch gezien zit het allemaal erg fijn in elkaar. Er wordt zelfs een visitor gegenereerd in de AST objecten en standaard zitten er ook al een aantal voorgebakken traversals bij-in.

Als je met java een parser moet opzetten, zou ik in ieder geval gaan voor zoiets als SableCC (of JJForester.. *nix only), en antieke producten zoals javacc en ANTLR links laten liggen.

op zijn site staat trouwens een uitstekende uitleg

[edit]
Die nieuwe site ziet er leuker uit, maar niet zo duidelijk als de oude. Ik was zelf ook even opzoek..

[rml][ C++/C#/Java] Gave Parser Generator[/rml]

[ Voor 19% gewijzigd door Alarmnummer op 04-11-2003 11:24 ]


  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 20-08 15:03
Mooi, als ik het goed begrijp, moet het allemaal lukken.
Nu nog *even* de code schrijven ;-)

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


Verwijderd

Wij hebben ons vertalerbouw practicum met SableCC gedaan (in tegenstelling tot anderen die het in een een of andere oude pascal parser generator gebruikten) en we hadden de lexer, parser en AST in 45 voor elkaar (ik had er wel eerder mee gespeeld moet ik toegeven). SableCC werkt echt super goed en makkelijk.

Goede tutorial: http://www.brainycreatures.co.uk/compiler/sablecc.asp