Naar aanleiding van wat recente topics over mensen die zelf parsers aan het schrijven zijn, wilde ik parser generators maar eens onder de aandacht brengen, zoals het woord het al zegt genereer je hiermee, aan de hand van een specificatie van de taal, een parser die instanties van die taal kan parsen.
Ik zal maar beginnen met een Java parser die me zeer goed bevallen is:
CUP, werkt echt super, je kan je grammatica's gewoon opgeven op de volgende manier:
Het enige nadeel van CUP is dat het project een beetje dood is: er wordt al 3 jaar niet meer aan gewerkt
Het leek me wel leuk en vooral handig als jullie hier wat interessante links (graag met vb grammatica's) neerpleuren!
Op die manier zullen waarschijnlijk ook meer mensen inzien dat dit soort dingen eigenlijk helemaal niet zo moeilijk zijn om te (laten
) maken, en dat je eigenlijk wel gek zou zijn als je ze helemaal met de hand in elkaar gaat knutselen.
O ja, wat mij betreft mogen ze alle gangbare programeer talen als output hebben, maar het liefst natuurlijk C++/Java/VB/Delphi/etc zodat ze ook een beetje praktisch te gebruiken zijn...
Voor alle mensen van de UU: hou al die haskel parser generators dus maar bij je
Ik zal maar beginnen met een Java parser die me zeer goed bevallen is:
CUP, werkt echt super, je kan je grammatica's gewoon opgeven op de volgende manier:
code:
1
2
3
4
5
| expr_list ::= expr_list expr_part | expr_part
expr_part ::= expr ';'
expr ::= expr '+' expr | expr '-' expr | expr '*' expr
| expr '/' expr | expr '%' expr | '(' expr ')'
| '-' expr | number |
Het enige nadeel van CUP is dat het project een beetje dood is: er wordt al 3 jaar niet meer aan gewerkt
Het leek me wel leuk en vooral handig als jullie hier wat interessante links (graag met vb grammatica's) neerpleuren!
Op die manier zullen waarschijnlijk ook meer mensen inzien dat dit soort dingen eigenlijk helemaal niet zo moeilijk zijn om te (laten
O ja, wat mij betreft mogen ze alle gangbare programeer talen als output hebben, maar het liefst natuurlijk C++/Java/VB/Delphi/etc zodat ze ook een beetje praktisch te gebruiken zijn...
Voor alle mensen van de UU: hou al die haskel parser generators dus maar bij je