88
99def generate (number_of_contexts ):
1010 start = 0
11- nvertices = number_of_contexts * 2 + number_of_contexts * number_of_contexts * 4 + 1
11+ nvertices = number_of_contexts + number_of_contexts * number_of_contexts + 1
1212 final = nvertices
13- first_level = [i for i in range (1 , number_of_contexts * 2 + 1 )]
13+ first_level = [i for i in range (1 , number_of_contexts + 1 )]
1414 #print("First level: ", first_level)
15- second_level = [i for i in range (number_of_contexts * 2 + 1 , nvertices )]
15+ second_level = [i for i in range (number_of_contexts + 1 , nvertices )]
1616 def mk_open_context (i ):
17- if (i // number_of_contexts == 0 ):
1817 return mk_open_context_from_pass (i % number_of_contexts )
19- else :
20- return mk_open_context_from_ret_r (i % number_of_contexts )
18+
2119 def mk_close_context (i ):
22- if (i // number_of_contexts == 0 ):
2320 return mk_close_context_from_ret (i % number_of_contexts )
24- else :
25- return mk_close_context_from_pass_r (i % number_of_contexts )
21+
2622 edges = (
2723 [(start ,start ,SIGMA_WITHOUT_OPEN_CONTEXTS ),(final ,final ,SIGMA )] +
2824 [
@@ -33,8 +29,8 @@ def mk_close_context(i):
3329 [
3430 edg
3531 for on_first_level in first_level
36- for on_second_level in range (on_first_level * ( number_of_contexts * 2 ) + 1 , on_first_level * number_of_contexts * 2 + number_of_contexts * 2 + 1 )
37- for edg in ((on_first_level , on_second_level , mk_open_context (on_second_level % ( number_of_contexts * 2 ))) ,(on_second_level , on_first_level , mk_close_context (on_second_level % ( number_of_contexts * 2 ) )))
32+ for on_second_level in range (on_first_level * number_of_contexts + 1 , on_first_level * number_of_contexts + number_of_contexts + 1 )
33+ for edg in ((on_first_level , on_second_level , mk_open_context (on_second_level % number_of_contexts )) ,(on_second_level , on_first_level , mk_close_context (on_second_level % number_of_contexts )))
3834 ] +
3935 [(i ,i ,SIGMA_WITHOUT_CONTEXTS ) for i in first_level + second_level ] +
4036 [(i ,final ,ALL_OPEN_CONTEXTS ) for i in second_level ]
0 commit comments