]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/apple-script/apple-script.factor
elevate: make it load/compile
[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: assocs cocoa cocoa.application cocoa.classes kernel
4 multiline parser sequences strings 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     [ 1string apple-script-charmap ?at drop ] { } map-as
19     "" concat-as "\"" dup surround ;
20
21 : run-apple-script ( str -- )
22     [ NSAppleScript -> alloc ] dip
23     <NSString> -> initWithSource: -> autorelease
24     f -> executeAndReturnError: drop ;
25
26 SYNTAX: APPLESCRIPT:
27     scan-new-word scan-object
28     [ run-apple-script ] curry ( -- ) define-declared ;