Thanks for the response. Yes, I moved the do() operator, I do (currently, in test123 bot) have two case states, I did finally turn off comprehensions (after exporting the SelfStateMachine scripts - could there be a 'pause script' button or can I add a line to disable it without compile erasing it?), but I still haven't got it yet. One thing though, the Equation definitions and Quotient operator are moved to after the Case statements by the compile tool, implying they are evaluated after the Case "goto"s - so I'm wondering which statements are evaluated after case redirection and which are not? Thanks for looking at it, that's appreciated.
There are two difficulties I'm having with the script development cycle. One is while having the compile function auto-edit the script is useful, it's a bit troubling when it deletes an entire function because it lost the reference to it. Maybe there could be an option to suspend this for more 'advanced' users. The other is I'm having lot's of page reload issues, which I've been trying to identify how to reproduce or workaround. The general problem is after testing the bot and then back to the Scripting page to edit(and vice versa sometimes) it says "no bot selected", and I have to go back into the bot page, then to admin, then to scripts and reselect. I think this occurs only after I reload the Scripts page or the Bot Chat page (not sure if this is on both Chat and Web Chat). The thing is I've been reloading the pages to make sure the scripts have been processed - I realize this may not be recommended as necessary, however I was doing it intuitively and it turns out that yes, when I make major changes to a script it is necessary. The extent of minor versus major I am testing, but single text changes within a response do update without reload, while adding a script, changing the order and I think even defining new cases or equations are not updated. (I'm using Windows 7 and Firefox)
EDIT: Yes, the reload and script movement requirement are reproducible. I changed parts within an equation and though it saved them, on 'arrow up' the script list, it decried "no bot selected" and did not update changed in the Chat page. This was after opening a script from the Self library to copy parts from. After re-selecting bot and (only) after moving script up one slot in the list, did the bot recognize the update (without reloading the bot).
This really slows progress down, as you can imagine. Despite these hangups on each test cycle, I'm still trying for "Hello World!" script and a "Correction" script (see below). It would be great to have assistance as due to the auto-edit I've lost the one that was working half-way (should have exported it I guess), and the reload thing is getting tiring which seems it would be required after an script import.
On a different but related note, I'm wondering how difficult it would be to implement the function of aiml. Everything you've done with BotLibre! is amazing, and I've probably only scratched the surface, but that function was really useful in Pandorabots because just by saying 'wrong' I could correct the responses verbally. I would use this to build 'scripts' or meta-functions (macros) from simple components. Looking forward to testing the Function entry in Chat on Monday. I'm also trying to get the API working to use the correction parameter, but I've only found one reference to 'correction' in the API with no info on parameter syntax, yet.
See below for my HW script. I can't get it to goto the second case, it just responds with "Hello World!"
Also, do you use the html < br > tags to separate paragraphs in your replies?
EDIT: The tab switching seems to be working between Script>Edit and Test123 bot, at least for changing State names, Quotient operators and inside Equations.
EDIT: It works! The HelloWorld, I was copying the syntax from the ":left" case in PlusStateMachine using a colon instead of quotes for my cases. It should be 'case "helloworld" goto HellowWorldState;'.
EDIT: Another minor page bug is if two scripts are open for editing, and one is saved/compiled, the other is deleted. This is really a problem when copying from one browser tabbed script to another the last opened for editing will be overwritten.
EDIT: When 're-selecting' the bot, the page recognizes if I go to 'admin' but not 'scripts' of the row of links along the top of the 'not bot selected' page.
// Initial Self programmed state machine for Comprehension
// This state machine is used by the bot to program itself.
case :input goto State:sentenceState for each #word of :sentence;
set #input to :sentence;
set #speaker to :speaker;
set #conversation to :conversation;
set #target to :target;
set #instantiation to #sentence;
do (assign :response to (new #sentence));
do (append "Hello World" to #word of :response);
case "helloworld" goto State:HelloWorldState;
case "helloappend" goto State:HelloWorldState2;
do (append "!" to #word of :response);
append "appended" to #word of :response,
assign :result to (call #add on #Calculator with (1, 1)),
assign :number to :result,
append :result to #word of :response