67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
|   | /*  $Id$ | ||
|  | 
 | ||
|  |     Part of CHR (Constraint Handling Rules) | ||
|  | 
 | ||
|  |     Author:        Tom Schrijvers | ||
|  |     E-mail:        Tom.Schrijvers@cs.kuleuven.ac.be | ||
|  |     WWW:           http://www.swi-prolog.org | ||
|  |     Copyright (C): 2003-2004, K.U. Leuven | ||
|  | 
 | ||
|  |     This program is free software; you can redistribute it and/or | ||
|  |     modify it under the terms of the GNU General Public License | ||
|  |     as published by the Free Software Foundation; either version 2 | ||
|  |     of the License, or (at your option) any later version. | ||
|  | 
 | ||
|  |     This program is distributed in the hope that it will be useful, | ||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  |     GNU General Public License for more details. | ||
|  | 
 | ||
|  |     You should have received a copy of the GNU Lesser General Public | ||
|  |     License along with this library; if not, write to the Free Software | ||
|  |     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA | ||
|  | 
 | ||
|  |     As a special exception, if you link this library with other files, | ||
|  |     compiled with a Free Software compiler, to produce an executable, this | ||
|  |     library does not by itself cause the resulting executable to be covered | ||
|  |     by the GNU General Public License. This exception does not however | ||
|  |     invalidate any other reasons why the executable file might be covered by | ||
|  |     the GNU General Public License. | ||
|  | */ | ||
|  | 
 | ||
|  | %% @addtogroup CHR_Debugging | ||
|  | % | ||
|  | % CHR debugger | ||
|  | % | ||
|  | :- module(chr_debug, | ||
|  | 	  [ chr_show_store/1, % +Module | ||
|  |             find_chr_constraint/1 | ||
|  | 	  ]). | ||
|  | :- use_module(chr(chr_runtime)). | ||
|  | :- use_module(library(lists)). | ||
|  | :- set_prolog_flag(generate_debug_info, false). | ||
|  | 
 | ||
|  | 
 | ||
|  | %%	chr_show_store(+Module) | ||
|  | %	 | ||
|  | %	Prints all suspended constraints of module   Mod to the standard | ||
|  | %	output. | ||
|  | 
 | ||
|  | chr_show_store(Mod) :- | ||
|  | 	( | ||
|  | 		Mod:'$enumerate_suspensions'(Susp), | ||
|  | %		arg(6,Susp,C), | ||
|  | 		Susp =.. [_,_,_,_,_,_,F|Arg], | ||
|  | 		functor(F,Fun,_), | ||
|  | 		C =.. [Fun|Arg], | ||
|  | 		print(C),nl, % allows use of portray to control printing | ||
|  | 		fail | ||
|  | 	; | ||
|  | 		true | ||
|  | 	). | ||
|  | 
 | ||
|  | find_chr_constraint(C) :- | ||
|  | 	chr:'$chr_module'(Mod), | ||
|  | 	Mod:'$enumerate_suspensions'(Susp), | ||
|  | 	arg(6,Susp,C). |