Avatar billede jonasbc Nybegynder
20. april 2004 - 11:19 Der er 4 kommentarer og
1 løsning

SableCC problemer

Jeg sidder og roder med at lave en "compiler" (nok nærmere en interpreter) med SableCC for første gang. Det drejer sig om en lille XML parser.

Når jeg har kørt SableCC på min grammatik-fil, får jeg en lang række klasser. Jeg starter med at købe en Lexer og en Parser og får et "Start" objekt tilbage (et AST). Dette kan jeg så afvikle en "Switch" på, f.eks. DepthFirstAdapter.

Jeg har så lavet en klasse, Translator, der extender DepthFirstAdapter, så jeg kan hive information ud af AST'et.

Problemet er, at der åbenbart bliver genereret flere typer klasser for hver terminal i grammatikken, f.eks. ANestedElement (med diverse information og nyttige metoder) og PNestedElement (der blot arver fra den overordnede klasse Node og ikke indeholder megen funktionalitet).
Af en eller anden grund returnerer min metode i ANestedElement, getElementContent(), et PElementContent, der som nævnt ikke indeholder nogen egentlig information... Her ville jeg jo gerne have haft fat i et AElementContent, så jeg kan udlæse værdier.

Jeg håber ikke, jeg har fået beskrevet det alt for kryptisk... :)

Jeg savner generelt noget dokumentation og/eller eksempler på kode, så eksempler på dette er meget velkomne!
Avatar billede jonasbc Nybegynder
20. april 2004 - 12:53 #1
Jeg har fundet ud af, at "P-klasserne" kan castes til "A-klasser"... Så problemet er ikke helt så stort som først antaget...

Jeg kunne dog stadig godt bruge noget dokumentation og et par eksempler mere!
Avatar billede danni03 Nybegynder
29. juli 2004 - 18:53 #2
Hej vi har lige afsluttet et projekt der om handlede udviklingen af et programmeringssprog. Her anvendte vi SableCC, men hvad er det du spørger om?
Avatar billede jonasbc Nybegynder
29. juli 2004 - 20:45 #3
Jeg har fundet ud af det... Lukker nu.
Avatar billede mikkelbm Nybegynder
29. juli 2004 - 22:00 #4
For at lukke spørgsmålet skal du acceptere dit eget svar :)

Og hvis du har lyst, kan du jo poste hvad du fandt ud af, så andre også kan få glæde af det...
Avatar billede jonasbc Nybegynder
29. juli 2004 - 23:08 #5
Det troede jeg, jeg havde gjort...

Der er faktisk en ret god gennemgang på SableCC's hjemmeside. En "thesis" om netop brugen af SableCC. Ellers er det abre at prøve sig frem :)
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