I don't know should I post this article at here or not, if you think this should
belongs to other area, please move it to there.

I need to design some domain specific language to generate some C++ source codes.
I have considered about using xml directly instead of designing a new DSL.
but it is too verbose and complicated for my case, so I decided to design an easier
one for myself(besides, this is a good practice, maybe).

I am using and learning boost::spirit, because it is robust, flexible, good
performance, easy to maintain .But my colleague said spirit is too complicated,
so I considering to find another tools, these tools don't need to be bounded by C++,
it could be any libraries or languages.

My main focus is easy to learn, cheap to maintain and shorter develop time.
Performance is not a big deal, it is just a bonus in my case. What kind of tools
would you recommend? It would be ideal if this tool could be handle by everyone in
a short time.

Thank you very much.

Recommended Answers

All 2 Replies

If you are looking for ease of use and understandability Ruby has a gem called Treetop that is pretty straightforward. You will have to be comfortable with Ruby, however.

If you go the more traditional C/C++ route the de facto tools are lexx/yacc (or flex/bison). These are fairly heavyweight and require more investment to understand and get right.

If you are looking for ease of use and understandability Ruby has a gem called Treetop that is pretty straightforward. You will have to be comfortable with Ruby, however.

Thanks, I will give it a try.Could you recommend me a book like "essential C++"
but designed for ruby?I don't need to be an expert of ruby for now, I only need an
ease to use tool to generate source codes for me.

If you go the more traditional C/C++ route the de facto tools are lexx/yacc (or flex/bison). These are fairly heavyweight and require more investment to understand and get right.

So compare to lexx/yacc, boost::spirit is very easy to handle?Then I would focus
on boost::spirit and Treetop, the decision would up to my company.Could ruby
co-work with C++?I would like to try to combine the powers of different language.
Although I didn't want to learn another language before I know the basics of
algorithms, data structure and generic programming(include TMP) good enough,
but job still have to be done(I would like to use boost::spirit if possible,
maybe I would change my mind if Treetop suite my case better).

Thank you very much.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.