[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

ruby and parsing.

Stephane Wirtel

1/11/2006 12:33:00 PM

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
2 Answers

David Vallner

1/11/2006 3:44:00 PM

0

Stephane Wirtel wrote:

>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


Stephane Wirtel

1/12/2006 7:37:00 AM

0

> 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