The end is inching closer. I figure that only three functions are needed at this point to finally get visual output (assuming everything goes well). First, my input string needs to be converted from infix to postfix notation. Of the three, this is probably the easiest as Dr. Pankratz had given me some excellent notes to work from. Next, the postfix string needs to be processed. This is one of two areas that has seen the bulk of my work this week. I found some example code that I have been heavily modifying to meet my needs. The function will be pulling double duty, evaluating the input while also generating my tree. Each step in evaluating the postfix string is a node in my tree, so the new node will immediately have its needed value. The order of the postfix evaluation also makes assigning children very simple. This function still requires attention, but I have a decent understanding of what needs to be done with it. The last function required for visuals would be taking the tree and generating json from it that would be read by the Simcir library.
The other focus of this week has been on adding the user features to the site. I set up my database, and users now have the ability to register with the site, login, and have stats saved while in the editor. There are a number of things that have not yet been tested with this, so I am confident that issues will be found. A large amount of the database stuff had been made months ago, but did not work with however the server here is configured, so the majority of the functions written required rewriting.
Having mentioned statistics, I should elaborate on what is being collected. Currently, not much. The number of times each of the sets and operators are submitted is counted, and a field is in place for tracking the maximum depth of nested parens submitted. While they are one of my targets for the project, statistics aren’t going to be worth the time investment if the more critical parts of the project do not work (like the visual part of the set visualizer). Now that it is recording data, it will likely be ignored until the very end. I still have no means of displaying the data.