UNCOMPLETED: 1) Write Checker Functions 1) Write RECU Program COMPLETED: 10-19-02 I've started working on the RECU_Tokenizer. This involves looking at code for the BL_Tokenizing_Machine as well as some other examples. I'm kinda cutting and pasting the format for Type.h Kernel_1.h Kernel_1_Body.h and Kernel_1a.h. I plan on finishing the tokenizer this week. And hopefully start working on the parser soon. 11-05-02 I now have a finished tokenizer. I also totally redesigned the RECU... I'll leave the old plan above to show my progress. Here's the new gameplan. Also, a quick note on the completed tokenizer... It might have some bugs associated with the end of the file... But, I won't know for sure until I trace some examples. 11-11-02 Traced tokenizer, fixed potential bugs dealing with end of file. Currently working on writing checking functions. Have algorithms for most. Still haven't tackled the problem of checking matching angle brackets. COMPLETED: 1) Write Tokenizer a)Get_Next_Token b)Get_Next_Meaningful_Token c)Line_Number d)Character_Type e)Is_Valid_Op UNCOMPLETED: 1) Write RECU program/library a)Check_Braces b)Check_Parameter_Modes c)Check_Control_Structures d)Check_RESOLVE_Keywords e)Not specifing return type in functions f)Using = instead of == g)Missing keyword object **Note: functions e thru g may or may not be covered by preceeding functions and may or may not be implemented. 12-16-02 Doing this in one pass might be possible. All errors should be able to be checked. RESOLVE-ified the RECU_Checker library. Dealt with a finicky little linker error. Here's a list of some protected ops I've been kicking around. Check_Block - function bodies, control structures, etc. Check_Prototype - lookahead for this one? &'s and parameter modes Check_Line - = or ==? object keyword? Check_Token - also handles output of error codes? C++ baddies? Check_If_While_Else - braces for control structures Still haven't to come up with a definite solution for angle brackets. Let the 40 hr. work week begin!!! 12-17-02 So far being implemented as a one-pass approach with mismatched braces being a fatal error that stops execution. Check_Braces works so far. Check_Token works... Check_If_While_Else works... Check_Block works... Having a problem with Check_Line which somehow may relate to a problem with the Tokenizer. Implemented new protected op - Exception_Handler that generates error messages. I can see myself spending a day fixing everything but Check_Header. Another day implementing Check_Header and figuring out how to check ampersands... I'll have to provide documentation for how I dealt with missing 'object' and '==' and '='. But I'm pretty sure they are valid fixes. 12-19-02 Found a bug I couldn't fix in the tokenizer... So I rewrote it. It's now solid agains any EOS errors, but it is off on the line number. Should be a simple fix, I'll just have to trace it. Check_Braces is tried and true. Check_Token works. Check_If_While_Else works. Check_Block works. Check_Line works... found an error with "case" but it was a simple fix. Another protected op implemented, Check_Declaration... it is used by Check_Line to simplify the code a bit. Tomorrow I'll have to implement Check_Header. I don't think it'll be much of a problem, but I might have to implement another protected op. Umm, the implementation of Check_File works right now, but I'll have to modify once I figure out how to check for matching angle brackets. 12-20-02 RECU is %90 complete. I've tested it against the Kernel_1_Body.h's for the Checker and Tokenizer. I also tested it against parts of the RESOLVE catalogue. There is an issue when the tested code contains pointers, but I believe it is fixable. I've also documented the requires and ensures clauses for all the functions. Right now, I'm waiting for an answer about what I can assume when it comes to instantiating templates. After I get a reply, I can implement functionality towards checking angle brackets. I've also implemented the RECU executable. Here's a list of the errors caught: Mismatched/Unmatched braces Use of invalid C++ keywords Missing parameter modes Missing ampersands Missing or non-standard return types in functions (this is just a warning because of templates and the accessor) Missing keyword object Missing {}'s around control structures **Using = in boolean expressions **Using == in assigment expressions ** Note: these two errors are influenced by the use of pointers in code. will try to fix this soon. 12-23-02 Known RECU problems: 1) Boolean global variables that make use of the '>' and '<' operators