1. Code is in ~htobias/Modula3/CodeGenerator You should have permissions. copy the dir when you want to play around with it... 2. I got the more general parsing scheme for the pragmas working, i.e the presented interfaces are all searched for pragmas which are then stored in a common data structure. The pragmas have to be qualified as in <*SHARED UPDATE METHODS T.set, U.init *>, |_ no blank there! &*^&$%^ library routines and the file in which they are stated determines, which Types T and U are adressed. -------------------- 3. A typical program instantiation looks as follows: SOCodeGen -o -so -i -T (normally generated by m3build) (look at the (stupid) script ~htobias/Modula3/CodeGenerator/run, I didn't bother yet to get the program incorporated into m3build) -------------------- 4. So far the program generates Code for: CallbackObject.i3 CallbackObject.m3 ProxyObject.i3 ProxyObject.m3 <--- wrong code here. The file TrackerPositionProxy.m3 that you gave me was really TrackerPositionF.m3 and I just generated the nonsense :-( All the other files are also _created_ but instead of code there'll be just a stupid header in it. Look into modules SOxCodeFiles and StubCode to see how I coordinated generation. So in order to add code generation for The Shared Object module itself (e.g. TrackerPositionTstSO.m3) just add a new generation module and hook it in at SOxCodeFiles.m3 ! Take one of the existing generating modules SOxIntfCBCode SOxModuleCBCode SOxIntfProxyCode SOxModuleProxyCode or the dummy SOxDummyCode as example for seeing how the interfaces are defined. It should be pretty straightforward... ---