forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfile.mlc
More file actions
125 lines (90 loc) · 3.14 KB
/
file.mlc
File metadata and controls
125 lines (90 loc) · 3.14 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
/*
Copyright (C) 2014-2015 Runtime Revolution 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 file i/o operations in modular 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 filename.
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 precedence 2
"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 filename.
Description:
Deletes the specified file.
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 filename.
Description:
Creates a new, empty directory.
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 filename.
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 filename.
Description:
Creates a new, empty directory.
Tags: IO, Filesystem
*/
syntax GetDirectoryEntries is prefix operator with precedence 5
"the" "entries" "of" "directory" <Directory: Expression>
begin
MCFileExecGetDirectoryEntries(Directory, output)
end syntax
--
end module