1 ! Copyright (C) 2009 Maxim Savchenko
2 ! See http://factorcode.org/license.txt for BSD license.
4 USING: kernel accessors continuations lexer vocabs vocabs.parser
5 combinators.short-circuit sandbox tools.test ;
9 << "sandbox.syntax" load-vocab drop >>
10 USE: sandbox.syntax.private
12 : run-script ( x lines -- y )
13 H{ { "kernel" "kernel" } { "math" "math" } { "sequences" "sequences" } }
14 parse-sandbox call( x -- x! ) ;
20 "! Simple factorial example"
21 "APPLYING: kernel math sequences ;"
22 "1 swap [ 1+ * ] each"
29 "! Jailbreak attempt with USE:"
31 "\"Hello world!\" print"
37 [ error>> condition? ]
38 [ error>> error>> no-word-error? ]
39 [ error>> error>> name>> "USE:" = ]
46 "! Jailbreak attempt with unauthorized APPLY:"
48 "\"Hello world!\" print"
54 [ error>> sandbox-error? ]
55 [ error>> vocab>> "io" = ]