@@ -244,7 +244,8 @@ def __add__(self, value: int) -> "std.vector[T].iterator":
244
244
def __sub__ (self , value : int ) -> "std.vector[T].iterator" :
245
245
return self .__class__ (self ._vector , self ._index - value )
246
246
247
- def __init__ (self ):
247
+ def __init__ (self , * args , ** kwargs ):
248
+ super ().__init__ (* args , ** kwargs )
248
249
self ._version = 0
249
250
250
251
def modify (self ):
@@ -309,7 +310,7 @@ def insert(
309
310
first : "std.vector[T].iterator" ,
310
311
last : "std.vector[T].iterator" ,
311
312
) -> None :
312
- self [pos ._index : pos ._index ] = list (
313
+ self [pos ._index : pos ._index ] = list (
313
314
islice (first ._vector , first ._index , last ._index )
314
315
)
315
316
@@ -319,6 +320,24 @@ def begin(self) -> "std.vector[T].iterator":
319
320
def end (self ) -> "std.vector[T].iterator" :
320
321
return self .iterator (self , self .size ())
321
322
323
+ def __getitem__ (self , index ):
324
+ if isinstance (index , slice ):
325
+ return std .vector (super ().__getitem__ (index ))
326
+ return super ().__getitem__ (index )
327
+
328
+ def __setitem__ (self , index , value ):
329
+ self .modify ()
330
+ if isinstance (index , slice ):
331
+ if isinstance (value , std .vector ):
332
+ value = list (value )
333
+ super ().__setitem__ (index , value )
334
+ else :
335
+ super ().__setitem__ (index , value )
336
+
337
+ def __delitem__ (self , index ):
338
+ self .modify ()
339
+ super ().__delitem__ (index )
340
+
322
341
class map (Generic [T , U ], OrderedDict [T , U ]):
323
342
"""C++ implementation of std::map."""
324
343
@@ -410,7 +429,6 @@ def begin(self) -> "std.map[T, U].iterator[T, U]":
410
429
def end (self ) -> "std.map[T, U].iterator[T, U]" :
411
430
return self .iterator (self , Sentinel ())
412
431
413
-
414
432
# // grammar element type
415
433
# enum llama_gretype {
416
434
# // end of rule definition
@@ -824,7 +842,7 @@ def handle_repetitions(min_times: int, max_times: int) -> None:
824
842
825
843
826
844
previous_elements = out_elements [last_sym_start :]
827
- print ( "type-1 " , type ( out_elements ))
845
+
828
846
if min_times == 0 :
829
847
out_elements .resize (last_sym_start )
830
848
else :
@@ -835,8 +853,7 @@ def handle_repetitions(min_times: int, max_times: int) -> None:
835
853
last_rec_rule_id = 0 # type: int
836
854
n_opt = 1 if max_times < 0 else max_times - min_times # type: int
837
855
rec_rule = previous_elements # type: List[LlamaGrammarElement]
838
- print ("type1" , type (rec_rule ))
839
- print ('ahhhhhhhhh' )
856
+
840
857
for i in range (n_opt ):
841
858
rec_rule = previous_elements
842
859
rec_rule .resize (len (previous_elements ))
@@ -1263,6 +1280,7 @@ def print_rule(
1263
1280
# print_grammar_char(file, elem.value);
1264
1281
# break;
1265
1282
# }
1283
+
1266
1284
for i , elem in enumerate (rule [:- 1 ]):
1267
1285
case = elem .type # type: llama_gretype
1268
1286
if case is llama_gretype .LLAMA_GRETYPE_END :
0 commit comments