58
58
%%------------------------------------------------------------
61
except_gen(G, N, X, L) when record(X, except) ->
61
except_gen(G, N, X, L) when is_record(X, except) ->
62
62
N2 = [ic_forms:get_id2(X) | N],
69
69
struct_gen_list(G, N2, ic_forms:get_body(X), L).
71
struct_gen(G, N, X, L) when record(X, struct) ->
71
struct_gen(G, N, X, L) when is_record(X, struct) ->
72
72
N2 = [ic_forms:get_id2(X) | N],
73
73
struct_gen_list(G, N2, ic_forms:get_body(X), L),
74
74
emit_struct(G, N, X, L);
75
struct_gen(G, N, X, L) when record(X, union) ->
75
struct_gen(G, N, X, L) when is_record(X, union) ->
76
76
N2 = [ic_forms:get_id2(X) | N],
84
84
struct_gen_list(G, N2, ic_forms:get_body(X), L)
86
86
emit_union(G, N, X, L);
87
struct_gen(G, N, X, L) when record(X, member) ->
87
struct_gen(G, N, X, L) when is_record(X, member) ->
88
88
struct_gen(G, N, ic_forms:get_type(X), L);
89
struct_gen(G, N, X, L) when record(X, typedef) ->
89
struct_gen(G, N, X, L) when is_record(X, typedef) ->
90
90
struct_gen(G, N, ic_forms:get_body(X), L),
91
91
emit_typedef(G, N, X, L);
92
struct_gen(G, N, X, L) when record(X, type_dcl) ->
92
struct_gen(G, N, X, L) when is_record(X, type_dcl) ->
93
93
struct_gen_list(G, N, ic_forms:get_type(X), L);
94
struct_gen(G, N, X, L) when record(X, case_dcl) ->
94
struct_gen(G, N, X, L) when is_record(X, case_dcl) ->
95
95
struct_gen(G, N, ic_forms:get_type(X), L);
96
struct_gen(G, N, X, L) when record(X, sequence) ->
96
struct_gen(G, N, X, L) when is_record(X, sequence) ->
97
97
struct_gen(G, N, ic_forms:get_type(X), L),
99
struct_gen(G, N, X, L) when record(X, enum) ->
99
struct_gen(G, N, X, L) when is_record(X, enum) ->
100
100
icenum:enum_gen(G, N, X, L);
101
101
struct_gen(_G, _N, _X, _L) ->
262
262
"[" ++ Dim ++ "]" ++ mk_array_name(Dims).
265
emit_struct_member(Fd, G, N, X, Name,{Type,Array}) when record(Array, array)->
265
emit_struct_member(Fd, G, N, X, Name,{Type,Array}) when is_record(Array, array)->
266
266
{_, _, StructTK, _} =
267
267
ic_symtab:get_full_scoped_name(
272
272
Dim = extract_dim(ArrayTK),
273
273
emit(Fd, " ~s ~s;\n",
274
274
[ic_cbe:mk_c_type(G, N, Type),mk_array_name(Name,Dim)]);
275
emit_struct_member(Fd, _G, N, _X, Name, Union) when record(Union, union)->
275
emit_struct_member(Fd, _G, N, _X, Name, Union) when is_record(Union, union)->
276
276
emit(Fd, " ~s ~s;\n",
277
277
[ic_util:to_undersc([ic_forms:get_id2(Union) | N]),Name]);
278
278
emit_struct_member(Fd, _G, _N, _X, Name, {string, _}) ->
293
293
emit_struct_member(Fd, _G, _N, _X, Name, "ETERM*") ->
294
294
emit(Fd, " ETERM* ~s;\n",
296
emit_struct_member(Fd, _G, _N, _X, Name, Type) when list(Type) ->
296
emit_struct_member(Fd, _G, _N, _X, Name, Type) when is_list(Type) ->
297
297
emit(Fd, " ~s ~s;\n",
299
299
emit_struct_member(Fd, G, N, _X, Name, Type) ->
356
356
emit_typedef(G, N, X, c) ->
357
357
B = ic_forms:get_body(X),
359
record(B, sequence) ->
359
is_record(B, sequence) ->
360
360
emit_sequence_head_def(G, N, X, B, c);
362
362
lists:foreach(fun(D) ->
365
365
ic_forms:get_idlist(X))
368
emit_typedef(G, N, D, Type, c) when record(D, array) ->
368
emit_typedef(G, N, D, Type, c) when is_record(D, array) ->
369
369
emit_array(G, N, D, Type);
370
370
emit_typedef(G, N, D, Type, c) ->
371
371
Name = ic_util:to_undersc([ic_forms:get_id2(D) | N]),
1905
1905
emit(Fd, "name() -> ~p.\n\n",[Name])
1908
get_seq_max(T) when record(T, sequence), T#sequence.length == 0 ->
1908
get_seq_max(T) when is_record(T, sequence) andalso T#sequence.length == 0 ->
1910
get_seq_max(T) when record(T, sequence), tuple(T#sequence.length) ->
1910
get_seq_max(T) when is_record(T, sequence) andalso is_tuple(T#sequence.length) ->
1911
1911
list_to_integer(element(3, T#sequence.length)).