About 3 years with nothing... though I've been doing edlib instead. If I had concrete steps I might be able to make progress. 1/ Add a simple test sample code to git - maybe just fibonnaci and gcd 2/ Add error reporting to parser. It is really useless without this. Error productions are: A -> $error term If a terminal cannot be shifted, and we cannot reduce we push the terminal back and consider 'error' instead. We discard state until 'error' can be shifted, then discard input until a terminal can be shifted. 'error' object gets told: first bad terminal earliest state and last terminal that were discarded error production needs an action which reports the error. 3/ Add var:type = value type declarations. 4a/ Add [ len : type ] array type and var[expr] array access/assignment 4b/ Add struct name { field:type; f2, f3:type } either name or fields are optional 5/ Add function name(field:type) : type { code } functions. Functions MUST return a value 6/ Add proc name( fields ) :fields { code } Procedures don't need to return anything, and may return serveral