blob: 856da9d5c0efb19afdf185f9e8168a640138bc09 (
plain)
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
|
/*****
* modifier.h
* Andy Hammerlindl 2002/08/29
*
* Permissions for variables.
* PUBLIC means the variable can be read or written anywhere.
* RESTRICTED means it can be read anywhere, but written only in the record.
* PRIVATE means it can only be accessed in the record.
*
* The modifiers static declares that variable to be allocated, are allocated in
* the parent's frame, and code is translated into the parent's frame.
*****/
#ifndef MODIFIER_H
#define MODIFIER_H
namespace trans {
// Permission tokens defined in camp.y for accessing a variable outside of
// its lexically enclosing record.
enum permission {
RESTRICTED,
PUBLIC,
PRIVATE
};
const permission DEFAULT_PERM=PUBLIC;
enum modifier {
DEFAULT_STATIC,
DEFAULT_DYNAMIC,
EXPLICIT_STATIC,
EXPLICIT_DYNAMIC
};
} // namespace trans
GC_DECLARE_PTRFREE(trans::permission);
GC_DECLARE_PTRFREE(trans::modifier);
#endif
|