forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfile.lcb
More file actions
130 lines (94 loc) · 3.44 KB
/
file.lcb
File metadata and controls
130 lines (94 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
Copyright (C) 2014-2015 LiveCode Ltd.
This file is part of LiveCode.
LiveCode is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License v3 as published by the Free
Software Foundation.
LiveCode is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LiveCode. If not see <http://www.gnu.org/licenses/>. */
/**
This module specifies the syntax definitions and bindings for
filesystem operations in LiveCode Builder.
>*Note:* This module is currently experimental and unstable. The
>syntax is likely to change in future versions of LiveCode.
*/
module com.livecode.file
--
public foreign handler MCFileExecGetContents(in File as String, out Contents as Data) returns nothing binds to "<builtin>"
public foreign handler MCFileExecSetContents(in Contents as Data, in File as String) returns nothing binds to "<builtin>"
/**
Summary: The data stored in a file.
File: An expression that evaluates to a filesystem path.
Description:
The raw data stored in a file.
>*Note:* Setting the contents of a file will replace the file with a
>newly-created file with the new contents.
Tags: IO, Filesystem
*/
syntax FileContents is prefix operator with function chunk precedence
"the" "contents" "of" "file" <File: Expression>
begin
MCFileExecGetContents(File, output)
MCFileExecSetContents(input, File)
end syntax
--
public foreign handler MCFileExecDeleteFile(in File as String) returns nothing binds to "<builtin>"
/**
Summary: Delete a file from the filesystem.
File: An expression that evaluates to a filesystem path.
Description:
Deletes the specified file. The file must exist.
Tags: IO, Filesystem
*/
syntax DeleteFile is statement
"delete" "file" <File: Expression>
begin
MCFileExecDeleteFile(File)
end syntax
--
public foreign handler MCFileExecCreateDirectory(in Directory as String) returns nothing binds to "<builtin>"
public foreign handler MCFileExecDeleteDirectory(in Directory as String) returns nothing binds to "<builtin>"
public foreign handler MCFileExecGetDirectoryEntries(in Directory as String, out Entries as List) returns nothing binds to "<builtin>"
/**
Summary: Create a named directory.
Directory: An expression that evaluates to a filesystem path.
Description:
Creates a new, empty directory. The directory must not already exist.
Tags: IO, Filesystem
*/
syntax CreateDirectory is statement
"create" "directory" <Directory: Expression>
begin
MCFileExecCreateDirectory(Directory)
end syntax
/**
Summary: Delete a directory.
Directory: An expression that evaluates to a filesystem path.
Description:
Deletes a directory. The directory must be empty.
Tags: IO, Filesystem
*/
syntax DeleteDirectory is statement
"delete" "directory" <Directory: Expression>
begin
MCFileExecDeleteDirectory(Directory)
end syntax
/**
Summary: List the contents of a directory.
Directory: An expression that evaluates to a filesystem path.
Description:
Returns a List containing the directory entries of a directory. The
directory must exist.
Tags: IO, Filesystem
*/
syntax GetDirectoryEntries is prefix operator with function chunk precedence
"the" "entries" "of" "directory" <Directory: Expression>
begin
MCFileExecGetDirectoryEntries(Directory, output)
end syntax
--
end module