Ik gebruikt op dit moment een LR parser generator voor java SabelCC. Maar hoe zit het met parser generators voor c# (LR en niet LL)? Is daar iets aan te bevelen? En het liefst natuurlijk met visitors design pattern in de AST`s
Die zullen binnen korte tijd wel als paddestoelen uit de grond schieten omdat de aanpassing van bestaande parser-generators voor Java naar parser-generators voor C# natuurlijk vrij triviaal is... Ik weet er alleen zo geeneen (zeker geen 'beste') om de simpele reden dat ik er nog geeneen nodig heb gehad en ook niet naar heb gezocht...
Wel weet ik dat Mono een eigen oplossing gebruikt:
http://www.go-mono.com/c-sharp.html
Ze hebben Jay geport naar C#. Ik kon zo geen link of download vinden, maar ik neem aan dat je hem ook los kunt gebruiken als je de Mono C# compiler sources download.
Ook hebben ze daar een linke staan naar "jb2csharp" wat een Bison/Flex port naar C# zou moeten zijn en waarover ze over willen stappen (of wellicht hebben ze dat al gedaan...)
http://sourceforge.net/projects/jb2csharp/
Overigens kan je de Java oplossingen denk ik ook gewoon gebruiken in .NET als ze geen Java 2 vereisen...
Wel weet ik dat Mono een eigen oplossing gebruikt:
http://www.go-mono.com/c-sharp.html
Ze hebben Jay geport naar C#. Ik kon zo geen link of download vinden, maar ik neem aan dat je hem ook los kunt gebruiken als je de Mono C# compiler sources download.
Ook hebben ze daar een linke staan naar "jb2csharp" wat een Bison/Flex port naar C# zou moeten zijn en waarover ze over willen stappen (of wellicht hebben ze dat al gedaan...)
http://sourceforge.net/projects/jb2csharp/
Overigens kan je de Java oplossingen denk ik ook gewoon gebruiken in .NET als ze geen Java 2 vereisen...
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
hmmzz.. wat mij bijstaat is dat Yacc intussen een behoorlijk antiek product is. Genereerd Yacc ook AST`s? Als dat niet zo is dan wil ik niets met dat product te maken hebben aangezien ik nu weet hoe eenvoudig het kan zijn. En ik neem aan dat ze er ook geen visitor aansluiting bij leveren als ze wel AST`s genereren.
Kan je in .NET ook java libs gebruiken?Overigens kan je de Java oplossingen denk ik ook gewoon gebruiken in .NET als ze geen Java 2 vereisen..
Bison is trouwens LALR(1) dus ik neem aan dat jb dat dus ook is en jb2csharp dus ook. Dat voldoet dus bijna aan je LR eis: SableCC is ook 'slechts' LALR(1)
.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik heb me intussen uitstekendOp dinsdag 18 juni 2002 14:49 schreef mbravenboer het volgende:
Bison is trouwens LALR(1) dus ik neem aan dat jb dat dus ook is en jb2csharp dus ook. Dat voldoet dus bijna aan je LR eis: SableCC is ook 'slechts' LALR(1).
Geen flauw idee.... Ik zou even naar jb kijken wat die doet. CUP is ook gebaseerd op Yacc en genereerd AST's van jb weet ik het niet.Alarmnummer: Genereerd Yacc ook AST`s?
Ik denk dat je ff naar jb moet kijken wat die allemaal kan.En ik neem aan dat ze er ook geen visitor aansluiting bij leveren als ze wel AST`s genereren.
J# .NET komt met Java 1.1 libraries, dus 'een beetje'.Kan je in .NET ook java libs gebruiken?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
CUP genereerd trouwens geen AST`s hoor.
en dan heb je hier oa last van.With today's low memory prices and faster processors, many programmers prefer
to work on an Abstract Syntax Tree (AST) representation of parsed programs.
CUP offers no support for building ASTs. So, the programmer has to write the
appropriate action code to build nodes for every production alternative of the
grammar.
Zonder AST zou ik geen parser meer willen schrijven.# The lack of support for ASTs renders CUP ill suited for multiple pass compilers.
Inderdaad, ja: dit is een beetje hetzelfde verhaal als JavaCC en JJTree/JTB: JJTree of JTB zorgt ervoor dat er een JavaCC grammatica wordt gegenereerd die met de semantische akties een AST opbouwd. Helaas weet ik echter niet zo'n front-end voor CUPAlarmnummer: CUP genereerd trouwens geen AST`s hoor.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Pagina: 1