~ubuntu-branches/ubuntu/karmic/erlang/karmic-security

« back to all changes in this revision

Viewing changes to lib/ic/src/ic_forms.erl

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-06-11 12:18:07 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090611121807-ks7eb4xrt7dsysgx
Tags: 1:13.b.1-dfsg-1
* New upstream release.
* Removed unnecessary dependency of erlang-os-mon on erlang-observer and
  erlang-tools and added missing dependency of erlang-nox on erlang-os-mon
  (closes: #529512).
* Removed a patch to eunit application because the bug was fixed upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
%%
48
48
%%--------------------------------------------------------------------
49
49
 
50
 
get_dimension(X) when record(X, array)       -> 
 
50
get_dimension(X) when is_record(X, array)       -> 
51
51
    [element(3, L) || L <- X#array.size].
52
52
 
53
53
%% Should find the name hidden in constructs
54
54
get_id( [{'<identifier>', _LineNo, Id}] ) -> Id;
55
55
get_id( {'<identifier>', _LineNo, Id} ) -> Id;
56
 
get_id(Id) when list(Id), integer(hd(Id)) -> Id;
57
 
get_id(X) when record(X, scoped_id) -> X#scoped_id.id;
58
 
get_id(X) when record(X, array) -> get_id(X#array.id);
 
56
get_id(Id) when is_list(Id) andalso is_integer(hd(Id)) -> Id;
 
57
get_id(X) when is_record(X, scoped_id) -> X#scoped_id.id;
 
58
get_id(X) when is_record(X, array) -> get_id(X#array.id);
59
59
get_id( {'<string_literal>', _LineNo, Id} ) -> Id;
60
60
get_id( {'<wstring_literal>', _LineNo, Id} ) -> Id.
61
61
 
62
62
get_line([{'<identifier>', LineNo, _Id}]) -> LineNo;
63
63
get_line({'<identifier>', LineNo, _Id}) -> LineNo;
64
 
get_line(X) when record(X, scoped_id) -> X#scoped_id.line;
65
 
get_line(X) when record(X, module)      -> get_line(X#module.id);
66
 
get_line(X) when record(X, interface)   -> get_line(X#interface.id);
67
 
get_line(X) when record(X, forward)     -> get_line(X#forward.id);
68
 
get_line(X) when record(X, const)       -> get_line(X#const.id);
69
 
get_line(X) when record(X, typedef)     -> get_line(X#typedef.id);
70
 
get_line(X) when record(X, struct)      -> get_line(X#struct.id);
71
 
get_line(X) when record(X, member)      -> get_line(X#member.id);
72
 
get_line(X) when record(X, union)       -> get_line(X#union.id);
73
 
get_line(X) when record(X, case_dcl)    -> get_line(X#case_dcl.id);
74
 
get_line(X) when record(X, enum)        -> get_line(X#enum.id);
75
 
get_line(X) when record(X, enumerator)  -> get_line(X#enumerator.id);
76
 
get_line(X) when record(X, array)       -> get_line(X#array.id);
77
 
get_line(X) when record(X, attr)        -> get_line(X#attr.id);
78
 
get_line(X) when record(X, except)      -> get_line(X#except.id);
79
 
get_line(X) when record(X, op)          -> get_line(X#op.id);
80
 
get_line(X) when record(X, param)       -> get_line(X#param.id);
81
 
get_line(X) when record(X, id_of)       -> get_line(X#id_of.id);
 
64
get_line(X) when is_record(X, scoped_id) -> X#scoped_id.line;
 
65
get_line(X) when is_record(X, module)      -> get_line(X#module.id);
 
66
get_line(X) when is_record(X, interface)   -> get_line(X#interface.id);
 
67
get_line(X) when is_record(X, forward)     -> get_line(X#forward.id);
 
68
get_line(X) when is_record(X, const)       -> get_line(X#const.id);
 
69
get_line(X) when is_record(X, typedef)     -> get_line(X#typedef.id);
 
70
get_line(X) when is_record(X, struct)      -> get_line(X#struct.id);
 
71
get_line(X) when is_record(X, member)      -> get_line(X#member.id);
 
72
get_line(X) when is_record(X, union)       -> get_line(X#union.id);
 
73
get_line(X) when is_record(X, case_dcl)    -> get_line(X#case_dcl.id);
 
74
get_line(X) when is_record(X, enum)     -> get_line(X#enum.id);
 
75
get_line(X) when is_record(X, enumerator)       -> get_line(X#enumerator.id);
 
76
get_line(X) when is_record(X, array)       -> get_line(X#array.id);
 
77
get_line(X) when is_record(X, attr)     -> get_line(X#attr.id);
 
78
get_line(X) when is_record(X, except)   -> get_line(X#except.id);
 
79
get_line(X) when is_record(X, op)               -> get_line(X#op.id);
 
80
get_line(X) when is_record(X, param)       -> get_line(X#param.id);
 
81
get_line(X) when is_record(X, id_of)       -> get_line(X#id_of.id);
82
82
 
83
83
get_line({'or', T1, _T2}) ->    get_line(T1);
84
84
get_line({'xor', T1, _T2}) ->   get_line(T1);
93
93
get_line({{'-', _Line}, T}) ->  get_line(T);
94
94
get_line({{'+', _Line}, T}) ->  get_line(T);
95
95
get_line({{'~', _Line}, T}) ->  get_line(T);
96
 
get_line({_, X, _}) when integer(X) -> X;
97
 
get_line({_A, N}) when integer(N)       -> N;
 
96
get_line({_, X, _}) when is_integer(X) -> X;
 
97
get_line({_A, N}) when is_integer(N)    -> N;
98
98
get_line(_)                             -> -1.
99
99
 
100
100
 
111
111
%%      and the type of a typedef is its name.
112
112
%%
113
113
 
114
 
get_id2(X) when record(X, module)       -> get_id(X#module.id);
115
 
get_id2(X) when record(X, interface)    -> get_id(X#interface.id);
116
 
get_id2(X) when record(X, forward)      -> get_id(X#forward.id);
117
 
get_id2(X) when record(X, const)        -> get_id(X#const.id);
118
 
get_id2(X) when record(X, typedef)      -> get_id(hd(X#typedef.id));
119
 
get_id2(X) when record(X, struct)       -> get_id(X#struct.id);
120
 
get_id2(X) when record(X, member)       -> get_id(hd(X#member.id));
121
 
get_id2(X) when record(X, union)        -> get_id(X#union.id);
122
 
get_id2(X) when record(X, case_dcl)     -> get_id(X#case_dcl.id);
123
 
get_id2(X) when record(X, enum)         -> get_id(X#enum.id);
124
 
get_id2(X) when record(X, enumerator)   -> get_id(X#enumerator.id);
125
 
get_id2(X) when record(X, array)        -> get_id(X#array.id);
126
 
get_id2(X) when record(X, attr)         -> get_id(X#attr.id);
127
 
get_id2(X) when record(X, except)       -> get_id(X#except.id);
128
 
get_id2(X) when record(X, op)           -> get_id(X#op.id);
129
 
get_id2(X) when record(X, param)        -> get_id(X#param.id);
130
 
get_id2(X) when record(X, type_dcl)     -> get_id2(X#type_dcl.type);
131
 
get_id2(X) when record(X, scoped_id)    -> ic_symtab:scoped_id_strip(X);
132
 
get_id2(X) when record(X, preproc)      -> get_id(X#preproc.id);
133
 
get_id2(X) when record(X, id_of)        -> get_id2(X#id_of.id);
 
114
get_id2(X) when is_record(X, module)       -> get_id(X#module.id);
 
115
get_id2(X) when is_record(X, interface)    -> get_id(X#interface.id);
 
116
get_id2(X) when is_record(X, forward)      -> get_id(X#forward.id);
 
117
get_id2(X) when is_record(X, const)        -> get_id(X#const.id);
 
118
get_id2(X) when is_record(X, typedef)      -> get_id(hd(X#typedef.id));
 
119
get_id2(X) when is_record(X, struct)       -> get_id(X#struct.id);
 
120
get_id2(X) when is_record(X, member)       -> get_id(hd(X#member.id));
 
121
get_id2(X) when is_record(X, union)        -> get_id(X#union.id);
 
122
get_id2(X) when is_record(X, case_dcl)     -> get_id(X#case_dcl.id);
 
123
get_id2(X) when is_record(X, enum)              -> get_id(X#enum.id);
 
124
get_id2(X) when is_record(X, enumerator)        -> get_id(X#enumerator.id);
 
125
get_id2(X) when is_record(X, array)        -> get_id(X#array.id);
 
126
get_id2(X) when is_record(X, attr)              -> get_id(X#attr.id);
 
127
get_id2(X) when is_record(X, except)       -> get_id(X#except.id);
 
128
get_id2(X) when is_record(X, op)                -> get_id(X#op.id);
 
129
get_id2(X) when is_record(X, param)        -> get_id(X#param.id);
 
130
get_id2(X) when is_record(X, type_dcl)     -> get_id2(X#type_dcl.type);
 
131
get_id2(X) when is_record(X, scoped_id) -> ic_symtab:scoped_id_strip(X);
 
132
get_id2(X) when is_record(X, preproc)   -> get_id(X#preproc.id);
 
133
get_id2(X) when is_record(X, id_of)     -> get_id2(X#id_of.id);
134
134
get_id2(X) -> get_id(X).
135
135
 
136
 
get_body(X) when record(X, module)      -> X#module.body;
137
 
get_body(X) when record(X, interface)   -> X#interface.body;
138
 
get_body(X) when record(X, struct)      -> X#struct.body;
139
 
get_body(X) when record(X, union)       -> X#union.body;
140
 
get_body(X) when record(X, enum)        -> X#enum.body;
141
 
get_body(X) when record(X, typedef)     -> X#typedef.type; % See Note 
142
 
get_body(X) when record(X, except)      -> X#except.body.
 
136
get_body(X) when is_record(X, module)      -> X#module.body;
 
137
get_body(X) when is_record(X, interface)   -> X#interface.body;
 
138
get_body(X) when is_record(X, struct)      -> X#struct.body;
 
139
get_body(X) when is_record(X, union)       -> X#union.body;
 
140
get_body(X) when is_record(X, enum)        -> X#enum.body;
 
141
get_body(X) when is_record(X, typedef)     -> X#typedef.type; % See Note 
 
142
get_body(X) when is_record(X, except)      -> X#except.body.
143
143
 
144
 
get_type(X) when record(X, const)       -> X#const.type;
145
 
get_type(X) when record(X, type_dcl)    -> X#type_dcl.type;
146
 
get_type(X) when record(X, typedef)     -> X#typedef.id; % See Note 
147
 
get_type(X) when record(X, member)      -> X#member.type;
148
 
get_type(X) when record(X, union)       -> X#union.type;
149
 
get_type(X) when record(X, case_dcl)    -> X#case_dcl.type;
150
 
get_type(X) when record(X, sequence)    -> X#sequence.type;
151
 
get_type(X) when record(X, attr)        -> X#attr.type;
152
 
get_type(X) when record(X, op)          -> X#op.type;
153
 
get_type(X) when record(X, param)       -> X#param.type.
 
144
get_type(X) when is_record(X, const)       -> X#const.type;
 
145
get_type(X) when is_record(X, type_dcl)    -> X#type_dcl.type;
 
146
get_type(X) when is_record(X, typedef)     -> X#typedef.id; % See Note 
 
147
get_type(X) when is_record(X, member)      -> X#member.type;
 
148
get_type(X) when is_record(X, union)       -> X#union.type;
 
149
get_type(X) when is_record(X, case_dcl)    -> X#case_dcl.type;
 
150
get_type(X) when is_record(X, sequence)    -> X#sequence.type;
 
151
get_type(X) when is_record(X, attr)        -> X#attr.type;
 
152
get_type(X) when is_record(X, op)               -> X#op.type;
 
153
get_type(X) when is_record(X, param)       -> X#param.type.
154
154
%%get_type(X) when record(X, id_of)       -> get_type(X#id_of.type).
155
155
 
156
156
%% Temporary place
157
 
get_tk(X) when record(X, interface)  -> X#interface.tk;
158
 
get_tk(X) when record(X, forward)    -> X#forward.tk;
159
 
get_tk(X) when record(X, const)      -> X#const.tk;
160
 
get_tk(X) when record(X, type_dcl)   -> X#type_dcl.tk;
161
 
get_tk(X) when record(X, typedef)    -> X#typedef.tk;
162
 
get_tk(X) when record(X, struct)     -> X#struct.tk;
163
 
get_tk(X) when record(X, union)      -> X#union.tk;
164
 
get_tk(X) when record(X, enum)       -> X#enum.tk;
165
 
get_tk(X) when record(X, attr)       -> X#attr.tk;
166
 
get_tk(X) when record(X, except)     -> X#except.tk;
167
 
get_tk(X) when record(X, op)         -> X#op.tk;
168
 
get_tk(X) when record(X, id_of)      -> X#id_of.tk;
169
 
get_tk(X) when record(X, param)      -> X#param.tk.
 
157
get_tk(X) when is_record(X, interface)  -> X#interface.tk;
 
158
get_tk(X) when is_record(X, forward)    -> X#forward.tk;
 
159
get_tk(X) when is_record(X, const)      -> X#const.tk;
 
160
get_tk(X) when is_record(X, type_dcl)   -> X#type_dcl.tk;
 
161
get_tk(X) when is_record(X, typedef)    -> X#typedef.tk;
 
162
get_tk(X) when is_record(X, struct)     -> X#struct.tk;
 
163
get_tk(X) when is_record(X, union)      -> X#union.tk;
 
164
get_tk(X) when is_record(X, enum)       -> X#enum.tk;
 
165
get_tk(X) when is_record(X, attr)       -> X#attr.tk;
 
166
get_tk(X) when is_record(X, except)     -> X#except.tk;
 
167
get_tk(X) when is_record(X, op)         -> X#op.tk;
 
168
get_tk(X) when is_record(X, id_of)      -> X#id_of.tk;
 
169
get_tk(X) when is_record(X, param)      -> X#param.tk.
170
170
 
171
171
 
172
172
%% Get idlist returns the list of identifiers found in typedefs, case
173
173
%% dcls etc.
174
 
get_idlist(X) when record(X, typedef)   -> X#typedef.id;
175
 
get_idlist(X) when record(X, member)    -> X#member.id;
176
 
get_idlist(X) when record(X, case_dcl)  -> X#case_dcl.label;
177
 
get_idlist(X) when record(X, attr)      -> X#attr.id.
178
 
 
179
 
 
180
 
is_oneway(X) when record(X, op)  ->
 
174
get_idlist(X) when is_record(X, typedef)        -> X#typedef.id;
 
175
get_idlist(X) when is_record(X, member) -> X#member.id;
 
176
get_idlist(X) when is_record(X, case_dcl)       -> X#case_dcl.label;
 
177
get_idlist(X) when is_record(X, attr)   -> X#attr.id.
 
178
 
 
179
 
 
180
is_oneway(X) when is_record(X, op)  ->
181
181
    case  X#op.oneway of
182
182
        {oneway, _} -> true;
183
183
        _ -> false
226
226
    end.
227
227
    
228
228
 
229
 
get_type_code2(_, _, X) when record(X, interface)  -> X#interface.tk;
230
 
get_type_code2(_, _, X) when record(X, forward)    -> X#forward.tk;
231
 
get_type_code2(_, _, X) when record(X, const)      -> X#const.tk;
232
 
get_type_code2(_, _, X) when record(X, type_dcl)   -> X#type_dcl.tk;
233
 
get_type_code2(_, _, X) when record(X, typedef)    ->
 
229
get_type_code2(_, _, X) when is_record(X, interface)  -> X#interface.tk;
 
230
get_type_code2(_, _, X) when is_record(X, forward)    -> X#forward.tk;
 
231
get_type_code2(_, _, X) when is_record(X, const)      -> X#const.tk;
 
232
get_type_code2(_, _, X) when is_record(X, type_dcl)   -> X#type_dcl.tk;
 
233
get_type_code2(_, _, X) when is_record(X, typedef)    ->
234
234
    Id = X#typedef.id,
235
235
    ET = X#typedef.tk,
236
 
    if list(Id) ->
 
236
    if is_list(Id) ->
237
237
            Head = hd(Id),
238
 
            if tuple(Head) ->
 
238
            if is_tuple(Head) ->
239
239
                    case element(1,Head) of
240
240
                        array ->
241
241
                            get_array_tc(ET, element(3,Head));
249
249
            ET
250
250
    end;
251
251
 
252
 
get_type_code2(_, _, X) when record(X, struct)     -> X#struct.tk;
253
 
get_type_code2(_, _, X) when record(X, union)      -> X#union.tk;
254
 
get_type_code2(_, _, X) when record(X, enum)       -> X#enum.tk;
255
 
get_type_code2(_, _, X) when record(X, attr)       -> X#attr.tk;
256
 
get_type_code2(_, _, X) when record(X, except)     -> X#except.tk;
257
 
get_type_code2(_, _, X) when record(X, op)         -> X#op.tk;
258
 
get_type_code2(_, _, X) when record(X, id_of)      -> X#id_of.tk;
259
 
get_type_code2(_, _, X) when record(X, param)      -> X#param.tk;
 
252
get_type_code2(_, _, X) when is_record(X, struct)     -> X#struct.tk;
 
253
get_type_code2(_, _, X) when is_record(X, union)      -> X#union.tk;
 
254
get_type_code2(_, _, X) when is_record(X, enum)       -> X#enum.tk;
 
255
get_type_code2(_, _, X) when is_record(X, attr)       -> X#attr.tk;
 
256
get_type_code2(_, _, X) when is_record(X, except)     -> X#except.tk;
 
257
get_type_code2(_, _, X) when is_record(X, op)         -> X#op.tk;
 
258
get_type_code2(_, _, X) when is_record(X, id_of)      -> X#id_of.tk;
 
259
get_type_code2(_, _, X) when is_record(X, param)      -> X#param.tk;
260
260
 
261
 
get_type_code2(G, N, X) when record(X, member) ->
 
261
get_type_code2(G, N, X) when is_record(X, member) ->
262
262
    ET = get_type_code(G, N, element(2,X)),
263
263
    Id = element(3,X),
264
264
 
265
 
    if list(Id) ->
 
265
    if is_list(Id) ->
266
266
            Head = hd(Id),
267
 
            if tuple(Head) ->
 
267
            if is_tuple(Head) ->
268
268
                    case element(1,Head) of
269
269
                        array ->
270
270
                            get_array_tc(ET, element(3,Head));
278
278
            ET
279
279
    end;
280
280
 
281
 
get_type_code2(G, N, X) when record(X, scoped_id) ->
 
281
get_type_code2(G, N, X) when is_record(X, scoped_id) ->
282
282
    element(3,ic_symtab:get_full_scoped_name(G, N, X));
283
283
 
284
 
get_type_code2(G, N, X) when record(X, sequence) -> 
285
 
    if tuple(X#sequence.length) ->
 
284
get_type_code2(G, N, X) when is_record(X, sequence) -> 
 
285
    if is_tuple(X#sequence.length) ->
286
286
            {tk_sequence, 
287
287
             get_type_code(G, N, X#sequence.type), 
288
288
             list_to_integer(element(3,X#sequence.length))};
298
298
 
299
299
get_type_code2(_G, _N, {unsigned,{'long long',_}}) -> tk_ulonglong;
300
300
 
301
 
get_type_code2(_G, _N, X) when record(X, fixed) -> 
 
301
get_type_code2(_G, _N, X) when is_record(X, fixed) -> 
302
302
    {tk_fixed, X#fixed.digits, X#fixed.scale};
303
303
 
304
304
get_type_code2(G, N, {X,_}) ->
379
379
    search_included_tk(TK,IR_ID);
380
380
search_included_tk({tk_sequence,TK,_}, IR_ID) ->
381
381
    search_included_tk(TK,IR_ID);
382
 
search_included_tk(TK, _IR_ID) when atom(TK) ->
 
382
search_included_tk(TK, _IR_ID) when is_atom(TK) ->
383
383
    false;
384
384
search_included_tk(TK, IR_ID) ->
385
385
    case element(2,TK) == IR_ID of
394
394
 
395
395
%% This is similar to get_id2 but in everything else 
396
396
%% than a module it will generate an id prefixed  
397
 
get_java_id(Id) when list(Id) ->
 
397
get_java_id(Id) when is_list(Id) ->
398
398
    case java_keyword_coalition(Id) of
399
399
        true ->
400
400
            "_" ++ Id;
401
401
        false ->
402
402
            Id
403
403
    end;
404
 
get_java_id(Id_atom) when atom(Id_atom) ->
 
404
get_java_id(Id_atom) when is_atom(Id_atom) ->
405
405
    Id = atom_to_list(Id_atom),
406
406
    case java_keyword_coalition(Id) of
407
407
        true ->