Mercurial > hg > Applications > Lite
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. |