/src/lib/backtracking/low_level/backtracking_alternative_list.e
Specman e | 67 lines | 30 code | 6 blank | 31 comment | 1 complexity | 212c4088aa7526460756d7439ca65aa5 MD5 | raw file
1-- This file is part of a Liberty Eiffel library. 2-- See the full copyright at the end. 3-- 4class BACKTRACKING_ALTERNATIVE_LIST 5 -- 6 -- An alternative of a list of nodes. 7 -- 8 9inherit 10 ABSTRACT_BACKTRACKING_ALTERNATIVE 11 rename pool as pool_of_alternative_list 12 end 13 14insert 15 BACKTRACKING_GLOBALS 16 17feature {ABSTRACT_BACKTRACKING} 18 list: BACKTRACKING_NODE_OR_LIST 19 -- Iterator on the next item of the list. 20 21 set_list (value: BACKTRACKING_NODE_OR_LIST) 22 require 23 value_not_void: value /= Void 24 do 25 list := value 26 ensure 27 definition: list = value 28 list_not_void: list /= Void 29 end 30 31feature {ABSTRACT_BACKTRACKING} 32 next_alternative (explorer: BACKTRACKING) 33 do 34 -- Tell to evaluate 'list.node' now. 35 explorer.set_current_node(list.node) 36 -- Iterate 37 list := list.next 38 if list /= Void then 39 -- Alternative is still on, continue it. 40 explorer.continue_alternative 41 else 42 -- Alternative is off, remove it. 43 explorer.pop_alternative 44 end 45 end 46 47end -- class BACKTRACKING_ALTERNATIVE_LIST 48-- 49-- Copyright (C) 2009-2017: by all the people cited in the AUTHORS file. 50-- 51-- Permission is hereby granted, free of charge, to any person obtaining a copy 52-- of this software and associated documentation files (the "Software"), to deal 53-- in the Software without restriction, including without limitation the rights 54-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 55-- copies of the Software, and to permit persons to whom the Software is 56-- furnished to do so, subject to the following conditions: 57-- 58-- The above copyright notice and this permission notice shall be included in 59-- all copies or substantial portions of the Software. 60-- 61-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 62-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 63-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 64-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 65-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 66-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 67-- THE SOFTWARE.