blob: 6fdd72624823f52e9b2b04cf174a53d51f603243 (
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
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
|
# This file contains Icon type specifications.
# The first group of types have special semantics that are not completely
# captured by the specification system.
string{s}: simple
# special form of descriptor
# has RLT return construct with two arguments
integer{i}: simple
# two kinds of dwords
record{R}: simple # really special aggregate
return block_pointer
# special semantics for allocating sub-types
# different sub-types have different components
proc: simple
return block_pointer
# special semantics for allocating sub-types
coexpr{C}: simple
return block_pointer
# special semantics for allocating sub-types
# sub-string trapped variables
tvsubs{sstv}: aggregate(str_var)
# has RTL return construct with three arguments
# variable type with special dereferencing semantics
# table-element trapped variables
tvtbl{tetv}: aggregate(trpd_tbl)
return block_pointer
# variable type with special dereferencing semantics
# The second group of types are required by iconc but have no special
# semantics.
null{n}: simple
cset{c}: simple
return block_pointer
real{r}: simple
return block_pointer
list{L}: aggregate(var lst_elem{LE})
return block_pointer
table{T}: aggregate(tbl_key, var tbl_val{TV}, tbl_dflt)
return block_pointer
# The third group of types appear only in RTL code. They have no special
# semantics nor any special uses by iconc.
file{f}: simple
return block_pointer
set{S}: aggregate(set_elem)
return block_pointer
# integer keyword variables: &random, &trace, &error
kywdint: variable always integer
return descriptor_pointer
# &subject
kywdsubj: variable always string
return descriptor_pointer
# &pos
kywdpos: variable always integer
return descriptor_pointer
# &eventsource, &eventvalue, &eventcode
kywdevent: variable always any_value
return descriptor_pointer
# &window
kywdwin: variable always file ++ null
return descriptor_pointer
# &fg and friends
kywdstr: variable always string
return descriptor_pointer
|