-- <<<- global theScriptXPage := object (WebPage) title: "ScriptX Page" base: theSXPrefix contents object (WebForm) formMethod: "get" contents object (WebHiddenValue) name: "dialog" value: "scriptx" end object (WebTextArea) name: "code" rows: 8 cols: 80 contents "-- Type ScriptX code here!\r" end object (WebSubmitInput) contents "Compile and Execute ScriptX Code" end end end registerService theWebServer \ (new WebService \ name: "ScriptX" \ about: "Talk to a real live ScriptX!" \ handler: (service request params -> HTML theScriptXPage)) registerDialog theWebServer \ (new WebDialog \ name: "ScriptX" \ handler: (dialog props params -> local code := props[@code] if (code == empty) then ( serviceError theWebServer \ "You've submitted a bogus form!" ) else ( code := decodeURL code webLog theWebServer \ ("Compiling & Executing ScriptX code:\r" + \ code + "\r") guard ( local pars := new AuthoringInputStream \ source: (code as ByteStream) local gene := new ByteCodeGenerator \ module: (getModule @Throwing) local r repeat while (((r := read pars) != undefined) and (r != empty)) do ( local c := compile gene r print (c()) ) ) catching all: caught ok end ) undefined ) ) -- >>>