ruby and parsing.

S

Stephane Wirtel

Hi all,

Firstly, Happy New Year :p

Secondly, I have a c++ source code with many "try catch".

try {
<BODY OF TRY>
}
catch (Exception &pException) {
<BODY OF CATCH (for Exception)>
}

I would like to parse my file and add a 'catch' with std::exception automatically,
to get the next example.

try {
<BODY OF TRY>
}
catch (Exception &pException) {
<BODY OF CATCH (for Exception)>
}
/// New catch added by a ruby script.
catch (std::exception &pException) {
<Fill the body of this catch with the body of catch (for Exception).>
}


How can I do it ? Because I find some problems :(
1) Try to parse a lot of line with Regexp.
2) In the body of a 'catch', it can contains brackets


Best Regards,

Stephane
 
D

David Vallner

Stephane said:
Hi all,

Firstly, Happy New Year :p

Secondly, I have a c++ source code with many "try catch".

try {
<BODY OF TRY>
}
catch (Exception &pException) {
<BODY OF CATCH (for Exception)>
}

I would like to parse my file and add a 'catch' with std::exception automatically,
to get the next example.

try {
<BODY OF TRY>
}
catch (Exception &pException) {
<BODY OF CATCH (for Exception)>
}
/// New catch added by a ruby script.
catch (std::exception &pException) {
<Fill the body of this catch with the body of catch (for Exception).>
}


How can I do it ? Because I find some problems :(
1) Try to parse a lot of line with Regexp.
2) In the body of a 'catch', it can contains brackets


Best Regards,

Stephane
I don't think Regexp is a viable alternative for this one - you might
want to implement a trivial recursive-descent parser for C++, counting
the opening and closing brackets after each catch clause. Unless the
bodies of the exception handlers contain unmatched brackets in strings,
that should work.

David Vallner
 
S

Stephane Wirtel

I don't think Regexp is a viable alternative for this one - you might
want to implement a trivial recursive-descent parser for C++, counting
the opening and closing brackets after each catch clause. Unless the
bodies of the exception handlers contain unmatched brackets in strings,
that should work.
Thanks David,

I will try this solution during my week.

Best Regards,

Stephane
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,287
Messages
2,571,430
Members
48,120
Latest member
ToTSlider

Latest Threads

Top