REPL

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";