home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 01 / pattern / bp2.pro < prev    next >
Encoding:
Text File  |  1987-06-05  |  1.8 KB  |  59 lines

  1. /*****************************************************
  2.             Programm BP2: diverse Muster
  3. ******************************************************/
  4.  
  5. include "KIT.PRO" 
  6.  
  7. predicates
  8.   main
  9.   pattern(symbol, patternlist)
  10.   repeat
  11.  
  12. goal 
  13.   main.
  14.  
  15. clauses
  16.   pattern(identifier, 
  17.     [any(Letter), span([""| Alfa]), rpos(0)]):-
  18.     literal(letters, Letter), literal(alfanums, Alfa).
  19.   pattern(integer, [any(["+","-",""]), span(Numbers), 
  20.     rpos(0)]) :-  literal(digits, Numbers).
  21.   pattern(real, [any(["+","-",""]), span([""|Numbers]),
  22.     lit("."), span( Numbers ), rpos(0)]) :-
  23.     literal(digits, Numbers).        
  24.   pattern(real, [span(Numbers), lit("."), span(Numbers),
  25.     any(["E", "e"]), any(["+","-",""]), span(Numbers),
  26.     rpos(0)]) :- literal(digits, Numbers).
  27.   pattern(binary, [span(["0","1"]), any(["B","b",""]),
  28.     rpos(0)]).
  29.   pattern(hex, [span(Hexchars), any(["H","h",""]),
  30.     rpos(0)]) :-
  31.     literal(digits, Digits),
  32.     append(Digits, ["A","B","C","D","E","F"], Hexchars).
  33.   pattern(hex, [lit("$"), span(Hexchars), rpos(0)]) :-
  34.     literal(digits, Digits),
  35.     append(Digits, ["A","B","C","D","E","F"], Hexchars).  
  36.   pattern(operator,  
  37.     [any(["<=",">=",":="]), rpos(0)]).
  38.   pattern(literal, [lit("'"), break(["'"]), lit("'"),
  39.     rpos(0)]).
  40.   pattern(name, [any(Cap), span(Smalls), rpos(0)]) :-
  41.     literal(caps, Cap), literal(smalls, Smalls).
  42.  
  43.   main :-
  44.     makewindow(1,7,7,"MEHRDEUTIGE MUSTER",0,0,25,80),     
  45.     repeat,
  46.     nl, 
  47.     write("Sprachelement eingeben (Ende mit <Ctrl-Break>):"), 
  48.     nl,
  49.     readln(Item),
  50.     write("= "),
  51.     pattern(Type, P),
  52.     match(Item, P, _),
  53.     write(Type, " "),        
  54.     fail.
  55.  
  56.   repeat.
  57.   repeat:- repeat.  
  58. /****************** Ende BP2 ************************/
  59.