1
-----------------------------------------------------------------------
2
-----------------------------------------------------------------------
4
with Basic_Types; use Basic_Types;
7
-- Types and constants specific to Source Navigator.
9
type All_Table_Types is
10
(BY, -- No longer used
12
FIL, -- Global per-file information
14
TO, -- Global cross-references
17
COM, -- common block (Fortran)
19
COV, -- common variable (Fortran)
22
FD, -- function declaration
25
GV, -- global variable
28
IV, -- instance variable
31
MD, -- method declaration
32
MI, -- method implementation
33
SU, -- subroutine (Fortran)
35
TA, -- template argument
39
Undef -- Undefined (leave last)
41
-- Source Navigator DB tables types.
42
-- see dbutils.c::SN_symbol_types and sn.h for more information
44
subtype Table_Type is All_Table_Types range BY .. UD;
45
subtype Symbol_Type is All_Table_Types range CL .. Undef;
47
Max_Src_Line_Length : constant Integer := 4096;
48
-- Specifies the maximum line length for arbitrary source file.
52
Column : Visible_Column_Type;
53
-- ??? Is this the right type ?
55
-- Position between symbols in source
57
Invalid_Point : constant Point := (-1, -1);
58
Predefined_Point : constant Point := (Integer'Last,
59
Visible_Column_Type'Last);
61
Invalid_String : constant String := "";
63
function "<" (P1, P2 : Point) return Boolean;
64
-- LessThan operation for operands of Point type
66
type Segment is record
71
Invalid_Segment : constant Segment := (-1, -1);
72
Empty_Segment : constant Segment := (1, 0);
74
function Length (S : Segment) return Integer;
76
type SN_Attributes is mod 2**32;
79
SN_PRIVATE : constant SN_Attributes := 16#000001#;
80
SN_PROTECTED : constant SN_Attributes := 16#000002#;
81
SN_PUBLIC : constant SN_Attributes := 16#000004#;
82
SN_STATIC : constant SN_Attributes := 16#000008#;
83
SN_VIRTUAL : constant SN_Attributes := 16#001000#;
85
SN_ABSTRACT : constant SN_Attributes := 16#000010#;
86
SN_FINAL : constant SN_Attributes := 16#000020#;
87
SN_NATIVE : constant SN_Attributes := 16#000040#;
88
SN_SYNCHRONIZED : constant SN_Attributes := 16#000080#;
89
SN_VOLATILE : constant SN_Attributes := 16#000100#;
90
SN_TRANSIENT : constant SN_Attributes := 16#000200#;
91
SN_INTERFACE : constant SN_Attributes := 16#000400#;
92
SN_IMPLEMENTS : constant SN_Attributes := 16#000800#;
93
SN_INLINE : constant SN_Attributes := 16#002000#;
94
SN_CONSTRUCTOR : constant SN_Attributes := 16#004000#;
95
SN_DESTRUCTOR : constant SN_Attributes := SN_CONSTRUCTOR;
96
SN_PUREVIRTUAL : constant SN_Attributes := 16#008000# or SN_VIRTUAL;
97
SN_STRUCT_DEF : constant SN_Attributes := 16#010000#;
99
SN_OVERRIDE : constant SN_Attributes := 16#20000#;
100
SN_OVERLOADED : constant SN_Attributes := 16#40000#;
101
SN_TEMPLATE : constant SN_Attributes := 16#80000#;
103
-- Template argument types
104
SN_TA_TYPE : constant SN_Attributes := 0;
105
SN_TA_VALUE : constant SN_Attributes := 1;
106
SN_TA_TEMPLATE : constant SN_Attributes := 2;
109
SN_TYPE_DEF : constant SN_Attributes := 1;
110
SN_CLASS_DEF : constant SN_Attributes := 2;
111
SN_MBR_FUNC_DEF : constant SN_Attributes := 3;
112
SN_MBR_VAR_DEF : constant SN_Attributes := 4;
113
SN_ENUM_DEF : constant SN_Attributes := 5;
114
SN_CONS_DEF : constant SN_Attributes := 6;
115
SN_MACRO_DEF : constant SN_Attributes := 7;
116
SN_FUNC_DEF : constant SN_Attributes := 8;
117
SN_SUBR_DEF : constant SN_Attributes := 9;
118
SN_GLOB_VAR_DEF : constant SN_Attributes := 10;
119
SN_COMMON_DEF : constant SN_Attributes := 11;
120
SN_COMMON_MBR_VAR_DEF : constant SN_Attributes := 12;
121
SN_CLASS_INHERIT : constant SN_Attributes := 13;
122
SN_FILE_SYMBOLS : constant SN_Attributes := 14;
123
SN_CROSS_REF_BY : constant SN_Attributes := 15;
124
SN_CROSS_REF : constant SN_Attributes := 16;
125
SN_MBR_FUNC_DCL : constant SN_Attributes := 17;
126
SN_FUNC_DCL : constant SN_Attributes := 18;
127
SN_ENUM_CONST_DEF : constant SN_Attributes := 19;
128
SN_UNION_DEF : constant SN_Attributes := 20;
129
SN_FRIEND_DCL : constant SN_Attributes := 21;
130
SN_NAMESPACE_DEF : constant SN_Attributes := 22;
131
SN_EXCEPTION_DEF : constant SN_Attributes := 23;
132
SN_LOCAL_VAR_DEF : constant SN_Attributes := 24;
133
SN_VAR_DCL : constant SN_Attributes := 25;
134
SN_INCLUDE_DEF : constant SN_Attributes := 26;
135
SN_COMMENT_DEF : constant SN_Attributes := 27;
136
SN_CROSS_REF_CPP : constant SN_Attributes := 28;
137
SN_REF_UNDEFINED : constant SN_Attributes := 29;
138
SN_CROSS_REF_FILE : constant SN_Attributes := 30;
140
-- Cross reference values.
141
SN_REF_TO_TYPEDEF : constant SN_Attributes := SN_TYPE_DEF;
142
SN_REF_TO_DEFINE : constant SN_Attributes := SN_MACRO_DEF;
143
SN_REF_TO_ENUM : constant SN_Attributes := SN_ENUM_CONST_DEF;
144
SN_REF_TO_STRUCT : constant SN_Attributes := SN_STRUCT_DEF;
145
SN_REF_TO_UNION : constant SN_Attributes := SN_UNION_DEF;
146
SN_REF_TO_CLASS : constant SN_Attributes := SN_CLASS_DEF;
147
SN_REF_TO_FUNCTION : constant SN_Attributes := SN_FUNC_DEF;
148
SN_REF_TO_MBR_FUNC : constant SN_Attributes := SN_MBR_FUNC_DEF;
149
SN_REF_TO_MBR_VAR : constant SN_Attributes := SN_MBR_VAR_DEF;
150
SN_REF_TO_COMM_VAR : constant SN_Attributes := SN_COMMON_MBR_VAR_DEF;
151
SN_REF_TO_CONSTANT : constant SN_Attributes := SN_CONS_DEF;
152
SN_REF_TO_SUBROUTINE : constant SN_Attributes := SN_SUBR_DEF;
153
SN_REF_TO_GLOB_VAR : constant SN_Attributes := SN_GLOB_VAR_DEF;
154
SN_REF_TO_LOCAL_VAR : constant SN_Attributes := SN_LOCAL_VAR_DEF;
155
-- SN_REF_TO_TEMPLATE : constant SN_Attributes := SN_TEMPLATE_DEF;
156
SN_REF_TO_NAMESPACE : constant SN_Attributes := SN_NAMESPACE_DEF;
157
SN_REF_TO_EXCEPTION : constant SN_Attributes := SN_EXCEPTION_DEF;
158
SN_REF_TO_LABEL : constant SN_Attributes := SN_SUBR_DEF;
160
SN_REF_SCOPE_LOCAL : constant SN_Attributes := 0;
161
SN_REF_SCOPE_GLOBAL : constant SN_Attributes := 1;
163
-- Variable references
164
SN_REF_READ : constant SN_Attributes := 0;
165
SN_REF_WRITE : constant SN_Attributes := 1;
166
SN_REF_PASS : constant SN_Attributes := 2;
167
SN_REF_UNUSED : constant SN_Attributes := 3;