Parsing visual basic

Hello.

Where I work, we have to develop and maintain a quite huge application
fully written in Visual Basic 6 [1].

Quite a few tasks should be automated, and being the magical-one-liner-
script guru of the workplace, I’m the one tasked with a bunch of things.

So, I could continue to throw together bunches of ugly ruby and perl
scripts written each to achieve one specific goal, or I could try to
think a bit further and try to implement something more elegant,
powerful, and adaptable.

But, to do that, I need to parse advanced VB6 code, to a quite fine
grained point. For instance, detecting dead code and dead variables.

I took a look at some projects out there, including full-fledged parsers
(none in ruby, or none fully useable, AFAI), but I didn’t manage to do
much.

Are there any solutions out there that I overlooked ? Someone around
who has some experience in the domain to give pointers (though I’d
gladly accept code too… :slight_smile: ) ?

Fred
[1] : This is the point where everyone goes hiding behind the couch…

F. Senault wrote:

think a bit further and try to implement something more elegant,
who has some experience in the domain to give pointers (though I’d
gladly accept code too… :slight_smile: ) ?

Fred
[1] : This is the point where everyone goes hiding behind the couch…

Science is always discovering odd scraps of magical wisdom and making a
tremendous fuss about its cleverness. (Aleister Crowley)

Beware, that way lie patents.

Timothy G. wrote:

scripts written each to achieve one specific goal, or I could try to
Are there any solutions out there that I overlooked ? Someone around

Timothy G., Can you explain what you mean by “Beware, that way lie
patents” please.
Cheers, Mike

On 10/6/06, Jan S. [email protected] wrote:

scripts written each to achieve one specific goal, or I could try to
Are there any solutions out there that I overlooked ? Someone around
you end up writing a parser, you might have a look at his one (look
for ‘Mongrel grammar file’ thread,
http://rubyforge.org/pipermail/mongrel-users/2006-August/001241.html)

I don’t think he’ll be able to use Ragel to handle VB6. From some
searches, it looks like some of the VB6 syntax can’t be expressed in
LALR, etc.
That being said, there are some pretty cool parser generators for
Ruby, so it could probably be done.

Wilson B. wrote:

That being said, there are some pretty cool parser generators for
Ruby, so it could probably be done.

Doesn’t the upcoming ANTLR support emitting Ruby code? You could try
that. I think there’s also a project that tries to compile ASP.NET to
equivalent PHP using ANTLR, you could rip off^W^Wdraw inspiration from
their grammars.

David V.

Mike he was alluding to the closed source nature of Microsoft products
it was a joke.

On 10/5/06, F. Senault [email protected] wrote:

think a bit further and try to implement something more elegant,
who has some experience in the domain to give pointers (though I’d
gladly accept code too… :slight_smile: ) ?

Just a few hints:

J.

Le 6 octobre 2006 à 22:39, David V. a écrit :

Wilson B. wrote:

That being said, there are some pretty cool parser generators for
Ruby, so it could probably be done.

Doesn’t the upcoming ANTLR support emitting Ruby code?

Yep. Still in beta, though (both ANTLR 3 and the Ruby target part).

You could try that. I think there’s also a project that tries to compile
ASP.NET to equivalent PHP using ANTLR, you could rip off^W^Wdraw
inspiration from their grammars.

I think it’s vastly different, alas. I’ll wait for the ANTLR release
and try to write somthing on my own, but I’m afraid writing a whole
grammar is way over my competence… :expressionless:

Fred