-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsimplify_types.pl
110 lines (92 loc) · 2.64 KB
/
simplify_types.pl
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
%% simplify_types.pl
/**
?- simplify_types([[[t, brackets], [[t, number]]], [t, string], [t, number]],[],T).
T = [[[t, number]], [t, string], [t, number]].
**/
simplify_types([],Types,Types) :- !.
simplify_types(Data,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("number",Dbw_number),
Data=[T,Dbw_number],
% number(Data),
append(Types1,[[T,Dbw_number]],Types2),!.
simplify_types(Data,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("string",Dbw_string),
Data=[T,Dbw_string],
%string(Data),
append(Types1,[[T,Dbw_string]],Types2),!.
simplify_types(Data,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("atom",Dbw_atom),
Data=[T,Dbw_atom],
%string(Data),
append(Types1,[[T,Dbw_atom]],Types2),!.
simplify_types(Data,Types1,Types2) :-
%get_lang_word("t",T),
%get_lang_word("atom",Dbw_atom),
Data="|",
%string(Data),
append(Types1,["|"],Types2),!.
simplify_types(Data1,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("brackets",Dbw_brackets),
Data1=[[[T,Dbw_brackets],Types4]|Types6],
simplify_types(Types4,[],Data2),
Types5=[Data2],
append_list3([Types1,Types5],Types2a),
simplify_types(Types6,Types2a,Types2),!.
simplify_types(Data1,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("list",Dbw_list),
Data1=[[[T,Dbw_list],Types4]|Types6],
%trace,
simplify_types(Types4,[],Data2),%[Data2|Data2a]),
(Data2=[Data2a]->Types5=[{Data2a}];
(Data2=[Data2a|Data2b]->
(square_to_round([Data2a|Data2b],Types52),
round_to_curly(Types52,Types51),
Types5=[Types51]);false)),
append_list3([Types1,Types5],Types2a),
simplify_types(Types6,Types2a,Types2),!.
/*
simplify_types(Data1,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("brackets",Dbw_brackets),
Data1=[[T,Dbw_brackets]|Types4],
simplify_types(Types4,[],Data2),
Types5=[[Data2],Data4],
simplify_types(Data4,[],Types6),
append_list3([Types1,Types5,Types6],Types2),!.
*/
/*
simplify_types(Data1,Types1,Types2) :-
get_lang_word("t",T),
get_lang_word("brackets",Dbw_brackets),
Data1=[[Data2|Data3]|Data4],
simplify_types(Data2,[],Types3),
simplify_types(Data3,Types3,Types4),
Types5=[[[T,Dbw_brackets],Types4]],
simplify_types(Data4,[],Types6),
append_list3([Types1,Types5,Types6],Types2),!.
*/
simplify_types(Data,Types1,Types2) :-
get_lang_word("t",T),
%get_lang_word("string",Dbw_string),
Data=[T,A],
%string(Data),
append(Types1,[[T,A]],Types2),!.
simplify_types(Data1,Types1,Types2) :-
Data1=[Data2|Data3],
simplify_types(Data2,Types1,Types3),
simplify_types(Data3,Types3,Types2),!.
%%Types2=[Types4].
/*
append_list3(A1,B):-
append_list3(A1,[],B),!.
append_list3([],A,A):-!.
append_list3(List,A,B) :-
List=[Item|Items],
append(A,Item,C),
append_list3(Items,C,B).
*/