Constant REPL
Source pub const REPL: &str = "\n\"fast.spl\" import\n\nfunc main { mega | with args ;\n \"Welcome to the SPL REPL!\" println\n \"Enter any code after the cursor to execute it.\" println\n \"fast.spl (for shell-like functions) is included.\\n\" println\n\n \"REPL\" =program-name\n while { 1 } {\n catch {\n def line \"\" =line\n while { line repl-is-complete not } {\n def s\n line \" > \" print readln =s\n s \"\\n\" concat concat =line\n }\n line _barray =line\n line:sub<0 line:len 1 -> _str =line\n \"!!-end\" line:contains if {\n 2 stop\n }\n \"\\n\" line:contains if {\n \"\" println\n line println\n \".\" println\n }\n line dyn-read exec2 \"\\n\" print\n } \n { with err ;\n err:message dup null eq if {\n pop\n \"Uncaught error.\"\n } err:trace\n\n with msg trace ;\n program-name dup if {\n program-name print \" panicked at:\" println\n } not if {\n \"Program panicked at:\" println\n }\n &println trace:foreach \n \"\\nPanic message:\" println\n \" \" print msg println\n \"\\nRecovering.\" println\n }\n }\n}\n\nfunc repl-is-complete { bool | with line ;\n \"!!-end\" line:contains\n 0 line _array :foreach<{ | with char ; \n char \"{\" :_char eq \n char \"(\" :_char eq or \n char \"<\" :_char eq or \n char \"[\" :_char eq or \n if {\n ++\n }\n char \"}\" :_char eq \n char \")\" :_char eq or \n char \">\" :_char eq or \n char \"]\" :_char eq or \n if {\n --\n }\n }> not\n or\n \"\" line eq not and\n}\n";