forked from ostis-apps/wave_find_path_scp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproc_get_other_vertex_incidence_edge.scs
62 lines (49 loc) · 2.09 KB
/
proc_get_other_vertex_incidence_edge.scs
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Возвращает в _vertex2 вершину ,которая инцидентена ребру _edge и не является вершиной _vertex.
// Учитывает кратное вхождение вершин, т.е. петлю.
//
scp_program -> proc_get_other_vertex_incidence_edge (*
-> rrel_params: ... (*
-> rrel_1: rrel_in: _edge;;
-> rrel_2: rrel_in: _vertex1;;
-> rrel_3: rrel_out: _vertex2;;
*);;
-> rrel_operators: ... (*
-> rrel_init: ..proc_get_other_vertex_incidence_edge_operator1 (*
<- searchElStr3;;
-> rrel_1: rrel_assign: rrel_scp_var: _temp_vertex1;;
-> rrel_2: rrel_fixed: rrel_scp_var: _edge;;
-> rrel_3: rrel_assign: rrel_scp_var: _temp_vertex2;;
=> nrel_then: ..proc_get_other_vertex_incidence_edge_operator2;;
=> nrel_else: ..proc_get_other_vertex_incidence_edge_operator4;;
*);;
-> ..proc_get_other_vertex_incidence_edge_operator2 (*
<- ifCoin;;
-> rrel_1: rrel_fixed: rrel_scp_var: _vertex1;;
-> rrel_2: rrel_fixed: rrel_scp_var: _temp_vertex1;;
=> nrel_then: ..proc_get_other_vertex_incidence_edge_operator3;;
=> nrel_else: ..proc_get_other_vertex_incidence_edge_operator4;;
*);;
-> ..proc_get_other_vertex_incidence_edge_operator3 (*
<- varAssign;;
-> rrel_1: rrel_assign: rrel_scp_var: _vertex2;;
-> rrel_2: rrel_fixed: rrel_scp_var: _temp_vertex2;;
=> nrel_goto: ..proc_get_other_vertex_incidence_edge_operator_return;;
*);;
-> ..proc_get_other_vertex_incidence_edge_operator4 (*
<- ifCoin;;
-> rrel_1: rrel_fixed: rrel_scp_var: _vertex1;;
-> rrel_2: rrel_fixed: rrel_scp_var: _temp_vertex2;;
=> nrel_then: ..proc_get_other_vertex_incidence_edge_operator5;;
=> nrel_else: ..proc_get_other_vertex_incidence_edge_operator_return;;
*);;
-> ..proc_get_other_vertex_incidence_edge_operator5 (*
<- varAssign;;
-> rrel_1: rrel_assign: rrel_scp_var: _vertex2;;
-> rrel_2: rrel_fixed: rrel_scp_var: _temp_vertex1;;
=> nrel_goto: ..proc_get_other_vertex_incidence_edge_operator_return;;
*);;
-> ..proc_get_other_vertex_incidence_edge_operator_return (*
<- return;;
*);;
*);;
*);;