File: modifier.h

package info (click to toggle)
asymptote 3.05%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,420 kB
  • sloc: cpp: 172,663; ansic: 69,690; python: 14,957; sh: 5,605; javascript: 4,871; lisp: 1,507; perl: 1,417; makefile: 1,026; yacc: 610; lex: 449; xml: 182; asm: 8
file content (42 lines) | stat: -rw-r--r-- 924 bytes parent folder | download | duplicates (2)
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
/*****
 * 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,
  AUTOUNRAVEL,
};

} // namespace trans

GC_DECLARE_PTRFREE(trans::permission);
GC_DECLARE_PTRFREE(trans::modifier);

#endif