Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Soulstorm

macrumors 68000
Original poster
Feb 1, 2005
1,887
1
Well, that may sound too vague, but I am trying to improve my skills in writing parsers. So far for C++ I haven't tried to look at any other type of parser other than recursive descent.

All I would like is to have some resources to get started with writing recursive descent parsers. Examples, tutorials, etc.

PS. If the resources are for Cocoa, I still want them :)
 

ChrisA

macrumors G5
Jan 5, 2006
12,575
1,686
Redondo Beach, California
Well, that may sound too vague, but I am trying to improve my skills in writing parsers. So far for C++ I haven't tried to look at any other type of parser other than recursive descent.

All I would like is to have some resources to get started with writing recursive descent parsers. Examples, tutorials, etc.

PS. If the resources are for Cocoa, I still want them :)

Theoretical question: Can you write a recursive descent parser for C++?
I don't know I forgot if C++ is context sensitive or not

I would only do a recurcive decent parser for a simple language. The
last two I wrote I simply used LEX/YACC. It is so much easier and
you can be done in an hour.

But RD is easy, just write some functions that return "true" on a match.
Google found this. Looks good
http://teaching.idallen.com/cst8152/98w/recursive_decent_parsing.html
 

Norton Disney

macrumors newbie
Aug 12, 2007
2
0
Flex/Bison are alternatives to Lex/Yacc, that I've personally used.

Probably the best resource that you can have for writing a compiler is the Dragon book. There's quite a lot of theory to wade through before you get to the juicy bits. For example, you're going to need to have a good understanding of BNF.

If I recall correctly, there are a lot of ambiguities in the C++ grammar that make writing a compiler for it difficult. That contrasts with C, which has only one ambiguity, the 'dangling else'.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.