I received an email of inspiration from Mike a week ago outlining how similar conjunctions and disjunctions in short circuited if statements are at the binary level. After looking at the problem myself I found it was a pretty simple problem. If one of the two out edges of a branch node is another branch node which contains only a branch statement, and the destination of that statement is shared with the first branch statement then you can merge the condition of the second branch into the condition of the first branch. Exactly what combination of fall/taken edges are shared by the two branches is what determines whether an || or a && should be used. This is a pretty easy transformation to do just before code generation (or just after decompilation) and I'm about half way through implementing it.
Unfortunately I got sidetracked. My work, you know, the people who pay me, they have me doing - wait for it - Java development. I moaned about not just being a one trick pony a few too many times, so they've decided to put me to work on something other than C/C++. That's ok. So now I'm deep in the bowls of JBoss and Seam and Java Server Faces and Servlets and xhtml. Sometimes I feel dirty, but it passes.
In between being sidetracked I manage to find time to fool around with mysql. That's a nice big pain in the ass. I hate databases.
I've also been fooling around with Ogre3d again. In many ways it's fuckin' great, but if you want to do something that is not exactly on the beaten path, watch out. I've been trying to draw polygons, with the hope of providing an interface to extrude polygons into recognisable objects. Something with a Google Sketchup style interface would be nice. Unfortunately, to draw polygons you need to break them down into triangles. Why triangles? Cause that's all Ogre can draw. I managed to find some C++ code on flipcode that claims to be able to do it. Guess I'll try it out next time I get a chance. You'd figure something like this would be present in a graphics engine. You'd be wrong, because 99% of the people who use Ogre just load meshes from files, which they export from 3d editing programs.