Back to it
Bwain| No Comments »Long hiatus after finishing work on Land Of the Lost. Also, with Luna around, I have even less time….
Last left off at doing an overhaul on the type system. I’ve made a difference between a Type and a TypeField. As a result, I have to edit EVERY source that defines operators/functions. Including all the simd work, that’s a LOT. But its good. Its good to look at the entire work as a whole, I end up doing some large scale cleanup, and keeping the implementation somewhat consistent. As opposed to incrementally having it morph into different directions. Some duplicated data structures are also being merged.
My typing is a bit sloppier/slower. The side effect of being a user over a coder.
So the current task: Putting a script interface/interpreter on the app. Big step. I have to restructure the current grammar to allow for the language to be a list of statements, with each statement being a possible function. Currently, the grammar is a list of functions, which means that each script command would have to be wrapped up in a function. Don’t want that….
I’ve extended Type to have an array of modifiers. So we can do things like array. Its a slick way to pass types as arguments to objects. Right now, I can only see using it for arrays. I like the syntax as well.
I’ve been avoiding this, but I’m getting to the point that I have to have the script execute, which means I have to come up with some sort of virtual machine to execute it. I want it to be able to handle recursion, throw/catch, so that means having an execution stack. for/if/then/else/continue/break, the normal flow control commands.
So the commands will execute themselves, and will be able to manipulate the entire virtual machine. That’s pretty much how its going to work. The Cmd class should be under app, not smd.
UGH…. huge roadblock…. It hadn’t occured to me that I would need to be able to copy the expression trees. But yes, we DO. That means that I’m going to have to go into each Funct subclass and implement a virtual copy method. Sucks…


