Phasor 3.3.0
Stack VM based Programming Language
Loading...
Searching...
No Matches
main.c
Go to the documentation of this file.
1#define PHASOR_FFI_BUILD_DLL
2#include <PhasorFFI.h>
3#include <stdio.h>
5
6static PhasorValue applescript_run(PhasorVM *, int argc, const PhasorValue *argv)
7{
8 int64_t status = -1;
9 if (argc < 1 || !phasor_is_string(argv[0]))
10 {
11 return phasor_make_int(-1);
12 }
13 const char *script = phasor_to_string(argv[0]);
15 if (result.success)
16 {
17 if (result.output)
18 {
20 freeAppleScriptResult(&result);
21 return ret;
22 }
23
24 freeAppleScriptResult(&result);
25 return phasor_make_int(0);
26 }
27 else
28 {
29 if (result.error)
30 {
31 puts(result.error);
32 }
34 freeAppleScriptResult(&result);
35 return ret;
36 }
37 return phasor_make_int(status);
38}
39
41{
42 api->register_function(vm, "applescript_run", applescript_run);
43}
AppleScriptResult executeAppleScript(const char *script)
Definition AppleScript.m:20
void freeAppleScriptResult(AppleScriptResult *result)
Definition AppleScript.m:54
static bool phasor_is_string(PhasorValue val)
Definition PhasorFFI.h:165
static const char * phasor_to_string(PhasorValue val)
Definition PhasorFFI.h:194
static PhasorValue phasor_make_string(const char *s)
Definition PhasorFFI.h:131
static PhasorValue phasor_make_int(int64_t i)
Definition PhasorFFI.h:115
struct PhasorVM PhasorVM
Phasor Virtual Machine pointer.
Definition PhasorFFI.h:59
#define PHASOR_FFI_EXPORT
Definition PhasorFFI.h:50
static PhasorValue applescript_run(PhasorVM *, int argc, const PhasorValue *argv)
Definition main.c:6
PHASOR_FFI_EXPORT void phasor_plugin_entry(const PhasorAPI *api, PhasorVM *vm)
The one and only entry point for a Phasor plugin.
Definition main.c:40
The collection of API functions that the Phasor host provides to the plugin.
Definition PhasorFFI.h:211
PhasorRegisterFunction register_function
Registers a native C function with the given name.
Definition PhasorFFI.h:213
Represents a value in the Phasor VM.
Definition PhasorFFI.h:79