]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/apple-script/apple-script.factor
94cff2da82a6dc4eaa59ab0acabf3ecffe10d88c
[factor.git] / basis / cocoa / apple-script / apple-script.factor
1 ! Copyright (C) 2013 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
3 USING: cocoa cocoa.application cocoa.classes kernel parser
4 multiline words ;
5 IN: cocoa.apple-script
6
7 <PRIVATE
8 CONSTANT: apple-script-charmap H{
9     { "\n" "\\n" }
10     { "\r" "\\r" }
11     { "\t" "\\t" }
12     { "\"" "\\\"" }
13     { "\\" "\\\\" }
14 }
15 PRIVATE>
16
17 : quote-apple-script ( str -- str' )
18     [
19       1string [ apple-script-charmap at ] [ ] bi or
20     ] { } map-as
21     "" join "\"" dup surround ;
22
23 : run-apple-script ( str -- )
24     [ NSAppleScript -> alloc ] dip
25     <NSString> -> initWithSource: -> autorelease
26     f -> executeAndReturnError: drop ;
27
28 SYNTAX: APPLESCRIPT:
29     scan-new-word scan-object
30     [ run-apple-script ] curry ( -- ) define-declared ;