forked from thomas-maeder/popeye
/
reached_tester.c
32 lines (27 loc) · 954 Bytes
/
reached_tester.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "stipulation/goals/reached_tester.h"
#include "stipulation/proxy.h"
#include "stipulation/conditional_pipe.h"
#include "stipulation/boolean/true.h"
#include "debugging/trace.h"
#include "debugging/assert.h"
/* Allocate a STGoalReachedTester slice
* @param goal goal to be tested
* @param tester identifies the slice(s) that actually tests
* @return identifier of the allocated slice
*/
slice_index alloc_goal_reached_tester_slice(Goal goal, slice_index tester)
{
slice_index result;
TraceFunctionEntry(__func__);
TraceFunctionParam("%u",goal.type);
TraceFunctionParam("%u",tester);
TraceFunctionParamListEnd();
result = alloc_conditional_pipe(STGoalReachedTester,alloc_proxy_slice());
SLICE_U(result).goal_handler.goal = goal;
pipe_link(SLICE_NEXT2(result),tester);
pipe_link(result,alloc_true_slice());
TraceFunctionExit(__func__);
TraceFunctionResult("%u",result);
TraceFunctionResultEnd();
return result;
}