Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- word(void, 1, 2).
- word(space, 2, 3).
- word(fun1, 3, 4).
- word(leftbracket, 5, 6).
- word(int, 7, 8).
- word(comma, 9, 10).
- word(space, 11, 12).
- word(double, 13, 14).
- word(rightbracket, 15, 16).
- istype(void).
- istype(char).
- istype(bool).
- istype(int).
- istype(double).
- istypeident(unsigned).
- isspace(space).
- iscomma(comma).
- isbracketl(leftbracket).
- isbracketr(rightbracket).
- press([],[]).
- press([H],[H]).
- press([data(space)|[data(space)|T]],[data(space)|T1]) :-
- press([data(space)|T],[data(space)|T1]).
- press([data(Name)|[data(Name1)|T]],[data(Name)|[data(Name1)|T1]]) :-
- press([data(Name1)|T],[data(Name1)|T1]).
- press([data(Name1)|[data(Name)|T]],[data(Name1)|[data(Name)|T1]]) :-
- press([data(Name)|T],[data(Name)|T1]).
- getdata(data(Name)) :- word(Name, _, _).
- getdatalist(DataList) :-
- findall(Data, getdata(Data), TmpDataList),
- press(TmpDataList, DataList).
- gettypeident(List, Params, Res) :-
- Res = 1,
- gettypes(List, Params).
- gettypeident(_, _, _) :- write("No solutions"), nl.
- gettypes([], []).
- gettypes([data(Name) | [data(Name1) | [data(Name2) | T]]], [result_type(Name) | T1]):-
- istype(Name),
- isspace(Name1),
- not(iscomma(Name2)),
- write(Name), nl,
- gettypes([data(Name1) | [data(Name2) | T]], T1), !.
- gettypes([data(Name) | [data(Name1) | [data(Name2) | T]]], [func(Name) | T1]):-
- not(istypeident(Name)),
- not(istype(Name)),
- not(isspace(Name)),
- not(iscomma(Name)),
- not(isbracketr(Name)),
- isbracketl(Name1),
- write(Name), nl,
- gettypes([data(Name1) | [data(Name2) | T]], T1), !.
- gettypes([data(Name) | T], T1) :-
- not(istypeident(Name)),
- not(istype(Name)),
- not(isspace(Name)),
- not(iscomma(Name)),
- not(isbracketl(Name)),
- not(isbracketr(Name)),
- write(Name), nl,
- gettypes(T, T1), !.
- gettypes([data(Name) | T], T1) :-
- isbracketl(Name),
- write(Name), nl,
- gettypes(T, T1), !.
- gettypes([data(Name) | T], T1) :-
- isbracketr(Name),
- write(Name), nl,
- gettypes(T, T1), !.
- gettypes([data(Name) | T], T1) :-
- iscomma(Name),
- write(Name), nl,
- gettypes(T, T1), !.
- gettypes([data(Name) | T], [typeident(Name) | T1]) :-
- istypeident(Name),
- write(Name), nl,
- gettypes(T, T1), !.
- gettypes([data(Name) | T], [param_type(Name) | T1]) :-
- istype(Name),
- write(Name), nl,
- gettypes(T, T1), !.
- gettypes([data(Name) | T], Params) :-
- isspace(Name),
- write(Name), nl,
- gettypes(T, Params), !.
- gettypes([data(Name) | T], [nan(Name) | T1]) :-
- write(Name), nl,
- gettypes(T, T1).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement