static void ctxProcessStatement(L tok) { tok = ctxStringProcessing(tok); if (jfind(tok, " = true;") == 1) { ctxSetVar(tok.get(1), "true"); ctxProcessAction(subList(tok, 8)); ret; } if (jfind(tok, "string = ") == 1) tok = subList(tok, 2); if (jfind(tok, " = ") == 1) { int semicolon = tok.indexOf(";"); CtxExpr e = ctxParseExpression(join(subList(tok, 5, semicolon-1))); ctxSetVar(tok.get(1), e.str()); ctxProcessAction(subList(tok, semicolon+1)); ret; } if (jfind(tok, "agent.say(*);") == 1 && isQuoted(tok.get(9))) { ctxAppendOutput(unquoteCtx(tok.get(9))); ctxProcessAction(subList(tok, 14)); ret; } if (jmatch("jumpaway();", tok)) { print("jumpaway."); ctxContext().jumpaway = true; ret; } if (jmatch("thinkagain();", tok)) { print("thinkagain."); ctxContext().thinkagain = true; ret; } if (jfind(tok, "agent.openUrl(*);") == 1) { S url = ctxGetVar(tok.get(9)); ctxContext().urlsToOpen.add(url); ctxProcessAction(subList(tok, 14)); ret; } print("ctxProcessStatement unknown: " + structForUser(join(tok))); }