home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / EXAMPLES.ARC / CH13EX03.PRO < prev    next >
Encoding:
Prolog Source  |  1988-06-21  |  658 b   |  28 lines

  1. /*
  2.    Turbo Prolog 2.0 Chapter 13, Example Program 3
  3.    
  4.    Copyright (c) 1986, 88 by Borland International, Inc
  5.    
  6. */
  7.    
  8. domains
  9.    tok  = numb(integer); name(string); char(char)
  10.    toklist = tok*
  11.  
  12. predicates
  13.    scanner(string, toklist)
  14.    maketok(string, tok)
  15.  
  16. clauses
  17.    scanner("", []).
  18.    scanner(Str, [Tok|Rest]) :-
  19.       fronttoken(Str, Sym, Str1), maketok(Sym, Tok), scanner(Str1, Rest).
  20.       maketok(S, name(S)) :- isname(S).
  21.       maketok(S, numb(N)) :- str_int(S, N).
  22.       maketok(S, char(C)) :- str_char(S, C).
  23. goal
  24.    write("Enter some text:"),nl,
  25.    readln(Text),nl,
  26.    scanner(Text,T_List),
  27.    write(T_List).
  28.