comparison kiss.pl @ 20:07d6c4c5654b iso-prolog

SICStus v4 (ISO prolog syntax)
author kono
date Thu, 30 Aug 2007 14:16:36 +0900
parents e1d3145cff7a
children 29cf617f49db
comparison
equal deleted inserted replaced
19:e1d3145cff7a 20:07d6c4c5654b
10 $Id$ 10 $Id$
11 */ 11 */
12 12
13 % :- dynamic st_variables/2. 13 % :- dynamic st_variables/2.
14 14
15 set_input_var(L) :- abolish(input_variable_list,1), 15 set_input_var(L) :- r_abolish(input_variable_list,1),
16 asserta(input_variable_list(L)). 16 asserta(input_variable_list(L)).
17 17
18 kiss :- 18 kiss :-
19 (variable_list(L);L=[]), 19 (variable_list(L);L=[]),
20 (st_variables(In,_);In=[]), 20 (st_variables(In,_);In=[]),
176 init_read_kiss(In,Out,IL,OL), 176 init_read_kiss(In,Out,IL,OL),
177 check_vars(IL,OL,IL1,OL1), 177 check_vars(IL,OL,IL1,OL1),
178 read_kiss_body(C1,In,Out,Emode). 178 read_kiss_body(C1,In,Out,Emode).
179 179
180 init_read_kiss(In,Out,IL,OL) :- 180 init_read_kiss(In,Out,IL,OL) :-
181 abolish(st_variables,2), 181 r_abolish(st_variables,2),
182 abolish(st,3), 182 r_abolish(st,3),
183 assert(st_variables(In,Out)), 183 assert(st_variables(In,Out)),
184 assert(st(true,true,true)), 184 assert(st(true,true,true)),
185 length(In,IL),length(Out,OL). 185 length(In,IL),length(Out,OL).
186 186
187 check_vars(IL,0,IL,_) :-!. % ignore output 187 check_vars(IL,0,IL,_) :-!. % ignore output
262 get0(C2), 262 get0(C2),
263 read_kiss_state1(C2,C1,L). 263 read_kiss_state1(C2,C1,L).
264 read_kiss_state1(C,C1,[]) :- 264 read_kiss_state1(C,C1,[]) :-
265 skip_space(C,C1),!. 265 skip_space(C,C1),!.
266 266
267 skip_space(C,C1):- ([C]=" ";[C]=" "),!, 267 skip_space(C,C1):- ([C]=[32];[C]=[9]),!,
268 get(C0),skip_space(C0,C1). 268 get(C0),skip_space(C0,C1).
269 skip_space(C,C). 269 skip_space(C,C).
270 270
271 skip_line(10,C) :- !,get0(C). 271 skip_line(10,C) :- !,get0(C).
272 skip_line(-1,C) :- !,C= -1. 272 skip_line(-1,C) :- !,C= -1.