home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************
- Programm BP2: diverse Muster
- ******************************************************/
-
- include "KIT.PRO"
-
- predicates
- main
- pattern(symbol, patternlist)
- repeat
-
- goal
- main.
-
- clauses
- pattern(identifier,
- [any(Letter), span([""| Alfa]), rpos(0)]):-
- literal(letters, Letter), literal(alfanums, Alfa).
- pattern(integer, [any(["+","-",""]), span(Numbers),
- rpos(0)]) :- literal(digits, Numbers).
- pattern(real, [any(["+","-",""]), span([""|Numbers]),
- lit("."), span( Numbers ), rpos(0)]) :-
- literal(digits, Numbers).
- pattern(real, [span(Numbers), lit("."), span(Numbers),
- any(["E", "e"]), any(["+","-",""]), span(Numbers),
- rpos(0)]) :- literal(digits, Numbers).
- pattern(binary, [span(["0","1"]), any(["B","b",""]),
- rpos(0)]).
- pattern(hex, [span(Hexchars), any(["H","h",""]),
- rpos(0)]) :-
- literal(digits, Digits),
- append(Digits, ["A","B","C","D","E","F"], Hexchars).
- pattern(hex, [lit("$"), span(Hexchars), rpos(0)]) :-
- literal(digits, Digits),
- append(Digits, ["A","B","C","D","E","F"], Hexchars).
- pattern(operator,
- [any(["<=",">=",":="]), rpos(0)]).
- pattern(literal, [lit("'"), break(["'"]), lit("'"),
- rpos(0)]).
- pattern(name, [any(Cap), span(Smalls), rpos(0)]) :-
- literal(caps, Cap), literal(smalls, Smalls).
-
- main :-
- makewindow(1,7,7,"MEHRDEUTIGE MUSTER",0,0,25,80),
- repeat,
- nl,
- write("Sprachelement eingeben (Ende mit <Ctrl-Break>):"),
- nl,
- readln(Item),
- write("= "),
- pattern(Type, P),
- match(Item, P, _),
- write(Type, " "),
- fail.
-
- repeat.
- repeat:- repeat.
- /****************** Ende BP2 ************************/
-