The FreeWRL code base has an internal "VRML1 to VRML2" translator, that kind of works.
It was ok for the NASA tests that NASA sent my way; I'm sure though that it has holes in it.
The code is open source, of course. Written in "C".
John A. Stewart.